# 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_quotient`

— Method`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.

This function is part of the experimental code in Oscar. Please read here for more details.

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)

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 [Ben93].

`class_group`

— Method`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.

This function is part of the experimental code in Oscar. Please read here for more details.

## Singularities

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

`has_canonical_singularities`

— Method`has_canonical_singularities(L::LinearQuotient)`

Return `true`

if `L`

has canonical singularities, `false`

otherwise.

This is checked using the Reid–Tai criterion, see Theorem 3.21 in [Kol13].

This function is part of the experimental code in Oscar. Please read here for more details.

`has_terminal_singularities`

— Method`has_terminal_singularities(L::LinearQuotient)`

Return `true`

if `L`

has terminal singularities, `false`

otherwise.

This is checked using the Reid–Tai criterion, see Theorem 3.21 in [Kol13].

This function is part of the experimental code in Oscar. Please read here for more details.