37.11 The Library of Finite Perfect Groups

The GAP library of finite perfect groups provides, up to isomorphism, a list of all perfect groups whose sizes are less than 10^6 excluding the following: item For n = 61440, 122880, 172032, 245760, 344064, 491520, 688128, or 983040, the perfect groups of size n have not completely been determined yet. The library neither provides the number of these groups nor the groups themselves. vspace-1mm item For n = 86016, 368640, or 737280, the library does not yet contain the perfect groups of size n, it only provides their their numbers which are 52, 46, or 54, respectively. vspace-2mm

Except for these eleven sizes, the list of altogether 1096 perfect groups in the library is complete. It relies on results of Derek F.~Holt and Wilhelm Plesken which are published in their book it Perfect Groups HP89. Moreover, they have supplied to us files with presentations of 488 of the groups. In terms of these, the remaining 607 nontrivial groups in the library can be described as 276 direct products, 107 central products, and 224 subdirect products. They are computed automatically by suitable GAP functions whenever they are needed.

We are grateful to Derek Holt and Wilhelm Plesken for making their groups available to the GAP community by contributing their files. It should be noted that their book contains a lot of further information for many of the library groups. So we would like to recommend it to any GAP user who is interested in the groups.

The library has been brought into GAP format by Volkmar Felsch.

Like most of the other GAP libraries, the library of finite perfect groups provides an extraction function, PerfectGroup. It returns the specified group in form of a finitely presented group which, in its group record, bears some additional information that allows you to easily construct an isomorphic permutation group of some appropriate degree by just calling the PermGroup function.

Further, there is a function NumberPerfectGroups which returns the number of perfect groups of a given size.

The library does not provide a selection or an example function. There is, however, a function DisplayInformationPerfectGroups which allows the display of some information about arbitrary library groups without actually loading the large files with their presentations, and without constructing the groups themselves.

Moereover, there are two functions which allow you to formulate loops over selected library groups. The first one is the NumberPerfectLibraryGroups function which, for any given size, returns the number of groups in the library which are of that size.

The second one is the SizeNumbersPerfectGroups function. It allows you to ask for all library groups which contain certain composition factors. The answer is provided in form of a list of pairs [size,n] where each such pair characterizes the n^{rm th} library group of size size. We will call such a pair [size,n] the size number of the respective perfect group. As the size numbers are accepted as input arguments by the PerfectGroup and the DisplayInformationPerfectGroups function, you may use their list to formulate a loop over the associated groups.

Now we shall give an individual description of each library function.

NumberPerfectGroups( size )

NumberPerfectGroups returns the number of non-isomorphic perfect groups of size size for each positive integer size up to 10^6 except for the eight sizes listed at the beginning of this section for which the number is not yet known. For these values as well as for any argument out of range it returns the value -1.

NumberPerfectLibraryGroups( size )

NumberPerfectLibraryGroups returns the number of perfect groups of size size which are available in the library of finite perfect groups.

The purpose of the function is to provide a simple way to formulate a loop over all library groups of a given size.

SizeNumbersPerfectGroups( factor1, factor2 ... )

SizeNumbersPerfectGroups returns a list of the it size numbers (see above) of all library groups that contain the specified factors among their composition factors. Each argument must either be the name of a simple group or an integer expression which is the product of the sizes of one or more cyclic factors. The function ignores the order in which the argmuments are given and, in fact, replaces any list of more than one integer expression among the arguments by their product.

The following text strings are accepted as simple group names. item[] "A5", "A6", "A7", "A8", "A9" or "A(5)", "A(6)", "A(7)", "A(8)", "A(9)" for the alternating groups A_n, 5 leq n leq 9, vspace-2mm item[] "L2(q)" or "L(2,q)" for PSL(2,q), where q is any prime power with 4 leq q leq 125, vspace-2mm item[] "L3(q)" or "L(3,q)" for PSL(3,q) with 2 leq q leq 5, vspace-2mm item[] "U3(q)" or "U(3,q)" for PSU(2,q) with 3 leq q leq 5, vspace-2mm item[] "U4(2) or "U(4,2)" for PSU(4,2), vspace-2mm item[] "Sp4(4)" or "S(4,4)" for the symplectic group S(4,4), vspace-2mm item[] "Sz(8)" for the Suzuki group Sz(8), vspace-2mm item[] "M11", "M12", "M22" or "M(11)", "M(12)", "M(22)" for the Matthieu groups M_{11}, M_{12}, and M_{22}, and vspace-2mm item[] "J1", "J2" or "J(1)", "J(2)" for the Janko groups J_1 and J_2. vspace-2mm

Note that, for most of the groups, the preceding list offers two different names in order to be consistent with the notation used in HP89 as well as with the notation used in the DisplayCompositionSeries command of GAP. However, as the names are compared as text strings, you are restricted to the above choice. Even expressions like "L2(~32~)" or "L2(2^5)" are not accepted.

As the use of the term PSU(n,q) is not unique in the literature, we state that here it denotes the factor group of SU(n,q) by its centre, where SU(n,q) is the group of all n times n unitary matrices with entries in GF(q^2) and determinant 1.

The purpose of the function is to provide a simple way to formulate a loop over all library groups which contain certain composition factors.

DisplayInformationPerfectGroups( size ) DisplayInformationPerfectGroups( size, n )
DisplayInformationPerfectGroups( [ size, n ] )

DisplayInformationPerfectGroups displays some information about the library group G, say, which is specified by the size number [size,n] or by the two arguments size and n. If, in the second case, n is omitted, the function will loop over all library groups of size size.

The information provided for G includes the following items: item a headline containing the size number [size,n] of G in the form size.n (the suffix .n will be suppressed if, up to isomorphism, G is the only perfect group of size size), vspace-2mm item a message if G is simple or quasisimple, i.,e., if the factor group of G by its centre is simple, vspace-2mm item the ``description'' of the structure of G as it is given by Holt and Plesken in HP89 (see below), vspace-2mm item the size of the centre of G (suppressed, if G is simple), vspace-2mm item the prime decomposition of the size of G, vspace-2mm item orbit sizes for a faithful permutation representation of G which is provided by the library (see below), vspace-2mm item a reference to each occurrence of G in the tables of section 5.3 of HP89. Each of these references consists of a class number and an internal number (i,j) under which G is listed in that class. For some groups, there is more than one reference because these groups belong to more than one of the classes in the book. vspace-2mm Example:

    gap> DisplayInformationPerfectGroups( 30720, 3 );
    #I Perfect group 30720.3:  A5 ( 2^4 E N 2^1 E 2^4 ) A
    #I   centre = 1  size = 2^11*3*5  orbit size = 240
    #I   Holt-Plesken class 1 (9,3)
    gap> DisplayInformationPerfectGroups( 30720, 6 );
    #I Perfect group 30720.6:  A5 ( 2^4 x 2^4 ) C N 2^1
    #I   centre = 2  size = 2^11*3*5  orbit size = 384
    #I   Holt-Plesken class 1 (9,6)
    gap> DisplayInformationPerfectGroups( Factorial( 8 ) / 2 );
    #I Perfect group 20160.1:  A5 x L3(2) 2^1
    #I   centre = 2  size = 2^6*3^2*5*7  orbit sizes = 5 + 16
    #I   Holt-Plesken class 31 (1,1) (occurs also in class 32)
    #I Perfect group 20160.2:  A5 2^1 x L3(2)
    #I   centre = 2  size = 2^6*3^2*5*7  orbit sizes = 7 + 24
    #I   Holt-Plesken class 31 (1,2) (occurs also in class 32)
    #I Perfect group 20160.3:  ( A5 x L3(2) ) 2^1
    #I   centre = 2  size = 2^6*3^2*5*7  orbit size = 192
    #I   Holt-Plesken class 31 (1,3)
    #I Perfect group 20160.4:  simple group  A8
    #I   size = 2^6*3^2*5*7  orbit size = 8
    #I   Holt-Plesken class 26 (0,1)
    #I Perfect group 20160.5:  simple group  L3(4)
    #I   size = 2^6*3^2*5*7  orbit size = 21
    #I   Holt-Plesken class 27 (0,1) 

For any library group G, the library files do not only provide a presentation, but, in addition, a list of one or more subgroups S_1, ldots, S_r of G such that there is a faithful permutation representation of G of degree sum_{i=1}^{r} G !:! S_i on the set { S_i g mid 1 leq i leq r, , g in G } of the cosets of the S_i. The respective permutation group is available via the PermGroup function described below. The DisplayInformationPerfectGroups function displays only the available degree. The message

orbit size = 8

in the above example means that the available permutation representation is transitive and of degree 8, whereas the message

orbit sizes = 7 + 24

means that a nontransitive permutation representation is available which acts on two orbits of size 7 and 24 respectively.

The notation used in the ``description'' of a group is explained in section 5.1.2 of HP89. We quote the respective page from there:

sl `Within a class Q,#,p, an isomorphism type of groups will be denoted by an ordered pair of integers (r,n), where r geq 0 and n > 0. More precisely, the isomorphism types in Q # p of order p^r !! mid !! Q !! mid will be denoted by (r,1), (r,2), (r,3), ldots,. Thus Q will always get the size number (0,1).

In addition to the symbol (r,n), the groups in Q , {sl #} , p will also be given a more descriptive name. The purpose of this is to provide a very rough idea of the structure of the group. The names are derived in the following manner. First of all, the isomorphism classes of irreducible F_pQ-modules M with mid !! Q !! mid mid !! M !! mid , leq 10^6, where F_p is the field of order p, are assigned symbols. These will either be simply p^x, where x is the dimension of the module, or, if there is more than one isomorphism class of irreducible modules having the same dimension, they will be denoted by p^x, p^{x^prime}, etc. The one-dimensional module with trivial Q-action will therefore be denoted by p^1. These symbols will be listed under the description of Q. The group name consists essentially of a list of the composition factors working from the top of the group downwards; hence it always starts with the name of Q itself. (This convention is the most convenient in our context, but it is different from that adopted in the ATLAS (Conway it et al.~1985), for example, where composition factors are listed in the reverse order. For example, we denote a group isomorphic to SL(2,5) by A_5 2^1 rather than 2 cdot A_5.)

Some other symbols are used in the name, in order to give some idea of the relationship between these composition factors, and splitting properties. We shall now list these additional symbols. item[times] between two factors denotes a direct product of F_pQ-modules or groups. vspace-2mm item[C] (for `commutator') between two factors means that the second lies in the commutator subgroup of the first. Similarly, a segment of the form (f_1 ! times ! f_2) {sl C} f_3 would mean that the factors f_1 and f_2 commute modulo f_3 and f_3 lies in [f_1,f_2]. vspace-2mm item[A] (for `abelian') between two factors indicates that the second is in the pth power (but not the commutator subgroup) of the first. `A' may also follow the factors, if bracketed. vspace-7mm item[E] (for `elementary abelian') between two factors indicates that together they generate an elementary abelian group (modulo subsequent factors), but that the resulting F_pQ-module extension does not split. vspace-2mm item[N] (for `nonsplit') before a factor indicates that Q (or possibly its covering group) splits down as far at this factor but not over the factor itself. So `Q f_1 {sl N} f_2' means that the normal subgroup f_1f_2 of the group has no complement but, modulo f_2, f_1, does have a complement. vspace-2mm

Brackets have their obvious meaning. Summarizing, we have:
item[times] = dirext product; vspace-2mm item[C] = commutator subgroup; vspace-2mm item[A] = abelian; vspace-2mm item[E] = elementary abelian; and vspace-2mm item[N] = nonsplit. vspace-2mm Here are some examples. item[(i)] A_5 (2^4 {sl E} 2^1 {sl E} 2^4) {sl A} means that the pairs 2^4 {sl E} 2^1 and 2^1 {sl E} 2^4 are both elementary abelian of exponent 4. vspace-1mm item[(ii)] A_5 (2^4 {sl E} 2^1 {sl A}) {sl C} 2^1 means that O_2(G) is of symplectic type 2^{1+5}, with Frattini factor group of type 2^4 {sl E} 2^1. The `A' after the 2^1 indicates that G has a central cyclic subgroup 2^1 {sl A} 2^1 of order 4. vspace-1mm item[(iii)] L_3(2) ((2^1 {sl E}) ! times ! ({sl N} 2^3 {sl E} 2^{3^prime} {sl A}) {sl C}) 2^{3^prime} means that the 2^{3^prime} factor at the bottom lies in the commutator subgroup of the pair 2^3 {sl E} 2^{3^prime} in the middle, but the lower pair 2^{3^prime} {sl A} 2^{3^prime} is abelian of exponent 4. There is also a submodule 2^1 {sl E} 2^{3^prime}, and the covering group L_3(2) 2^1 of L_3(2) does not split over the 2^3 factor. (Since G is perfect, it goes without saying that the extension L_3(2) 2^1 cannot split itself.) vspace-2mm

We must stress that this notation does not always succeed in being precise or even unambiguous, and the reader is free to ignore it if it does not seem helpful.'

If such a group description has been given in the book for G (and, in fact, this is the case for most of the library groups), it is displayed by the DisplayInformationPerfectGroups function. Otherwise the function provides a less explicit description of the (in these cases unique) Holt-Plesken class to which G belongs, together with a serial number if this is necessary to make it unique.

PerfectGroup( size ) PerfectGroup( size, n )
PerfectGroup( [ size, n ] )

PerfectGroup is the essential extraction function of the library. It returns a finitely presented group, G say, which is isomorphic to the library group specified by the size number [size,n] or by the two separate arguments size and n. In the second case, you may omit the parameter n. Then the default value is n = 1.

    gap> G := PerfectGroup( 6048 );
    PerfectGroup(6048)
    gap> G.generators;
    [ a, b ]
    gap> G.relators;
    [ a^2, b^6, a*b*a*b*a*b*a*b*a*b*a*b*a*b,
      a*b^2*a*b^2*a*b^2*a*b^-2*a*b^-2*a*b^-2,
      a*b*a*b^-2*a*b*a*b^-2*a*b*a*b^-2*a*b*a*b^-1*a*b^-1 ]
    gap> G.size;
    6048
    gap> G.description;
    "U3(3)"
    gap> G.subgroups;
    [ Subgroup( PerfectGroup(6048), [ a, b*a*b*a*b*a*b^3 ] ) ] 

The generators and relators of G coincide with those given in HP89.

Note that, besides the components that are usually initialized for any finitely presented group, the group record of G contains the following components:

size:

the size of G,

isPerfect:

always true,

description:

the description of G as described with the DisplayInformationPerfectGroups function above,

source:

some internal information used by the library functions,

subgroups:

a list of subgroups S_1, ldots, S_r of G such that G acts faithfully on on the union of the sets of all cosets of the S_i.

The last of these components exists only if G is one of the 488 nontrivial library groups which are given directly by a presentation on file, i.,e., which are not constructed from other library groups in form of a direct, central, or subdirect product. It will be required by the following function.

PermGroup( G )

PermGroup returns a permutation group, P say, which is isomorphic to the given group G which is assumed to be a finitely presented perfect group that has been extracted from the library of finite perfect groups via the PerfectGroup function.

Let S_1, ldots, S_r be the subgroups listed in the component G.subgroups of the group record of G. Then the resulting group P is the permutation group of degree sum_{i=1}^{r} G !:! S_i which is induced by G on the set { S_i g mid 1 leq i leq r, g in G } of all cosets of the S_i.

Example (continued):

    gap> P := PermGroup( G );
    PermGroup(PerfectGroup(6048))
    gap> P.size;
    6048
    gap> P.degree;
    28 

Note that some of the library groups do not have a faithful permutation representation of small degree. Computations in these groups may be rather time consuming.

Example:

    gap> P := PermGroup( PerfectGroup( 129024, 2 ) );
    PermGroup(PerfectGroup(129024,2))
    gap> P.degree;
    14336 

Previous Up Top Next
Index

GAP 3.4.4
April 1997