Semidirect Products with GAP
Solution 1:
In case you still don't have an answer:
You want to use the GAP command
SemidirectProduct( <g>, <hom>, <n> )
.
Here, <hom>
is a group homomorphism from the group <g>
to the automorphism group of the group <n>
.
In GAP this might look like this (for $p=7$):
gap> h := CyclicGroup(7);;
gap> g := DirectProduct( h, h );;
gap> aut := AutomorphismGroup( g );;
gap> iso := IsomorphismGroups( GL(2,7), aut );;
gap> s := SymmetricGroup(3);;
gap> GeneratorsOfGroup( s );
[ (1,2,3), (1,2) ]
gap> hom := GroupHomomorphismByImages( s, GL(2,7), GeneratorsOfGroup( s ), [ a, b ] );
[ (1,2,3), (1,2) ] -> [ [ [ Z(7)^0, 0*Z(7) ], [ 0*Z(7), Z(7)^0 ] ], [ [ Z(7)^0, 0*Z(7) ], [ 0*Z(7), Z(7)^0 ] ] ]
a
and b
are your favourite images of (1,2,3)
and (1,2)
, respectively. I chose One(GL(2,7))
because I'm lazy. Note that you have to tell GAP that your matrices are over $\mathbb{F}_p$. Fortunately, that can be done like this:
gap> a := [ [ 1, 2 ], [ 3, 4 ] ] * One( GF(7) );
[ [ Z(7)^0, Z(7)^2 ], [ Z(7), Z(7)^4 ] ]
gap> a in GL(2,7);
true
Now you can compose hom
and iso
and define your semidirect product:
gap> semi := SemidirectProduct( s, CompositionMapping( iso, hom ), g );
<pc group with 4 generators>