# Construction and basic functionality

## Constructor

Given a finite group $G\leq \operatorname{GL}_n(K)$, one can construct the corresponding linear quotient $K^n/G$:

linear_quotientMethod
linear_quotient(G::MatrixGroup)

Return the linear quotient by G, that is, the orbit space of the action of G on the vector space of dimension degree(G).

If the given group is not finite, an error is raised.

source
Implicit choice of representation

Let $V = K^n$ be the regular representation of the matrix group $G$. In the current version, the object returned by linear_quotient(G) will work with the dual representation, that is, the linear quotient will be $V^\ast/G$. This might change in the future (notice that this code is still considered experimental)

Root of unity

For many computations, we require that the base field base_ring(G) contains a primitive root of unity of order exponent(G). If your chosen field is 'too small', you can easily change the base field with map_entries(L, G), where L is the larger field.

## Class group

The divisor class group of a linear quotient $V/G$ is controlled by the pseudo-reflections contained in the group $G$, see David J. Benson (1993).

class_groupMethod
class_group(L::LinearQuotient)

Return the class group of the linear quotient L and a map from group(L) to this group.

If G = group(L), then the class group is Ab(G/H), where H is the subgroup of G generated by the pseudo-reflections.

source

## Singularities

One can study the types of the singularities of a linear quotient as follows.