Database of Finite Symplectic Matrix Groups

Magma includes a database of the maximal finite irreducible subgroups of Sp2n(Q) for 1≤i ≤11 up to conjugacy in GL2n(Q). This collection is due to Markus Kirschmer [Kir09]. This section defines the interface to that database.

To avoid non-integral entries, the stored matrix groups do not fix the standard skewsymmetric form but some other nondegenerate skewsymmetric form. The example below illustrates how to construct a conjugate matrix group which fixes the standard skewsymmetric form.

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 with a pair of forms. If accessed as a matrix group, the order and base are set on return.

SymplecticMatrixGroupDatabase() : -> 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 a sequence S of two integral forms such that the automorphism group of L with respect to S equals Group(DB, i). The first form in S is the gram matrix of L and the second form is skewsymmetric. The sequence S is normalized as described in the appendix of [Kir09] to simplify the recognition of the matrix group.
Construction(D, i): DB, RngIntElt -> MonStgElt
Returns a string which describes the construction of the i-th entry of the database D.
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 a sequence S of forms corresponding to the i-th entry of dimension d in the database D.
Construction(D, d, i): DB, RngIntElt, RngIntElt -> MonStgElt
Returns a string which describes the construction of the i-th entry of dimension d in the database D.

Example GrpData_Symplectic (H72E19)

We illustrate accessing the symplectic matrix group database with a group of dimension 16.
> DB := SymplecticMatrixGroupDatabase();
> NumberOfGroups(DB, 16);
91
> G := Group(DB, 16, 1);
> G : Minimal;
MatrixGroup(16, Integer Ring) of order 2^21 * 3^4 * 5^2
The group G does not fix the standard skewsymmetic form. But it can be conjugated to do so.
> _, S := Lattice(DB, 16, 1);
> T := TransformForm(Matrix(Rationals(), S[2]), "symplectic");
> H := ChangeRing(G, Rationals())^(GL(16,Rationals()) ! T);
> J := SymplecticForm(16, Rationals());
> forall{h: h in Generators(H) | h * J * Transpose(h) eq J};
true
V2.28, 13 July 2023