From 97feedb5c078eef4a24ecf4e535295e31e3e0218 Mon Sep 17 00:00:00 2001 From: Alexander Hulpke Date: Sun, 10 Apr 2022 10:05:19 -0600 Subject: [PATCH] MinimalGeneratingSet for solvable non-pc groups --- lib/grp.gi | 16 ++++++++-------- lib/grppcatr.gi | 11 +++-------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/lib/grp.gi b/lib/grp.gi index a4fec06df3..f0012f8c62 100644 --- a/lib/grp.gi +++ b/lib/grp.gi @@ -107,21 +107,21 @@ end); ## #M MinimalGeneratingSet() . . . . . . . . . . . . . for groups ## -InstallMethod(MinimalGeneratingSet,"solvable group via pc",true, - [IsGroup],0, +InstallMethod(MinimalGeneratingSet,"test solvable and 2-generator noncyclic", + true, [IsGroup and IsFinite],0, function(G) local i; - if not IsSolvableGroup(G) then - if IsGroup(G) and HasGeneratorsOfGroup(G) + if not HasIsSolvableGroup(G) and IsSolvableGroup(G) and + CanEasilyComputePcgs(G) then + # discovered solvable -- redo + return MinimalGeneratingSet(G); + elif not IsSolvableGroup(G) then + if IsGroup(G) and (not IsCyclic(G)) and HasGeneratorsOfGroup(G) and Length(GeneratorsOfGroup(G)) = 2 then return GeneratorsOfGroup(G); fi; TryNextMethod(); fi; - i:=IsomorphismPcGroup(G); - G:=Image(i,G); - G:=MinimalGeneratingSet(G); - return List(G,j->PreImagesRepresentative(i,j)); end); ############################################################################# diff --git a/lib/grppcatr.gi b/lib/grppcatr.gi index 29c64eb9d3..ef65518680 100644 --- a/lib/grppcatr.gi +++ b/lib/grppcatr.gi @@ -612,7 +612,7 @@ end; ## InstallMethod( MinimalGeneratingSet, "pcgs computable groups using special pcgs", - true, [ IsPcGroup and IsFinite ], 0, + true, [ IsSolvableGroup and IsFinite and CanEasilyComputePcgs], 0, function( G ) local spec, weights, first, m, mingens, i, start, next, j, @@ -662,13 +662,8 @@ end ); #M SmallGeneratingSet() ## InstallMethod(SmallGeneratingSet,"using minimal generating set",true, - [IsPcGroup and IsFinite],0, -function (G) - if Length(Pcgs(G))>14 then - TryNextMethod(); - fi; - return MinimalGeneratingSet(G); -end); + [IsSolvableGroup and IsFinite and CanEasilyComputePcgs],0, + MinimalGeneratingSet); ############################################################################# ##