On Wed, June 24, 2015 6:06 pm, German Combariza wrote: > > I am trying to do a semidirect product of groups in GAP without any luck. I > will > appreciate if some body can show me a way to do it. > > The product is between the groups: > > G := CyclicGroup(4); > N := FreeAbelianGroup(6); > > Via the homomorphism: > > hom := GroupHomomorphismByImages(N, N, [N.1, N.2,N.3,N.4,N.5,N.6], [N.1^-1, > N.2^-1,N.4^-1,N.3,N.6^-1,N.5]);
I think the following is supposed to work: gap> G := CyclicGroup(4); <pc group of size 4 with 2 generators> gap> N := FreeAbelianGroup(6); <fp group on the generators [ f1, f2, f3, f4, f5, f6 ]> gap> hom := GroupHomomorphismByImages(N, N, [N.1,N.2,N.3,N.4,N.5,N.6], [N.1^-1, > N.2^-1,N.4^-1,N.3,N.6^-1,N.5]); [ f1, f2, f3, f4, f5, f6 ] -> [ f1^-1, f2^-1, f4^-1, f3, f6^-1, f5 ] gap> S := SemidirectProduct(Group(hom),N); Error, user interrupt in Though apparently this runs into an infinite loop. What you can do however is e.g. the following: gap> LoadPackage("rcwa"); gap> N := Group(List(AllResidueClassesModulo(6),ClassShift)); <rcwa group over Z with 6 generators> gap> StructureDescription(N); # free abelian group of rank 6 "Z x Z x Z x Z x Z x Z" gap> g := ClassReflection(0,6)*ClassReflection(1,6)*ClassReflection(3,6) > *ClassTransposition(2,6,3,6)*ClassReflection(5,6) > *ClassTransposition(4,6,5,6); <rcwa permutation of Z with modulus 6> gap> Order(g); 4 gap> S := ClosureGroup(N,g); # the desired semidirect product <rcwa group over Z with 7 generators> Some checks: gap> Action(S,AllResidueClassesModulo(6)); Group([ (), (), (), (), (), (), (3,4)(5,6) ]) gap> IsNormal(S,N); true gap> Q := S/N; Group([ (), (), (), (), (), (), (1,2,3,4) ]) gap> Size(Q); 4 Hope this helps, Stefan _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum