Thomas Breuer gave a good answer to Scott Moser's question, but
it may also be worth mentioning another solution that works mechanically
in this and other similar cases:
Scott Moser asked
I am trying to represent and view the projectivve specail linear group
(for example, L_2(13) ). One can easily construct the group using GAP's
SL(2,13) special linear group command in conjunction with the FactorGroup
However... when i ask GAP to list the generators of the group, it produces
two group elements: one of order 6 and one of order 3. I wish to express
the group with two generators, one of order 2 and one of order 7. I am
certain this can be done ('the atlas of finite groups' asserts the
gereators existance, buuut not their form), but am unable to get GAP to
help me to this end - any suggestions??
This is the same as asking for an epimorphism of Z/2 * Z/7 to PSL(2,13). We can put in an additional requirement that their product has order 3, i.e. look for epimorphisms from the (2,3,7) triangle group: gap> f2 := FreeGroup(2); <free group on the generators [ f1, f2 ]> gap> g237 := f2 / [f2.1^2, f2.2^3, (f2.1*f2.2)^7] ; <fp group on the generators [ f1, f2 ]> gap> GQuotients(f237, PSL(2,13)); [ [ f1, f2 ] -> [ ( 1,11)( 2, 6)( 3, 7)( 4, 5)(10,14)(12,13), ( 1,14, 5)( 2, 8,11)( 3,13, 9)( 4,12,10) ], [ f1, f2 ] -> [ ( 1, 3)( 2,10)( 4, 5)( 6,14)( 7,11)( 8, 9), ( 1,14, 5)( 2, 8,11)( 3,13, 9)( 4,12,10) ], [ f1, f2 ] -> [ ( 1,10)( 2,12)( 3,14)( 4, 6)( 5,11)( 7, 8), ( 1,14, 5)( 2, 8,11)( 3,13, 9)( 4,12,10) ] ]
These should be all the solutions for the more restrictive problem, up to automorphism of PSL(2,13).
(You can also look at the original question, GQuotients of G27 := f2 / [f2.1^2, f2.2^7];
you get 18 solutions).
This will break down if the group is huge, and there are too many possible epimorphisms ---
then it's better just to search for a while to try to find one (as Breueur explains).
I have found that the GraphicSubgroupLattice command in the XGAP share package has helped me
to understand and visually organize this kind of thing. Either invoke
GraphicSubgroupLattice(g237) from xgap, and ask for epimorphisms to PSL(2,13),
or invoke GraphicSubgroupLattice(PSL(2,13)),
-- asking for the 7-Sylow and 2-Sylow subgroups
-- put in the intermediate subgroups between the 2-Sylow subgroup and <1>
to get subgroups of order 2, and
-- ask for the closure of a 7-Sylow subgroup
and the various order 2 subgroups.
In one of these cases, the order 2 and order 7 groups generate the whole group.
(You can also ask for conjugates of these computed subgroups and use them
to find the other solutions)
Thomas Breuer's reply below:
In this particular case, the easiest solution may be the following.gap> # Construct the group. gap> sl:= SL(2,13);; g:= sl / Centre( sl ); Group([ ( 3, 4, 5, 6, 8,12)( 7,10, 9,14,11,13), ( 1, 2, 3)( 5, 7,11)( 6, 9,10)( 8,13,14) ]) gap> gens:= GeneratorsOfGroup( g );; gap> List( gens, Order ); [ 6, 3 ] gap> # Form the new generators. gap> x:= gens^3;; y:= x * gens;; Order( x ); Order( y ); 2 7 gap> # They do in fact generate the whole group. gap> Group( x, y ) = g; true
(Two small improvements:
The group can also be constructed directly using the function `PSL',
and the check whether `x' and `y' generate the group can be omitted
if one knows --for example from the ATLAS of Finite Groups)-- that all
proper subgroups of PSL(2,13) are solvable and thus any pair of elements
of orders 2 and 3 in PSL(2,13) with product of order 7 generates the
More general, if the problem is to find, for a given group,
generators of prescribed order or in prescribed conjugacy classes,
then one may use (pseudo) random searches until the desired generators
In the example above, elements of order 2, 3, and 6 can be derived from
the known generators, and elements of order 7 and 13 could be found as
random products of the generators (use the function `PseudoRandom').
Sometimes it may be useful to reduce the search to a small subgroup that
is known to contain elements in the conjugacy classes in question,
for example Sylow subgroups or centralizers of elements one has already
Once one has representatives of the interesting conjugacy classes,
one can again use `PseudoRandom' to conjugate them until one finds
the required generating n-tuple.
I hope this helps.