From 493d8d1dc6017c723e03fc3ffd68a2303427bbaf Mon Sep 17 00:00:00 2001 From: Alexander Hulpke Date: Sun, 7 Feb 2021 11:30:09 -0700 Subject: [PATCH] FIX: IntermediateGroup will not exit quietly if index is large --- lib/csetgrp.gi | 19 ++++++++++++++++--- .../2021-02-07-IntermediateGroup.tst | 5 +++++ 2 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 tst/testbugfix/2021-02-07-IntermediateGroup.tst diff --git a/lib/csetgrp.gi b/lib/csetgrp.gi index 945c2c0f104..ed659446eb1 100644 --- a/lib/csetgrp.gi +++ b/lib/csetgrp.gi @@ -330,8 +330,6 @@ local o,b,img,G1,c,m,mt,hardlimit,gens,t,k,intersize; return fail; fi; - # old code -- obsolete - c:=ValueOption("refineChainActionLimit"); if IsInt(c) then hardlimit:=c; @@ -339,7 +337,22 @@ local o,b,img,G1,c,m,mt,hardlimit,gens,t,k,intersize; hardlimit:=1000000; fi; - if Index(G,U)>hardlimit then return fail;fi; + if Index(G,U)>hardlimit/10 + and ValueOption("callinintermediategroup")<>true then + # try the `AscendingChain` mechanism + c:=AscendingChain(G,U:cheap,refineIndex:=QuoInt(IndexNC(G,U),2), + callinintermediategroup); + if Length(c)>2 then + return First(c,x->Size(x)>Size(U)); + fi; + fi; + + if Index(G,U)>hardlimit then + Info(InfoWarning,1, + "will have to use permutation action of degree bigger than ", hardlimit); + fi; + + # old code -- obsolete if IsPermGroup(G) and Length(GeneratorsOfGroup(G))>3 then G1:=Group(SmallGeneratingSet(G)); diff --git a/tst/testbugfix/2021-02-07-IntermediateGroup.tst b/tst/testbugfix/2021-02-07-IntermediateGroup.tst new file mode 100644 index 00000000000..0aa2cba47d6 --- /dev/null +++ b/tst/testbugfix/2021-02-07-IntermediateGroup.tst @@ -0,0 +1,5 @@ +# IntermediateGroup in large index, reported in Forum (Breuer/Anvita) on 2/7/21 +gap> L:=PSL(2,7^3);; +gap> S:=SylowSubgroup(L,2);; +gap> IntermediateGroup(L,S); +