diff --git a/lib/csetperm.gi b/lib/csetperm.gi index 7d7ca1d7bb..fc4492c67a 100644 --- a/lib/csetperm.gi +++ b/lib/csetperm.gi @@ -883,10 +883,12 @@ local G,u,op,h,N,rt,ac,actions,hom,i,q; u:=G; Error("only trivial operation ? I Set u:=G;"); fi; + if IsSubset(u, G) then + return DoFactorCosetAction(G, u, G); + fi; if N=false then N:=Core(G,u); fi; - ac:=ActionRefinedSeries(G,u); actions:=ac[2]; ac:=ac[1]; diff --git a/lib/factgrp.gd b/lib/factgrp.gd index b8feb8d310..5b0fc432ff 100644 --- a/lib/factgrp.gd +++ b/lib/factgrp.gd @@ -167,6 +167,8 @@ DeclareAttribute("NaturalHomomorphismsPool",IsGroup, ## DeclareOperation( "FactorCosetAction", [IsGroup,IsGroup] ); +DeclareGlobalFunction( "DoFactorCosetAction" ); + ############################################################################# ## #F ImproveActionDegreeByBlocks( , , [,forceblocks] ) diff --git a/lib/factgrp.gi b/lib/factgrp.gi index 2e8fa119ef..7fecc44bef 100644 --- a/lib/factgrp.gi +++ b/lib/factgrp.gi @@ -475,7 +475,7 @@ end); #F FactorCosetAction( , , [] ) operation on the right cosets Ug ## with possibility to indicate kernel ## -BindGlobal("DoFactorCosetAction",function(arg) +InstallGlobalFunction("DoFactorCosetAction",function(arg) local G,u,op,h,N,rt; G:=arg[1]; u:=arg[2]; diff --git a/tst/teststandard/permgrp.tst b/tst/teststandard/permgrp.tst index ec68566b34..efd055c083 100644 --- a/tst/teststandard/permgrp.tst +++ b/tst/teststandard/permgrp.tst @@ -155,6 +155,8 @@ gap> u:=Normalizer(g,SylowSubgroup(g,3));; gap> act:=FactorCosetAction(g,u);; gap> NrMovedPoints(Range(act)); 70840 +gap> NrMovedPoints(Range(FactorCosetAction(g,g))); +0 # gap> STOP_TEST("permgrp.tst");