[GAP Forum] presentations from GrpConst Program

Alexander Hulpke hulpke at math.colostate.edu
Wed Nov 30 18:51:31 GMT 2011



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: hulpke at 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;





More information about the Forum mailing list