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 — Methodlinear_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.
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 reflections contained in the group $G$, see David J. Benson (1993).
class_group — Methodclass_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 reflections.
Singularities
One can study the types of the singularities of a linear quotient as follows.
has_canonical_singularities — Methodhas_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 János Kollár (2013).
has_terminal_singularities — Methodhas_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 János Kollár (2013).