Properties of Finite Groups Of Lie Type

Contents

Maximal Subgroups of the Classical Groups

The ClassicalMaximals function, written by Derek Holt and Colva Roney-Dougal, returns a list of the maximal subgroups of the classical quasisimple groups in their natural representations, as returned by the Magma functions SL, Sp, SU, Omega, OmegaPlus, OmegaMinus. The list should be complete for dimensions up to 17. For larger dimensions, all maximal subgroups of geometric type are returned, but not those of Type S (sometimes known as Class C9).

There are also options to return the normalisers of these subgroups in various groups, such as (GL)(n, q), (CU)(n, q), that lie between the quasisimple group and its normaliser in the general linear group. These should be sufficient to enable the skilled user to determine the maximal subgroups of any group lying between the quasisimple groups and its normaliser.

According to the theorem of Aschbacher [Asc84] discussed earlier in this chapter, the maximal subgroups of a quasisimple classical group over a finite field lie in (at least) one of nine categories, which were listed in the Aschbacher Reduction section.

The subgroups in the first eight of these categories are said to be of geometric type and can be described in a uniform fashion. This description is the topic of the book [KL90]. They are returned in all dimensions by ClassicalMaximals. There is no such uniform description of the subgroups in the ninth class, which have to be classified separately in each dimension. The lists in the papers [HM01], [HM02] and [L"01] contain sufficient information in theory to compute these subgroups up to dimension 250, but currently this has been carried out only up to dimension 17.

ClassicalMaximals(type, d, q : parameters) : MonStgElt, RngIntElt, RngIntElt -> SeqEnum
    classes: SetEnum                    Default: {1 ... 9}
    all: BoolElt                        Default: true
    special: BoolElt                    Default: false
    general: BoolElt                    Default: false
    normaliser: BoolElt                 Default: false
    novelties: BoolElt                  Default: false
Return a list of representatives of the conjugacy classes of maximal subgroups of the quasisimple group of the specified type in dimension d over the field of order q. The string type must be one of L, S, U, O, O+, O-.

If the optional parameter classes is set to a proper subset of {1 ... 9}, then only the subgroups lying in the corresponding Aschbacher categories will be returned.

If the option all is set false, then representatives of the conjugacy classes under the action of the full automorphism group of the simple classical group will be returned: so this option will usually result in fewer subgroups in the returned list!

The option special only has effect for types O, O+, O-. When this is set to true, the normalisers of the subgroups in the appropriate group (SO)(d, q), (SO)^ + (d, q) or (SO)^ - (d, q) will be returned.

If the option general is set to true, then the normalisers of the subgroups in the appropriate group (GL)(d, q), (GU)(d, q), (GO)(d, q), (GO)^ + (d, q) or (GO)^ - (d, q) will be returned. (This option has no effect for type S.)

If the option normaliser is set to true, then the normalisers of the subgroups in the full normaliser of the quasisimple group in the general linear group (i.e. the group preserving the relevant form modulo scalars) will be returned. (For type L this has the same effect as setting general to true.)

If the option novelties is set true, then the intersections with the quasisimple group of any novelty maximal subgroups of any groups lying between the simple group and its full automorphism group will be returned. Use this option with caution, because the results are not guaranteed to be reliable!

Maximal Subgroups of the Exceptional Groups

Here are some intrinsics for creating and conjugating maximal subgroups of Suzuki and Ree groups. The flags SuzukiMaximals and ReeMaximals may be used to produce verbose output.

SuzukiMaximalSubgroups(G) : GrpMat -> SeqEnum, SeqEnum
If G has been constructively recognised as a Suzuki group, return a sequence of representatives of the maximal subgroups of G. Also returns sequences of GrpSLPElt of the generators of the subgroups, from the word group of G.
SuzukiMaximalSubgroupsConjugacy(G, R, S) : GrpMat, GrpMat, GrpMat -> GrpMatElt, GrpSLPElt
If G has been constructively recognised as a Suzuki group and if R and S are conjugate maximal subgroups of G, then return an element g of G that conjugates R to S. A GrpSLPElt from the word group of G, that evaluates to g, is also returned.
ReeMaximalSubgroups(G) : GrpMat -> SeqEnum, SeqEnum
If G has been constructively recognised as a Ree group, return a sequence of representatives of the maximal subgroups of G. Also returns sequences of GrpSLPElt of the generators of the subgroups, from the word group of G.
ReeMaximalSubgroupsConjugacy(G, R, S) : GrpMat, GrpMat, GrpMat -> GrpMatElt, GrpSLPElt
If G has been constructively recognised as a Ree group and if R and S are conjugate maximal subgroups of G, then return an element g of G that conjugates R to S. A GrpSLPElt from the word group of G, that evaluates to g, is also returned. This is not implemented if R, S are Frobenius groups.
SzMaximals(q) : RngIntElt -> SeqEnum
Representatives of the conjugacy classes of maximal subgroups of the Suzuki groups (Sz)(q) (where q>2 is an odd power of 2) are returned. They are subgroups of the subgroup of (GL)(4, q) returned by the Magma function Sz(q).
ReeMaximals(q) : RngIntElt -> SeqEnum
Representatives of the conjugacy classes of maximal subgroups of the small Ree groups (Ree)(q) (where q>3 is an odd power of 3) are returned. They are subgroups of the subgroup of (GL)(7, q) returned by the Magma function Ree(q).
G2Maximals(q) : RngIntElt -> SeqEnum
Representatives of the conjugacy classes of maximal subgroups of the groups G2(q) (where q is prime power) are returned. They are subgroups of the subgroup of (GL)(7, q) returned by the Magma function G2(q).

Sylow Subgroups of the Classical Groups

The Magma ClassicalSylow package written by Mark Stather provides functionality for constructing and conjugating the Sylow p-subgroups of the classical groups over finite fields in their natural representation, for any prime p. The classical groups may be created in Magma using the GL, SL, Sp, GO, GOPlus, GOMinus, SO, SOPlus, SOMinus, Omega, OmegaPlus, OmegaMinus, GU, SU intrinsics.

This package makes use of code to compute the classical form fixed by a group written by Derek Holt, and code to conjugate classical forms written by Colva Roney-Dougal.

The algorithms in this package are described in [Sta], which in turn makes use of the descriptions of the Sylow subgroups of the classical groups given in [Wei55], [CF64], [R.R57] and [Car72]. The conjugation algorithms make use of only the Meataxe, Smash, basic linear algebra and the solution of norm equations over finite fields.

ClassicalSylow(G,p) : GrpMat, RngIntElt -> GrpMat
The argument G must be a classical group in its natural representation, up to conjugation, with the exception of GO(2m + 1, 2e). More precisely, it must be a conjugate of a group returned by one of the intrinsics GL, SL, Sp, GO, GOPlus, GOMinus, SO, SOPlus, SOMinus, Omega, OmegaPlus, OmegaMinus, GU, SU and p must be a prime number. The intrinsic returns a Sylow p-subgroup of G as a matrix group.
ClassicalSylowConjugation(G,P,S) : GrpMat, GrpMat, GrpMat -> GrpMatElt
The argument G must be a classical group in its natural representation, up to conjugation, with the exception of GO(2m + 1, 2e). More precisely, it must be a conjugate of a group returned by one of the intrinsics GL, SL, Sp, GO, GOPlus, GOMinus, SO, SOPlus, SOMinus, Omega, OmegaPlus, OmegaMinus, GU, SU. The groups P and S must be Sylow p-subgroups of G. The intrinsic returns an element g ∈G with Pg = S.
ClassicalSylowNormaliser(G,P) : GrpMat, GrpMat -> GrpMatElt
In this case G must the full classical group in its natural representation, up to conjugation, with the exception of GO(2m + 1, 2e). More precisely, it must be a conjugate of a group returned by one of the intrinsics GL, Sp, GO, GOPlus, GOMinus, GU. The subgroup P must be a Sylow p-subgroup of G. The intrinsic returns the normaliser of P in G.
ClassicalSylowToPC(G,P) : GrpMat, GrpMat -> GrpPC, UserProgram, Map
The argument G must be a classical group in its natural representation, up to conjugation, with the exception of GO(2m + 1, 2e). More precisely, it must be a conjugate of a group returned by one of the intrinsics GL, SL, Sp, GO, GOPlus, GOMinus, SO, SOPlus, SOMinus, Omega, OmegaPlus, OmegaMinus, GU, SU. The group P must be a Sylow p-subgroup of G. The intrinsic returns a PC group Q isomorphic to P, and also an isomorphism from P to Q and an isomorphism from Q to P.

Example GrpASim_sylow_ex (H71E19)

We construct a Sylow 7-subgroup P of G = Sp(28, 172), take a random conjugate S of P and then find a conjugating element g that takes P to S.
> SetSeed(1);
> G := Sp(28,17^2);
> time P := ClassicalSylow(G,7);
Time: 0.080
> S := P^Random(G);
> time g := ClassicalSylowConjugation(G,P,S);
Time: 0.400

We next compute the normaliser of P in G.

> time N := ClassicalSylowNormaliser(G,P);
Time: 0.310
> // and a PC presentation of P
> time Pc, PtoPc, PctoP := ClassicalSylowToPC(G,P);
Time: 0.200
> Pc;
GrpPC : Pc of order 2401 = 7^4
PC-Relations:
    Pc.1^7 = Id(Pc),
    Pc.2^7 = Id(Pc),
    Pc.3^7 = Id(Pc),
    Pc.4^7 = Id(Pc)
> // We get inverse isomorphisms PtoPc and PctoP
> g := Random(P);
> PctoP(PtoPc(g)) eq g;
true
> x := Random(Pc);
> PtoPc(PctoP(x)) eq x;
true

Sylow Subgroups of Exceptional Groups

The flags SuzukiSylow and ReeSylow may be used to produce verbose output.

SuzukiSylow(G, p) : GrpMat, RngIntElt -> GrpMat, SeqEnum
If G has been constructively recognised as a Suzuki group, and if p is a prime number, return a random Sylow p-subgroup S of G.

Also returns a list of GrpSLPElt from the word group of G, of the generators of S. If p does not divide | G |, then the trivial subgroup is returned.

SuzukiSylowConjugacy(G, R, S, p) : GrpMat, GrpMat, GrpMat, RngIntElt -> GrpMatElt, GrpSLPElt
If G has been constructively recognised as a Suzuki group, if p is a prime number and if R and S are Sylow p-subgroups of G, then return an element g of G that conjugates R to S. A GrpSLPElt from the word group of G, that evaluates to g, is also returned.

Example GrpASim_sz-sylow (H71E20)

We demonstrate finding a conjugating element for Sylow subgroup in an example over a large field.

> q := 2^121;
> G := Sz(q);
> G ^:= Random(Generic(G));
> G := DerivedGroupMonteCarlo(G);
> NumberOfGenerators(G);
19

Non-constructive recognition is now a bit harder.

> time SuzukiRecognition(G);
true 2658455991569831745807614120560689152
Time: 0.190
> time flag, iso, inv, g2slp, slp2g := RecogniseSz(G);
Time: 22.810

However, after this, each call to constructive membership testing is then easy.

> R := RandomProcess(G);
> g := Random(R);
> time w := Function(g2slp)(g);
Time: 0.060
> // evaluating SLPs always takes some time
> time slp2g(w) eq g;
true
Time: 1.250

We now create some Sylow subgroups and find conjugating elements.

> p := Random([x[1] : x in Factorization(q - 1)]);
> time R := SuzukiSylow(G, p);
Time: 1.370
> time S := SuzukiSylow(G, p);
Time: 1.310
> // that was easy, as is conjugating them
> time g, slp := SuzukiSylowConjugacy(G, R, S, p);
Time: 1.340
> slp2g(slp) eq g;
true
> #R, NumberOfGenerators(R);
23 1
> time R := SuzukiSylow(G, 2);
Time: 164.020
> time S := SuzukiSylow(G, 2);
Time: 171.740
> NumberOfGenerators(R), #R;
121 7067388259113537318333190002971674063309935587502475832486424805170479104
> time g, slp := SuzukiSylowConjugacy(G, R, S, 2);
Time: 1.650

Creating the Sylow 2-subgroup is hard since they have so many generators. One the other hand, finding a conjugating element is relatively easy.

ReeSylow(G, p) : GrpMat, RngIntElt -> GrpMat, SeqEnum
If G has been constructively recognised as a Ree group, and if p is a prime number, return a random Sylow p-subgroup S of G.

Also returns a list of GrpSLPElt from the word group of G, of the generators of S. If p does not divide | G |, then the trivial subgroup is returned.

ReeSylowConjugacy(G, R, S, p) : GrpMat, GrpMat, GrpMat, RngIntElt -> GrpMatElt, GrpSLPElt
If G has been constructively recognised as (Ree)(q), if p is a prime number and if R and S are Sylow p-subgroups of G, then return an element g of G that conjugates R to S, and a GrpSLPElt from the word group of G, that evaluates to g, is also returned.

Currently, this is not implemented for odd p that divide q3 + 1.

LargeReeSylow(G, p) : GrpMat, RngIntElt -> GrpMat, SeqEnum
If G has been constructively recognised as a Large Ree group, and if p is a prime number, return a random Sylow p-subgroup S of G.

Also returns a list of GrpSLPElt from the word group of G, of the generators of S. If p does not divide | G |, then the trivial subgroup is returned.

Currently, this is not implemented for p that divide q + 1.

Example GrpASim_ree-sylow (H71E21)

Starting with the Ree group over the field GF(331), we construct Sylow p-subgroups for different primes p.

> m := 7;
> F := GF(3, 2 * m + 1);
> q := #F;
> q;
14348907
> G := ReeGroup(F);
> G ^:= Random(Generic(G));
> G := DerivedGroupMonteCarlo(G);
> NumberOfGenerators(G);
19
> ReeRecognition(G);
true 14348907
> flag, iso, inv, g2slp, slp2g := RecogniseRee(G);
> R := RandomProcess(G);
> g := Random(R);
> w := Function(g2slp)(g);
> slp2g(w) eq g;
true

We first create two Sylow p-subgroups of prime order and find a conjugating element. Note that 4561 divides the order of G exactly once and also divides q - 1.

> p := 4561;
> R := ReeSylow(G, p);
> S := ReeSylow(G, p);
> g, slp := ReeSylowConjugacy(G, R, S, p);

Thus Rg = S. In this case we also automatically get an SLP for the conjugating element.

> slp2g(slp) eq g;
true
> #R, NumberOfGenerators(R);
4561 1

Sylow 3-subgroups are harder: they have order 345 and hence a considerable number of generators.

> time R := ReeSylow(G, 3);
Time: 3.730
> S := ReeSylow(G, 3);
> NumberOfGenerators(R), #R;
15 2954312706550833698643
> time g, slp := ReeSylowConjugacy(G, R, S, 3);
Time: 0.300

Conjugacy of Subgroups of the Classical Groups

IsGLConjugate(H, K) : GrpMat, GrpMat -> BoolElt, GrpMatElt | Unass
Given H and K, both subgroups of the same general linear group G = GL(n, q), return the value true if H and K are conjugate in G. The function returns a second value in the event that the subgroups are conjugate: an element z which conjugates H into K. The algorithm is described in Roney-Dougal [RD04].

Conjugacy of Elements of the Exceptional Groups

The flags SuzukiElements and ReeElements may be used to produce verbose output.

SzConjugacyClasses(G) : GrpMat -> SeqEnum
If G has been constructively recognised as a Suzuki group, return a list of conjugacy classes, using the same format as the ConjugacyClasses intrinsic.
SzClassRepresentative(G, g) : GrpMat, GrpMatElt -> GrpMatElt, GrpMatElt
If G has been constructively recognised as a Suzuki group, and g is an element of G, return the conjugacy class representative h of g, such that h is in the list returned by SzConjugacyClasses. Also returns c in G such that gc = h.
SzIsConjugate(G, g, h) : GrpMat, GrpMatElt, GrpMatElt -> BoolElt, GrpMatElt
If G has been constructively recognised as a Suzuki group, and g and h are elements of G, determine if g is conjugate to h. If so, return true and an element c such that gc = h, otherwise return false.
SzClassMap(G) : GrpMat -> Map
If G has been constructively recognised as a Suzuki group, return its class map, as in the ClassMap intrinsic.
ReeConjugacyClasses(G) : GrpMat -> SeqEnum
If G has been constructively recognised as a Ree group, return a list of conjugacy classes, using the same format as the ConjugacyClasses intrinsic.

Irreducible Subgroups of the General Linear Group

IrreducibleSubgroups(n, q) : RngIntElt, RngIntElt -> SeqEnum
    Soluble: BoolElt                    Default: true
    Insoluble: BoolElt                  Default: true
Return the list of conjugacy classes of irreducible subgroups of GL(n, q) where n ∈{2, 3} and q is a prime power. The list is complete for characteristic at least 5. The insoluble groups of degree 3 were listed by Hurley [Hur13]; the remainder by Flannery and O'Brien [FO05]. Respective implementations were developed by Hurley and O'Brien.

If either Soluble or Insoluble is false, then the corresponding groups are omitted; default for both is true.

Example GrpASim_WriteOverSmallerField (H71E22)

> L := IrreducibleSubgroups(2, 19^5);
> #[x : x in L | IsAbelian (x)];
552
> L := IrreducibleSubgroups(3, 97^2: Insoluble := false);
> #L;
10620
> L[7];
MatrixGroup(3, GF(97^2))
Generators:
    [$.1^2314  $.1^942 $.1^2314]
    [$.1^2345  $.1^942 $.1^2314]
    [$.1^2345  $.1^617 $.1^2314]
> L := IrreducibleSubgroups(3, 11: Soluble := false);
> #L;
22
V2.28, 13 July 2023