Dear GAP-Forum.,
Gerald Cliff asked:
Given a finite group G and an automorphism f of G,
it would be nice if GAP would give an easy implementation
of the semi-direct product G.<f> of G by the cyclic
group generated by f.
Does 'SemidirectProduct' not suit your needs?
For example
gap> g:=SymmetricGroup(6); gap> hom:=GroupHomomorphismByImages(g,g,g.generators,[(1,4)(2,3)(5,6), > (1,6)(2,5)(3,4),(1,3)(2,6)(4,5),(1,5)(2,4)(3,6),(1,2)(3,5)(4,6)]) gap> H:=Group(hom); Group( GroupHomomorphismByImages( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ), Group( (1,6), (2,6), (3,6), (4,6), (5,6) ), [ (1,6), (2,6), (3,6), (4,6), (5,6) ], [ (1,4)(2,3)(5,6), (1,6)(2,5)(3,4), (1,3)(2,6)(4,5), (1,5)(2,4)(3,6), (1,2)(3,5)(4,6) ] ) ) gap> Size(H); 10
We will need a mapping from H onto a group of automorphisms. In this case,
it is the identity:
gap> sdp:=SemidirectProduct(H,IdentityMapping(H),g); Group( SemidirectProductElement( GroupHomomorphismByImages( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ), Group( (1,6), (2,6), (3,6), (4,6), (5,6) ), [ (1,6), (2,6), (3,6), (4,6), (5,6) ], [ (1,4)(2,3)(5,6), (1,6)(2,5)(3,4), (1,3)(2,6)(4,5), (1,5)(2,4)(3,6), (1,2)(3,5)(4,6) ] ), GroupHomomorphismByImages( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ), Group( (1,6), (2,6), (3,6), (4,6), (5,6) ), [ (1,6), (2,6), (3,6), (4,6), (5,6) ], [ (1,4)(2,3)(5,6), (1,6)(2,5)(3,4), (1,3)(2,6)(4,5), (1,5)(2,4)(3,6), (1,2)(3,5)(4,6) ] ), () ), SemidirectProductElement( IdentityMapping( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ) ), IdentityMapping( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ) ), (1,6) ), SemidirectProductElement( IdentityMapping( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ) ), IdentityMapping( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ) ), (2,6) ), SemidirectProductElement( IdentityMapping( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ) ), IdentityMapping( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ) ), (3,6) ), SemidirectProductElement( IdentityMapping( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ) ), IdentityMapping( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ) ), (4,6) ), SemidirectProductElement( IdentityMapping( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ) ), IdentityMapping( Group( (1,6), (2,6), (3,6), (4,6), (5,6) ) ), (5,6) ) ) gap> Size(sdp); 7200
Alexander Hulpke