Database of Integral Maximal Finite Matrix Groups

Magma includes a database of representatives of the GL(n, Z)-conjugacy classes of irreducible maximal finite subgroups of GL(n, Z) for n<=11 and n ∈{13, 17, 19, 23}. This section defines the interface to that database.

For n < 10 the groups have been described in [PP77], [PP80]. The groups of dimension 10 can be found in [Sou94]. In the cases n>10 prime, the representatives have been constructed using the descriptions given in [Ple85].

A particular entry of the database can be specified in one of two ways. Firstly, a number in the range 1 to the size of the database can be given. Alternatively, the desired dimension can be provided, together with a number in the range 1 to the number of entries of that dimension.

Each entry can be accessed either as a matrix group or as a lattice. If accessed as a matrix group, the order and base are set on return. If as a lattice, the automorphism group is set.

IntegralMatrixGroupDatabase() : -> DB
This function returns a database object which contains information about the database.
LargestDimension(D) : DB -> RngIntElt
Returns the largest dimension of any entry stored in the database. It is an error to refer to larger dimensions in the database.
# D : DB -> RngIntElt
NumberOfGroups(D) : DB -> RngIntElt
NumberOfLattices(D) : DB -> RngIntElt
Returns the number of entries stored in the database.
NumberOfGroups(D, d) : DB, RngIntElt -> RngIntElt
NumberOfLattices(D, d) : DB, RngIntElt -> RngIntElt
Returns the number of entries stored in the database of dimension d.
Group(D, i): DB, RngIntElt -> GrpMat
Returns the i-th entry from the database D as a matrix group.
Lattice(D, i): DB, RngIntElt -> Lat, SeqEnum
Returns a lattice L and sequence of additional forms F fixed by the i-th group in the database D.
Construction(D, i): DB, RngIntElt -> MonStgElt, SeqEnum
Returns a string S which describes the construction of the i-th group G in the database D.

If the G-invariant lattice is well known, S equals the name of this lattice. If the Degree d of G is a prime, G usually can be chosen to fix the form a0 Id + a1 (z + z - 1) + ... + ak (zk + z - 1) with k = (d - 1)/2 and some ai ∈Z where z denotes the permutation matrix of some d-cycle in Zd x d (see [Ple85]). In this case, S equals [a0, a1, a2, ...]. In all other cases, S describes the isomorphism type of G.

The second return value gives the numbers of all groups of degree d in the Rational Matrix Group Database which contain a GL(d, Q)-conjugate copy of G.

Group(D, d, i): DB, RngIntElt, RngIntElt -> GrpMat
Returns the i-th entry of dimension d in the database D as a matrix group.
Lattice(D, d, i): DB, RngIntElt, RngIntElt -> Lat, SeqEnum
Returns a lattice L and sequence of additional forms F fixed by the i-th group of dimension d in the database D.
Construction(D, d, i): DB, RngIntElt, RngIntElt -> MonStgElt, SeqEnum
Returns a string and integer which describe the construction of the i-th entry of dimension d in the database D.

Example GrpData_Integral (H72E17)

> D:= IntegralMatrixGroupDatabase();
> #D;
222
> G:= Group(D, 8, 7); Construction(D, 8, 7);
A8* [ 3 ]
So G is the automorphism group of the dual of the root lattice A8 and it is conjugate to a subgroup of the third entry of dimension 8 in the RationalMatrixgroupDatabase. We find an explicit embedding T of G into that group.
> DQ:= RationalMatrixGroupDatabase();
> H:= Group(DQ, 8, 3); L:= Lattice(DQ, 8, 3);
> F:= PositiveDefiniteForm(G);
> for s in Sublattices(G) do
>   B:= BasisMatrix(s);
>   FF:= B * F * Transpose(B);
>   ok, T:= IsIsometric(LatticeWithGram(FF div GCD(Eltseq(FF))), L);
>   if ok then break; end if;
> end for;
> assert ok;
> T:= Matrix(Rationals(), T*B);
> [Matrix(Integers(), T*Matrix(G.i)*T^-1) in H : i in [1..Ngens(G)]];
[ true, true ]
V2.28, 13 July 2023