gap icon indicating copy to clipboard operation
gap copied to clipboard

ConjugacyClassesPerfectSubgroups misses subgroups

Open BrauerSuzuki opened this issue 2 months ago • 6 comments

On GAP-4.15.1, the ConjugacyClassesPerfectSubgroups does not find all perfect subgroups in some cases:

G:=WreathProduct(Group((1,2)), SymmetricGroup(6));;
Number(ConjugacyClassesSubgroups(G), h -> IsPerfect(Representative(h))); # =8
Size(ConjugacyClassesPerfectSubgroups(G)); # =6

BrauerSuzuki avatar Oct 31 '25 07:10 BrauerSuzuki

Thank you for your report, much appreciated.

TIL there is a function ConjugacyClassesPerfectSubgroups and also RepresentativesPerfectSubgroups, wow.

So I can't help with this right away, but I can say this behavior has existed since at least GAP 4.5.7 (I did not have an older version ready on my current computer).

A quick check reveals that the two missing classes are for groups of order 1920 resp. 11520. The classes which both approaches return are for subgroups of orders 1, 60, 60, 60, 360, 960.

Source of the problem seems to be somewhere in LatticeViaRadical(G,IsPerfectGroup);. If I disable the part of RepsPerfSimpSub which dispatches to that, the correct result is returned. So maybe there is a problem in lifting via the radical?

Pinging @hulpke who

fingolfin avatar Nov 01 '25 15:11 fingolfin

Pinging @hulpke who

Did you miss: "wrote the most elegant code" :-)

I have a fix. A selection of normal subgroup representatives is too limited.

hulpke avatar Nov 01 '25 20:11 hulpke

Almost, I meant to add "who probably has a much better understanding of what's going on" :-)

fingolfin avatar Nov 01 '25 20:11 fingolfin

@hulpke I have applied your fix to my installation. While the number of perfect subgroups is now correct, the subgroups themselves aren't:

List(ConjugacyClassesPerfectSubgroups(G),Size);
[ 1, 96, 192, 192, 32, 6, 6, 1 ]

BrauerSuzuki avatar Nov 09 '25 16:11 BrauerSuzuki

@hulpke I have applied your fix to my installation. While the number of perfect subgroups is now correct, the subgroups themselves aren't:

List(ConjugacyClassesPerfectSubgroups(G),Size);
[ 1, 96, 192, 192, 32, 6, 6, 1 ]

But these are classes, the subgroups

gap> List(l,x->Size(Representative(x)));
[ 1, 60, 60, 60, 360, 960, 1920, 11520 ]

seem fine.

hulpke avatar Nov 09 '25 17:11 hulpke

Ups, my bad. Thanks

BrauerSuzuki avatar Nov 09 '25 17:11 BrauerSuzuki