Skip to content

Commit

Permalink
ENHANCE: FittingFreeSubgroupSetup
Browse files Browse the repository at this point in the history
uses presentation for factor and closure, rather than coKernelGenerators.
This requires fewer products in preimage.
  • Loading branch information
hulpke authored and fingolfin committed Feb 4, 2023
1 parent 7cf672d commit b4aeca9
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion lib/fitfree.gi
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ local ffs,pcisom,rest,kpc,k,x,ker,r,pool,i,xx,pregens,iso;
ker:=TrivialSubgroup(G);
k:=ffs.pcgs;
else

iso:=IsomorphismFpGroup(Image(rest,U));
pregens:=List(GeneratorsOfGroup(Range(iso)),x->
PreImagesRepresentative(rest,PreImagesRepresentative(iso,x)));
Expand All @@ -90,6 +89,15 @@ local ffs,pcisom,rest,kpc,k,x,ker,r,pool,i,xx,pregens,iso;
Append(pool,List(GeneratorsOfGroup(U),x->x/
MappedWord(UnderlyingElement(ImagesRepresentative(iso,ImagesRepresentative(ffs.factorhom,x))),FreeGeneratorsOfFpGroup(Range(iso)),pregens)));

iso:=IsomorphismFpGroup(Image(rest,U));
pregens:=List(GeneratorsOfGroup(Range(iso)),x->
PreImagesRepresentative(rest,PreImagesRepresentative(iso,x)));
# evaluate relators
pool:=List(RelatorsOfFpGroup(Range(iso)),
x->MappedWord(x,FreeGeneratorsOfFpGroup(Range(iso)),pregens));
# divide off original generators
Append(pool,List(GeneratorsOfGroup(U),x->x/
MappedWord(UnderlyingElement(ImagesRepresentative(iso,ImagesRepresentative(ffs.factorhom,x))),FreeGeneratorsOfFpGroup(Range(iso)),pregens)));

pool:=List(pool,x->ImagesRepresentative(pcisom,x));
kpc:=SubgroupNC(Image(pcisom),pool);
Expand Down

0 comments on commit b4aeca9

Please sign in to comment.