From b4aeca9a4617409c32ac2b4fd40cb8a441607e50 Mon Sep 17 00:00:00 2001 From: Alexander Hulpke Date: Mon, 16 Jan 2023 11:32:36 -0700 Subject: [PATCH] ENHANCE: FittingFreeSubgroupSetup uses presentation for factor and closure, rather than coKernelGenerators. This requires fewer products in preimage. --- lib/fitfree.gi | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/fitfree.gi b/lib/fitfree.gi index 83c4036709..7b6ce7b7ea 100644 --- a/lib/fitfree.gi +++ b/lib/fitfree.gi @@ -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))); @@ -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);