Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Break loop using ConjugacyClasses on Centralizer in permutation group #3139

Closed
jackschmidt opened this issue Dec 21, 2018 · 5 comments · Fixed by #3154
Closed

Break loop using ConjugacyClasses on Centralizer in permutation group #3139

jackschmidt opened this issue Dec 21, 2018 · 5 comments · Fixed by #3154
Labels
kind: bug: unexpected error Issues describing bugs in which computation unexpectedly encounters an error, and PRs fixing them kind: bug Issues describing general bugs, and PRs fixing them topic: library
Milestone

Comments

@jackschmidt
Copy link
Contributor

GAP has trouble computing conjugacy classes in certain subgroups of a permutation group. I observed the problem in the ubuntu gap (4.8.8) and tried the latest release, but got the same result.

The reproducer code is:

wreathy := WreathProduct(SymmetricGroup(2),SymmetricGroup(5));;
classes := ConjugacyClasses(wreathy);;
badsubgroup := StabilizerOfExternalSet( classes[2] );;
ConjugacyClasses( badsubgroup );

One can use:

ConjugacyClasses( Group( GeneratorsOfGroup( badsubgroup ) ) );

to get the conjugacy classes, so it is something wrong with stored attributes. The trouble does not show up if the original group is solvable. The bad subgroup is solvable.

 *********   GAP 4.10.0 of 01-Nov-2018
 *  GAP  *   https://www.gap-system.org
 *********   Architecture: x86_64-pc-linux-gnu-default64
 Configuration:  gmp 6.1.2, readline
 Loading the library and packages ...
 Packages:   AClib 1.3.1, Alnuth 3.1.0, AtlasRep 1.5.1, AutoDoc 2018.09.20, AutPGrp 1.10, Browse 1.8.8, Carat 2.2.2, 
             CRISP 1.4.4, Cryst 4.1.18, CrystCat 1.1.8, CTblLib 1.2.2, FactInt 1.6.2, FGA 1.4.0, GAPDoc 1.6.2, IO 4.5.4, 
             IRREDSOL 1.4, LAGUNA 3.9.0, Polenta 1.3.8, Polycyclic 2.14, PrimGrp 3.3.2, RadiRoot 2.8, ResClasses 4.7.1, 
             SmallGrp 1.3, Sophus 1.24, SpinSym 1.5, TomLib 1.2.7, TransGrp 2.0.4, utils 0.59
 Try '??help' for help. See also '?copyright', '?cite' and '?authors'
gap> wreathy := WreathProduct(SymmetricGroup(2),SymmetricGroup(5));;
gap> classes := ConjugacyClasses(wreathy);;
gap> badsubgroup := StabilizerOfExternalSet( classes[2] );;
gap> ConjugacyClasses( badsubgroup );
Error, List Element: <list>[5] must have an assigned value in
  img{[ i .. r ]} := OnTuples( img{[ i .. r ]}, H.transversal[img[i]] ); at /home/jack/gap-4.10.0/lib/pcgsperm.gi:806 called from 
ExponentsOfPcElementPermGroup( pcgs, g, 1, Maximum( poss ), 'e' ) at /home/jack/gap-4.10.0/lib/pcgsperm.gi:1261 called from
ExponentsOfPcElement( ParentPcgs( pcgs ), elm, pcgs!.depthsInParent{range} ) at /home/jack/gap-4.10.0/lib/pcgsind.gi:1486 called from
ExponentsOfPcElement( ParentPcgs( pcgs ), elm, pcgs!.depthsInParent{range} ) at /home/jack/gap-4.10.0/lib/pcgsind.gi:1486 called from
ExponentsOfPcElement( NumeratorOfModuloPcgs( pcgs ), elm, pcgs!.depthMap ) at /home/jack/gap-4.10.0/lib/pcgsmodu.gi:931 called from
ExponentsOfPcElement( Npcgs, Comm( h, c ) ) at /home/jack/gap-4.10.0/lib/clashom.gi:1735 called from
...  at *stdin*:4
you can 'return;' after assigning a value
brk> Where(300);
ExponentsOfPcElementPermGroup( pcgs, g, 1, Maximum( poss ), 'e' ) at /home/jack/gap-4.10.0/lib/pcgsperm.gi:1261 called from
ExponentsOfPcElement( ParentPcgs( pcgs ), elm, pcgs!.depthsInParent{range} ) at /home/jack/gap-4.10.0/lib/pcgsind.gi:1486 called from
ExponentsOfPcElement( ParentPcgs( pcgs ), elm, pcgs!.depthsInParent{range} ) at /home/jack/gap-4.10.0/lib/pcgsind.gi:1486 called from
ExponentsOfPcElement( NumeratorOfModuloPcgs( pcgs ), elm, pcgs!.depthMap ) at /home/jack/gap-4.10.0/lib/pcgsmodu.gi:931 called from
ExponentsOfPcElement( Npcgs, Comm( h, c ) ) at /home/jack/gap-4.10.0/lib/clashom.gi:1735 called from
LiftClassesEANonsolvGeneral( G, mpcgs, i, hom, pcisom, solvtriv, fran ) at /home/jack/gap-4.10.0/lib/clashom.gi:2469 called from
ConjugacyClassesViaRadical( G ) at /home/jack/gap-4.10.0/lib/clashom.gi:3071 called from
<function "unknown">( <arguments> )
 called from read-eval loop at *errin*:1
brk> StructureDescription( badsubgroup );
"C2 x (((((C2 x C2 x C2 x C2) : C2) : C2) : C3) : C2)"
brk> 
gap> ConjugacyClasses( Group( GeneratorsOfGroup( badsubgroup ) ) );
[ ()^G, (3,4)(7,8)^G, (1,2)(3,4)(5,6)(7,8)^G, (1,7)(2,8)(3,5)(4,6)^G, (1,8,2,7)(3,5,4,6)^G, (1,7,5)(2,8,6)^G, 
  (1,8,6,2,7,5)(3,4)^G, (5,7)(6,8)^G, (3,4)(5,8,6,7)^G, (1,2)(3,4)(5,7)(6,8)^G, (1,7,3,5)(2,8,4,6)^G, (7,8)^G, 
  (1,2)(3,4)(7,8)^G, (1,7,2,8)(3,5)(4,6)^G, (1,7,6,2,8,5)^G, (1,8,5)(2,7,6)(3,4)^G, (5,7,6,8)^G, (3,4)(5,8)(6,7)^G, 
  (1,2)(3,4)(5,7,6,8)^G, (1,7,4,6,2,8,3,5)^G, (9,10)^G, (3,4)(7,8)(9,10)^G, (1,2)(3,4)(5,6)(7,8)(9,10)^G, 
  (1,7)(2,8)(3,5)(4,6)(9,10)^G, (1,8,2,7)(3,5,4,6)(9,10)^G, (1,7,5)(2,8,6)(9,10)^G, (1,8,6,2,7,5)(3,4)(9,10)^G, 
  (5,7)(6,8)(9,10)^G, (3,4)(5,8,6,7)(9,10)^G, (1,2)(3,4)(5,7)(6,8)(9,10)^G, (1,7,3,5)(2,8,4,6)(9,10)^G, (7,8)(9,10)^G, 
  (1,2)(3,4)(7,8)(9,10)^G, (1,7,2,8)(3,5)(4,6)(9,10)^G, (1,7,6,2,8,5)(9,10)^G, (1,8,5)(2,7,6)(3,4)(9,10)^G, 
  (5,7,6,8)(9,10)^G, (3,4)(5,8)(6,7)(9,10)^G, (1,2)(3,4)(5,7,6,8)(9,10)^G, (1,7,4,6,2,8,3,5)(9,10)^G ]
@markuspf
Copy link
Member

Note that this does not happen with the current master branch (but it does happen on stable-4.10

@markuspf
Copy link
Member

markuspf commented Dec 21, 2018

Cherry picking commit 75f11d9 makes the problem go away.

@markuspf
Copy link
Member

This is probably one for @hulpke. While I could determine that ExponentsOfPcElement is passed an element that does not belong to the group, I have no idea why this happens. The following still happens on the master branch:

gap> wreathy := WreathProduct(SymmetricGroup(2),SymmetricGroup(5));;
gap> classes := ConjugacyClasses(wreathy);;
gap> badsubgroup := StabilizerOfExternalSet( classes[2] );;
gap> ConjugacyClassesViaRadical(badsubgroup);
Error, List Element: <list>[5] must have an assigned value in
  img{[ i .. r ]} := OnTuples( img{[ i .. r ]}, H.transversal[img[i]] ); at /home/mp397/git/gap/lib/pcgsperm.gi:807 called from 
ExponentsOfPcElementPermGroup( pcgs, g, 1, Maximum( poss ), 'e' ) at /home/mp397/git/gap/lib/pcgsperm.gi:1262 called from
ExponentsOfPcElement( ParentPcgs( pcgs ), elm, pcgs!.depthsInParent{range} ) at /home/mp397/git/gap/lib/pcgsind.gi:1487 called from
ExponentsOfPcElement( ParentPcgs( pcgs ), elm, pcgs!.depthsInParent{range} ) at /home/mp397/git/gap/lib/pcgsind.gi:1487 called from
ExponentsOfPcElement( NumeratorOfModuloPcgs( pcgs ), elm, pcgs!.depthMap ) at /home/mp397/git/gap/lib/pcgsmodu.gi:932 called from
ExponentsOfPcElement( Npcgs, Comm( h, c ) ) at /home/mp397/git/gap/lib/clashom.gi:1742 called from
...  at *stdin*:7
type 'quit;' to quit to outer loop

@markuspf markuspf added kind: bug: unexpected error Issues describing bugs in which computation unexpectedly encounters an error, and PRs fixing them topic: library labels Dec 21, 2018
@jackschmidt
Copy link
Contributor Author

jackschmidt commented Dec 21, 2018

Thanks! I worry that ConjugacyClassesFittingFreeGroup is running on a non-trivial solvable group (on master branch).

gap> SetAssertionLevel(99);
gap> ConjugacyClassesViaRadical(badsubgroup);
Error, Assertion failure in
  Sum( List( cl, function ( pair )
          return Size( G ) / Size( pair[2] );
      end ) ) = Size( G ) at /home/jack/gap/lib/clashom.gi:1495 called from 
ConjugacyClassesFittingFreeGroup( f ) at /home/jack/gap/lib/clashom.gi:2402 called from
<function "ConjugacyClassesViaRadical">( <arguments> )
 called from read-eval loop at *stdin*:5
you may 'return;'
brk> f;
Group([ (1,3)(2,4), (1,7,5,3)(2,8,6,4), (), (), (), (), () ])
brk> StructureDescription(f);
"S4"

@hulpke
Copy link
Contributor

hulpke commented Dec 30, 2018

@markuspf 75f11d9 is a red herring, just works around problem.

hulpke added a commit to hulpke/gap that referenced this issue Dec 30, 2018
If the group has been obtained as subgroup from a fitting free computation,
the data will be inherited and might not guarantee that the factor group
really is fitting free. Test/resolve this.

This fixes gap-system#3139
hulpke added a commit to hulpke/gap that referenced this issue Dec 30, 2018
If the group has been obtained as subgroup from a fitting free computation,
the data will be inherited and might not guarantee that the factor group
really is fitting free. Test/resolve this.

This fixes gap-system#3139
hulpke added a commit to hulpke/gap that referenced this issue Jan 7, 2019
If the group has been obtained as subgroup from a fitting free computation,
the data will be inherited and might not guarantee that the factor group
really is fitting free. Test/resolve this.

This fixes gap-system#3139
hulpke added a commit to hulpke/gap that referenced this issue Jan 7, 2019
If the group has been obtained as subgroup from a fitting free computation,
the data will be inherited and might not guarantee that the factor group
really is fitting free. Test/resolve this.

This fixes gap-system#3139
hulpke added a commit to hulpke/gap that referenced this issue Jan 8, 2019
If the group has been obtained as subgroup from a fitting free computation,
the data will be inherited and might not guarantee that the factor group
really is fitting free. Test/resolve this.

This fixes gap-system#3139
@fingolfin fingolfin added the kind: bug Issues describing general bugs, and PRs fixing them label Mar 21, 2019
hulpke added a commit to hulpke/gap that referenced this issue Mar 27, 2019
If the group has been obtained as subgroup from a fitting free computation,
the data will be inherited and might not guarantee that the factor group
really is fitting free. Test/resolve this.

This fixes gap-system#3139
hulpke added a commit to hulpke/gap that referenced this issue Mar 27, 2019
If the group has been obtained as subgroup from a fitting free computation,
the data will be inherited and might not guarantee that the factor group
really is fitting free. Test/resolve this.

This fixes gap-system#3139
ssiccha pushed a commit to ssiccha/gap that referenced this issue Mar 27, 2019
If the group has been obtained as subgroup from a fitting free computation,
the data will be inherited and might not guarantee that the factor group
really is fitting free. Test/resolve this.

This fixes gap-system#3139
fingolfin pushed a commit that referenced this issue Jun 13, 2019
If the group has been obtained as subgroup from a fitting free computation,
the data will be inherited and might not guarantee that the factor group
really is fitting free. Test/resolve this.

This fixes #3139
@olexandr-konovalov olexandr-konovalov added this to the GAP 4.10.2 milestone Jun 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: bug: unexpected error Issues describing bugs in which computation unexpectedly encounters an error, and PRs fixing them kind: bug Issues describing general bugs, and PRs fixing them topic: library
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants