# semidirect product of matrix group in GAP

I am new in gap, please accept my apologize because of asking some simple questions. I want to know if we have two general linear groups, is it possible to make the semidirect product of them in gap. I have read GAP semidirect product algorithm and Semidirect Products with GAP.

• Have you read Group Products from the GAP manual? Have you tried to call SemidirectProduct? What happened then? Do you know in which way one group should act on another in the direct product you want to construct? – Alexander Konovalov Feb 24 '14 at 21:35
• I want to compute semidirect product of GL(3,2) and GL(2,2). – user40491 Feb 24 '14 at 21:53
• Looks like then you have to use the 3-argument version of SemidirectProduct - see my question above regarding the action. You need to be able to answer that to decide what's the 2nd argument... – Alexander Konovalov Feb 24 '14 at 21:59
• according to the definition of semidirect product to compute the G_1 semidirect product G_2 , we need to define a homomorphism from G_2 to Aut(G_1) ? I have no idea about the second argument? Is depends on my case I am working on that. right? – user40491 Feb 24 '14 at 22:06
• Yes, the 2nd argument is crucial for this, and different automorphisms may lead to different products. – Alexander Konovalov Feb 24 '14 at 22:13

Please see the Chapter "Group Products" from the GAP reference manual for further details. In particular, there is an operation SemidirectProduct and you should be looking at its three-argument version. In general, you have to know in which way one group acts on another, since different actions may lead to different semidirect products. In this case, however, there is only one way to do this, since there is only one possible homomorphism from G to Aut(N), and the construction may be seen from the following example:

gap> G:=GL(3,2); N:=GL(2,2);
SL(3,2)
SL(2,2)
gap> A:=AutomorphismGroup(N);
<group of size 6 with 2 generators>
gap> h:=AllHomomorphisms(G,A);
[ CompositionMapping( [ (5,7)(6,8), (2,3,5)(4,7,6) ] ->
[ IdentityMapping( SL(2,2) ), IdentityMapping( SL(2,2) ) ],
<action isomorphism> ) ]
gap> Length(h);
1
gap> SemidirectProduct(G,h[1],N);
Group([ (9,10), (8,10,9), (4,6)(5,7), (1,2,4)(3,6,5) ])


But now let us look at the homomorphism h[1] - it maps each element of G into the trivial homomorphism of N. So, what you get here is just a direct product of the two groups:

gap> Image(h[1]);
<group of size 1 with 2 generators>
gap> Size(last);
1
gap> StructureDescription(S);
"S3 x PSL(3,2)"
gap> StructureDescription(DirectProduct(G,N));
"PSL(3,2) x S3"


BTW, you may also try to search in the GAP Forum archives using this link.