I'm wondering how to specify to GAP which homomorphism to use when constructing a semidirect product. I'm trying to have it construct $\left(\mathbb{Z}_p\times\mathbb{Z}_p\right)\rtimes_\varphi S_3$. Since $\mathrm{Aut}\left(\mathbb{Z}_p\times\mathbb{Z}_p\right)\cong GL_2(\mathbb{F}_p)$, I want to specify $\varphi:S_3\rightarrow\mathrm{Aut}\left(\mathbb{Z}_p\times\mathbb{Z}_p\right)$ as $\varphi:S_3\rightarrow GL_2(\mathbb{F}_p)$ element by element (i.e. give a 2x2 matrix for each element of $S_3$).

I want to do this just to do group element multiplications quickly. I'll obviously specify $p$ when necessary.

I'm fairly new to GAP so a low-level answer (or reference) would be appreciated.

  • 3
    $\begingroup$ Have you tried looking the Gap Manual specifically the section on semi-direct products? It looks like you might be able to do what you want with this function. $\endgroup$ – JSchlather Apr 5 '12 at 7:23
  • $\begingroup$ Thanks @JacobSchlather, I'll read those pages and post a solution if I can figure it out. Others are of course still welcome to help :) $\endgroup$ – Sid Raval Apr 5 '12 at 14:57
  • 2
    $\begingroup$ I noticed you still don't have an answer. You might get a quicker response if you email your question to the gap forum: forum@gap-system.org $\endgroup$ – William DeMeo Apr 8 '12 at 1:16

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);

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>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.