Steve Linton ( sal@dcs.st-and.ac.uk)

I have the group G=G_{2}(3) (which I am able to construct by giving it's

generators) and know that L_{2}(13) is the smallest maximal subgroup in G.

Because G has over 4 million elements its is impossible to ask for the

MaximalSubgroups of G.

The manual says that this should be avoided for any group and

MaximalSubgroupClassReps is recommanded, but even this is impossible to

calcullate for G.

Now I tried this for a smaller group and found that Gap computes the

smallest maximalsubgroups first, so my question is: is it possible to

stop him when he finds the first (and therefor smallest) maximalsubgroup.

Because L_2(13) is a perfect group I am (now at this moment) trying to

find it by looking for the ConjugacyClassesPerfectSubgroup(G), but this

is computing a long time already (+/- 3 hours) and gives no output yet.

provides generating sets for many groups of interest, including G2(3) and, in

many cases, straight line programs that can be used to obtain generators of

maximal subgroups..

One possible session for your problem is:

gap> RequirePackage("atlasrep"); ---------------------------------------------------------- Loading AtlasRep 1.0 (An ATLAS of Group Representations), by Robert A. Wilson (R.A.Wilson@bham.ac.uk), Richard A. Parker (richard@ukonline.co.uk), John N. Bray (jnb@for.mat.bham.ac.uk), and Thomas Breuer (sam@math.rwth-aachen.de)). ---------------------------------------------------------- true gap> gens := OneAtlasGeneratingSet("G2(3)", > IsMatrixGroup).generators; [ <an immutable 14x14 matrix over GF2>, <an immutable 14x14 matrix over GF2> ] gap> slp:= AtlasStraightLineProgram("G2(3)","maxes",9); rec( program := <straight line program>, standardization := 1, identifier := [ "G2(3)", "G23G1-max9W1", 1 ] ) gap> gens1 := ResultOfStraightLineProgram(slp.program,gens); [ <an immutable 14x14 matrix over GF2>, <an immutable 14x14 matrix over GF2> ] gap> Size(Group(last)); 1092

If you cannot use the AtlasRep package (for example because the information

is not precomputed and stored) this is the more general solution:

I start with a permutation group version of G23, which I read in from a

file. (If you have matrices or a finitely presented group, use the command

`IsomorphismPermGroup' to obtain a permutation representation. For

efficiency reasons, it is also worth using a permutation representation of

small degree. If you feel yours is not good enough, try

`SmallerDegreePermutationRepresentation'. Both these functions return an

isomorphism to a new group, so if you need the result in a particular

representation you can always pull it back through the isomorphism(s).)

gap> Read("g23.grp"); gap> Size(G23); 4245696

Now I create L_2(13).

gap> u:=PSL(2,13); Group([ (3,13,11,9,7,5)(4,14,12,10,8,6), (1,2,9)(3,8,10)(4,5,12)(6,13,14) ])

The function `ConjugacyClassesPerfectSubgroup' (or

`RepresentativesPerfectSubgroups') tries to find all perfect subgroups. As

at the moment GAP has no built in data base which tells which perfect groups

are subgroups, this essentially works by testing all potential perfect

subgroups, which in your case indeed takes very long.

If you only want to find one type of subgroups, use the function

`IsomorphicSubgroups'. It uses essentially the same method(s) as

`RepresentativesPerfectSubgroups', but does not run through a set of

groups. It returns a list of homomorphisms that give the embeddings:

gap> s:=IsomorphicSubgroups(G23,u); [ [ (1,3,12)(2,9,6)(7,11,13)(8,10,14), (1,4)(2,6)(5,11)(8,9)(10,12)(13,14) ] -> [ (1,43,203)(2,182,59)(3,176,64)(4,195,321)(5,24,294)(6,63,8)(7,184,92) (9,287,115)(10,125,340)(11,18,117)(12,206,291)(13,326,46)(14,213, [...] gap> Length(s); 1 gap> sub:=Image(s[1]); <permutation group of size 1092 with 2 generators>

On my machine this takes a few seconds only