> < ^ From:

< ^ Subject:

Dear GAP-Forum,

Bruce Coletti asked:

> If S8 and S3 are respectively the symmetric groups on 8 and 3 letters, what

> values of f and Z would equate WreathProduct(S8,S3,IdentityMapping(S3)) to

> SemidirectProduct(DirectProduct(S8,S8,S8),f,Z), where f is a homomorphism

> from DirectProduct(S8,S8,S8) into Aut(Z)?

There has been some confusion recently in the Forum about semidirect

products, which I would like to clarify. The GAP syntax is:

S:=SemidirectProduct(G,hom,H);

S will be a group that contains a normal subgroup N isomorphic to H and a

complement U to N which is isomorphic to G. The homomorphism hom goes from G

to a group acting on H and will describe the conjugation action of U on N. I

append an example for constructing the mentioned wreath product as a

semidirect product. GAP currently does no complete test for the validity of

the arguments

I should add that 'SemidirectProduct' is mainly of educational value. There

are basically no special methods installed for groups constructed this way.

Most operations will fall back on generic routines that work with element

lists. I would not recommend to use these 'SemidirectProducts' for any

serious work, but rather suggest to construct such semidirect products

directly in a more suitable representation, for example as a subgroup of the

regular wreath product H\wr_{reg} G. (This embedding can be found for

example in Huppert: Endliche Gruppen, Theorem I.15.9. It is not difficult

conceptually, but to give explicit generators for an embedding requires care

and can be tedious.)

I hope this helps.

Best regards,

Alexander Hulpke

# Get S8 and S3 gap> S8:=SymmetricGroup(8); Group( (1,8), (2,8), (3,8), (4,8), (5,8), (6,8), (7,8) ) gap> S3:=SymmetricGroup(3); Group( (1,3), (2,3) ) # Form S8^3 gap> H:=DirectProduct(S8,S8,S8); Group( (1,8), (2,8), (3,8), (4,8), (5,8), (6,8), (7,8), ( 9,16), (10,16), (11,16), (12,16), (13,16), (14,16), (15,16), (17,24), (18,24), (19,24), (20,24), (21,24), (22,24), (23,24) ) # To describe automorphisms of H, we need the generators of H gap> hgens:=H.generators; [ (1,8), (2,8), (3,8), (4,8), (5,8), (6,8), (7,8), ( 9,16), (10,16), (11,16), (12,16), (13,16), (14,16), (15,16), (17,24), (18,24), (19,24), (20,24), (21,24), (22,24), (23,24) ] # corresponding (1,3): Exchange 1st and 3rd component gap> hom1:=GroupHomomorphismByImages(H,H,hgens,hgens{Concatenation([15..21],[8..14],[1..7])});; # corresponding (2,3): Exchange 2nd and 3rd component gap> hom2:=GroupHomomorphismByImages(H,H,hgens,hgens{Concatenation([1..7],[15..21],[8..14])});; # Usually in GAP3 it is good to tell GAP that these objects indeed respect # relators (For example (1,3),(2,4) -> (1,2,3),(2,3,4) would not !) # GAP otherwise will test this which sometimes may take very long. gap> hom1.isMapping:=true;; gap> hom2.isMapping:=true;; # form a group acting on H gap> aut:=Group(hom1,hom2);; # now form the mapping from S3 into the automorphism group gap> ahom:=GroupHomomorphismByImages(S3,aut,S3.generators,aut.generators);; gap> ahom.isMapping:=true;; # now we can build the semidirect product gap> sdp:=SemidirectProduct(S3,ahom,H);; # indeed the size is OK gap> Size(sdp); 393289924608000 gap> Factorial(8)^3*6; 393289924608000 # Prove isomorphism to S8 \wr S3. (Note that finding the isomorphism by GAP # is unfeasible in this situation.) We use implicitly information about # which generators are chosen for the wreath product and construct the # isomorphism by mapping generators. w:=WreathProduct(S8,S3,IdentityMapping(S3)); Group( (1,8), (2,8), (3,8), (4,8), (5,8), (6,8), (7,8), ( 9,16), (10,16), (11,16), (12,16), (13,16), (14,16), (15,16), (17,24), (18,24), (19,24), (20,24), (21,24), (22,24), (23,24), ( 1,17)( 2,18)( 3,19)( 4,20)( 5,21)(6,22) ( 7,23)( 8,24), ( 9,17)(10,18)(11,19)(12,20)(13,21)(14,22)(15,23)(16,24) ) gap> iso:=GroupHomomorphismByImages(w,sdp,w.generators,sdp.generators{ Concatenation([3..23],[1,2])});; # test that it is a homomorphism, (This takes some time!) # thus by a size argument (note that the images of the generators of contain # all generaors of sdp) both groups are isomorphic. gap> IsHomomorphism(iso); true; # Further computations (for example for the Kernel of iso) are unfeasible # again.

> < [top]