Dear GAP-Forum,
Walter Becker wrote: > distinguish them. The way I would like to do this is to > construct presentations for these groups in the form > (11 group) semi direct product with the (5-group) Since the question of combining presentations (to build extensions) and of decomposing semidirect products seem to have more general interest, I have appended a procedure `SemidirectPresentation' that takes a group and a normal subgroup, and builds a presentation for it reflecting the semidirect product decomposition. For example (generators n are the normal subgroup, s the complement). The presentations for N and S were determined automatically and are probably not as nice as can be. gap> SemidirectPresentation(g,SylowSubgroup(g,11)); [ f3, f4, f1, f2 ] -> [ n1, n2, s1, s2 ] gap> RelatorsOfFpGroup(Image(last)); [ n1^11*n2^-8, n2^-1*n1^-1*n2*n1, n2^11, s1^5, s2^-1*s1^-1*s2*s1, s2^5, s1^-1*n1*s1*n2^-1*n1^-4, s2^-1*n1*s2*n1^-1, s1^-1*n2*s1*n2^-4, s2^-1*n2*s2*n2^-1 ] I hope this is of help, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hul...@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke SemidirectPresentation:=function(G,N) local c,fpc,fc,fpn,fn,str,f,gens,r,i,j,a,rels,H,hom; c:=Complementclasses(G,N); if Length(c)=0 then Error("not split extension");fi; c:=c[1]; fpc:=IsomorphismFpGroup(c); fc:=Range(fpc); fpn:=IsomorphismFpGroup(N); fn:=Range(fpn); r:=Length(GeneratorsOfGroup(fn)); str:=List([1..r],x->Concatenation("n",String(x))); Append(str,List([1..Length(GeneratorsOfGroup(fc))], x->Concatenation("s",String(x)))); f:=FreeGroup(str); gens:=GeneratorsOfGroup(f); rels:=[]; # n-rels Append(rels,List(RelatorsOfFpGroup(fn), x->MappedWord(x,FreeGeneratorsOfFpGroup(fn),gens{[1..r]}))); # s-rels Append(rels,List(RelatorsOfFpGroup(fc), x->MappedWord(x,FreeGeneratorsOfFpGroup(fc), gens{[r+1..Length(gens)]}))); # action for i in [1..r] do for j in [1..Length(GeneratorsOfGroup(fc))] do # conjugate a:=PreImagesRepresentative(fpn,GeneratorsOfGroup(fn)[i])^ PreImagesRepresentative(fpc,GeneratorsOfGroup(fc)[j]); # as word a:=Image(fpn,a); # rewrite in generators of new free group a:=MappedWord(UnderlyingElement(a),FreeGeneratorsOfFpGroup(fn), gens{[1..r]}); # relator Add(rels,gens[i]^gens[r+j]/a); od; od; H:=f/rels; hom:=GroupHomomorphismByImages(G,H, Concatenation(List(GeneratorsOfGroup(fn), x->PreImagesRepresentative(fpn,x)), List(GeneratorsOfGroup(fc), x->PreImagesRepresentative(fpc,x)) ), GeneratorsOfGroup(H)); return hom; end; _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum