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

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.

has_canonical_singularitiesMethod
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].

source
has_terminal_singularitiesMethod
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].

source