# [GAP Forum] Homomorphism for semidirect product

Alexander Hulpke hulpke at me.com
Fri May 28 15:01:10 BST 2010

```Dear Forum, Dear Krishna Mohan,

> I have learnt that the StructureDescription command gives me the structure of certain groups as semidirect products. But, as I have discovered, to specify a semidirect product one needs to specify a homomorphism as well.
>
>  Can GAP give me the relevant homomorphism?

If you have the concrete normal subgroup N and complement C, the following commands will produce such a homomorphism. In general there is no method for describing such a homomorphism with a name, and `StructureDrescription will not return the homomorphism -- you will have to get N and C yourself.

# create an example N and C
gap> G:=SymmetricGroup(4);
Sym( [ 1 .. 4 ] )
gap> N:=Subgroup(G,[(1,2)(3,4),(1,3)(2,4)]);
Group([ (1,2)(3,4), (1,3)(2,4) ])
gap> C:=Complementclasses(G,N)[1];
Group([ (3,4), (2,4,3) ])

gap> auts:=List(GeneratorsOfGroup(C),x->GroupHomomorphismByImages(N,N,
> GeneratorsOfGroup(N),List(GeneratorsOfGroup(N),y->y^x)));
[ [ (1,2)(3,4), (1,3)(2,4) ] -> [ (1,2)(3,4), (1,4)(2,3) ],
[ (1,2)(3,4), (1,3)(2,4) ] -> [ (1,4)(2,3), (1,2)(3,4) ] ]
gap> hom:=GroupHomomorphismByImagesNC(C,Group(auts),
> GeneratorsOfGroup(C),auts);
[ (3,4), (2,4,3) ] ->
[ [ (1,2)(3,4), (1,3)(2,4) ] -> [ (1,2)(3,4), (1,4)(2,3) ],
[ (1,2)(3,4), (1,3)(2,4) ] -> [ (1,4)(2,3), (1,2)(3,4) ] ]

Now `hom' is a homomorphism, one can use to create a semidirect product:

gap> S:=SemidirectProduct(C,hom,N);
Group([ (3,4), (2,4,3), (1,2)(3,4), (1,3)(2,4) ])
gap> Size(S);
24
gap> IsomorphismGroups(G,S);
[ (1,2,3,4), (1,2) ] -> [ (1,2,4,3), (1,2) ]

Regards,

Alexander Hulpke

-- Colorado State University, Department of Mathematics,
Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA
email: hulpke at math.colostate.edu, Phone: ++1-970-4914288
http://www.math.colostate.edu/~hulpke

```