Database of Almost-Simple Groups

Magma includes a database containing information about almost simple groups G, where S ≤G ≤Aut(S) and S is a simple group of small order. The G that are included in the database are those associated with S such that |S| is less than 16000000, as well as M24, HS, J3, McL, Sz(32) and L6(2).

The information stored here is primarily for use in computing maximal subgroups and automorphism groups. The database was originally conceived by Derek Holt, with a major extension by Volker Gebhardt and sporadic additions by Bill Unger. The implementation is by Bruce Cox.

It is possible to request the i-th entry of the database. Alternatively, and more usefully, one can supply three integers: the order o1 of S, the order o2 of G and the sum k of the orders of the class representatives of G. The last of these can be expensive to compute; however, knowledge of the classes is helpful to benefit from the information stored in the entry. Of course, if the entry is beyond the range of the database, then it is a wasted computation---the intrinsics ExistsGroupData and NumberOfGroups are provided to determine from the orders whether this is the case.

Contents

The Record Fields

The result returned by the GroupData function is a record with a number of fields containing information about the almost simple group and its socle. This information includes information used to compute automorphisms and maximal subgroups of the almost simple group by these Magma functions. The following describes these fields. The groups G and S are as above the almost simple group G and its socle, the simple group S. Let A be the full automorphism group of S, and let F< x, y > be a free group on two generators, called x and y.

First comes information about S. Each S is two generated, by x and y as above, say.

Field resname: A string giving a name to the simple group S. (S is the soluble residual of G).

Field resorder: The order of S as an integer.

Field geninfo: Information on where to find x and y in S. This is a sequence of two tuples, each with 3 entries. The first gives a generator order, the second the length of its conjugacy class, and the third the probability of picking the right generator given the previous information. The first tuple's order/length information always uniquely defines one conjugacy class of the group S and has probability 1, so x is easy to find.

Field rels: A sequence of words in F which, taken together with the generator orders from geninfo, form a presentation for S on x and y.

Field permrep: A permutation representation of the full automorphism group of S. The first two generators are x and y, followed by outer generators. In what follows the outer generators are called t, u, v.

Field outimages A sequence of sequences of words in F. These give the images of x and y under the generators of the outer automorphism group of S.

Field order: An integer, the order of G.

Field inv: The invariant used to separate non-isomorphic < |S|, |G| > possibilities. An integer, it is the sum over the classes of G of the order of the elements in each class.

Field name: A name for G as a string.

Field conjelts: If G is not normal in the automorphism group, these words are coset representatives of the normaliser of G in A as words in t, u, v.

Field subgens: Words in t, u, v that, together with x and y, generate G.

Field subpres: A presentation of G/S on subgens. Note: If G=S then subgens will be the empty sequence, but subpres will be the trivial FP-group with one generator.

Field normgens: Words in t, u, v that generate the outer automorphism group of G.

Field normpres: A presentation of the outer automorphism group of G on normgens. Again, if A=G then normgens will be the empty sequence, but normpres will be the trivial FP-group with one generator.

Field maxsubints: A sequence of records describing the intersections of the maximal subgroups of G that do not contain S with S. Each record gives the order of the intersection, its class length in S, generators as words in x and y, and a presentation on these generators.

Creating the Database

AlmostSimpleGroupDatabase() : -> DB
This function returns a database object which contains information about the database.

Accessing the Database

# D : DB -> RngIntElt
Returns the number of entries stored in the database.
GroupData(D, i): DB, RngIntElt -> Rec
GroupData(D, o1, o2, k): DB, RngIntElt, RngIntElt, RngIntElt -> Rec
Returns the specified entry from the database D as a record. The first form gives the ith entry of the database. The second form gives information on an almost simple group of order o2, with socle of order o1. The value of k should be as explained in inv above.
ExistsGroupData(D, o1, o2): DB, RngIntElt, RngIntElt -> BoolElt
ExistsGroupData(D, o1, o2, i): DB, RngIntElt, RngIntElt, RngIntElt -> BoolElt, Rec
Returns whether any record exists for a simple group of order o1 and a supergroup G of order o2 lying within its automorphism group. In the second form an invariant, i as described above, is also supplied, and the result is true if there is a record in the database with the given orders and invariant, and false otherwise. When the result is true, the corresponding record is also returned.
NumberOfGroups(D, o1, o2): DB, RngIntElt, RngIntElt -> RngIntElt, RngIntElt
Returns the number of records in the database D corresponding to a simple group of order o1 and a supergroup G of order o2 lying within its automorphism group. The second return value gives the index of the first such record, if there is one. (This is most useful when the first return value is 1.) If the return values are d and f, with d>0, then the corresponding database entries are numbered f, f + 1, ..., f + d - 1.
IdentifyAlmostSimpleGroup(G) : GrpPerm -> Map, GrpPerm
IdentifyAlmostSimpleGroup(G) : GrpMat -> Map, GrpPerm
Use the information in the database to construct a monomorphism f from the almost simple group G into A, the permutation representation of the full automorphism group of its socle stored in the database. This function will also cope with groups isomorphic to the alternating and symmetric groups of degree up to 50, which are not actually in the database. Note that the conjugacy class of the image of f in A determines G up to isomorphism. The algorithms used to deal with the alternating and symmetric groups not in the database are by Derek Holt, starting from the paper of Bratus & Pak [BP00].

Example GrpData_sgdb (H72E9)

We query the database on about an almost simple group of order 720.
> G := PermutationGroup<10 |
>  [ 7, 9, 5, 2, 1, 8, 10, 4, 6, 3 ],
>  [ 6, 3, 10, 7, 2, 4, 1, 8, 9, 5 ]>;
> #G;
720
> CompositionFactors(G);
    G
    |  Cyclic(2)
    *
    |  Alternating(6)
    1
> #Radical(G);
1
There are 3 such groups, so we really do need k to tell them apart.
> S := SolubleResidual(G);
> k := &+[c[1]: c in Classes(G)];
> D := AlmostSimpleGroupDatabase();
> R := GroupData(D, #S, #G, k);
> R`name;
M_10
The group is identified. Let's see some of the other information in R.
> P := R`permrep;
> P;
Permutation group P acting on a set of cardinality 10
  (1, 6)(2, 9)(3, 10)(4, 8)
  (1, 7, 9, 4)(2, 8, 5, 10)
  (3, 5, 9, 6, 7, 4, 8, 10)
  (3, 7)(4, 6)(5, 10)
> #P;
1440
> R`subgens;
[ t * u ]
> SS := sub<P|P.1, P.2>;
> #SS;
360
> GG := sub<P|SS, P.3*P.4>;
> #GG;
720
> R`normgens;
[ t ]
The full automorphism group of S has order 1440. The group P is a representation of this automorphism group with first two generators generating a faithful image of S. The image of S, together with the product of P.3 and P.4, generate a faithful image of G. The outer automorphism group of G is generated by P.3 modulo GG. We can also get a constructive identification as follows.
> f, A := IdentifyAlmostSimpleGroup(G);
> f;
Homomorphism of GrpPerm: $, Degree 10, Order 2^4 * 3^2 * 5
into GrpPerm: A, Degree 10 induced by
  (1, 10)(3, 8)(5, 9)(6, 7) |--> (1, 6)(2, 9)(3, 10)(4, 8)
  (1, 7, 2, 8)(3, 10, 4, 5) |--> (1, 7, 9, 4)(2, 8, 5, 10)
  (1, 10, 4, 8)(2, 6, 9, 5) |--> (3, 10, 7, 6)(4, 8, 5, 9)
> A;
Permutation group A acting on a set of cardinality 10
  (1, 6)(2, 9)(3, 10)(4, 8)
  (1, 7, 9, 4)(2, 8, 5, 10)
  (3, 5, 9, 6, 7, 4, 8, 10)
  (3, 7)(4, 6)(5, 10)
V2.28, 13 July 2023