# GAP semidirect product

I am newbie in the GAP and in the group theory. Now I am trying to make semidirect product if GL(3,2) and GL(3,2) inversed and transposed. I use code below

H:=GeneralLinearGroup(3, 2);
GH:=GeneratorsOfGroup(H);
GT:=List(GH, g->Inverse(TransposedMat(g)));
T:=Group(GT);
A:=AutomorphismGroup(T);
elts := Elements(A);

map:=GroupHomomorphismByImages(H, A,GeneratorsOfGroup(H), [elts[2], elts[10]]);
SemidirectProduct(T,map,H);


I got error about "GroupHomomorphismByImages" failed. I have no idea what should I do. From related topics I got that I should define proper homomorphism. But I cannot imagine what is possible here.

I will be very thankful if you help me to solve this issue.

• I'm guessing this chapter of the manual is relevant. – Shaun Feb 17 at 17:23
• I'm voting to close this question as off-topic because it belongs on the GAP forums. – verret Feb 17 at 21:00
• @Shaun. The chapter you link to is not really relevant here. The issue is with the SemidirectProduct operation ( gap-system.org/Manuals/doc/ref/chap49.html#X87FE512E7DB7346C ) and the concept of mapping generators to homomorphic images, not just arbitrary elements. – ahulpke Feb 17 at 23:34
• Thank you, @ahulpke. Sorry, Зиля Хуснутдинова. – Shaun Feb 17 at 23:36

GAP tests that the map you give indeed is a homomorphism. Why should the generators of $$H$$ be mapped to (particularly) elements 2 and 1.

What you want is to find the elements corresponding to the chosen generators of $$H$$, that is the inner automorphisms induced by the inverse transposed matrices:

gap> imgs:=List(GT,x->InnerAutomorphism(T,x));
[ ^<an immutable 3x3 matrix over GF2>, ^<an immutable 3x3 matrix over GF2> ]
gap> map:=GroupHomomorphismByImages(H, A, GeneratorsOfGroup(H),imgs);
CompositionMapping( [ (5,7)(6,8), (2,3,5)(4,7,6) ] ->
[ ^<an immutable 3x3 matrix over GF2>, ^<an immutable 3x3 matrix over GF2> ],
<action isomorphism> )
gap> SemidirectProduct(T,map,H);
Group([ (11,13)(12,14), (8,9,11)(10,13,12), (2,6)(3,7)(11,13)(12,14), (1,2,4)(3,6,5)(8,9,11)(10,13,12) ])


You could also check for the correct index numbers in this particular case (but for different groups they will be different):

gap> List(imgs,x->Position(elts,x));
[ 24, 105 ]

• Thank you, @ahulpke – zloodeyka Feb 18 at 5:20