gap-packages / recog

The GAP package recog to collect methods for constructive recognition
https://gap-packages.github.io/recog/
GNU General Public License v3.0
6 stars 14 forks source link

NonTransitive doesn't handle fixed points correctly #89

Open ChrisJefferson opened 5 years ago

ChrisJefferson commented 5 years ago
gap> g := DirectProduct(List([1..3], x -> SymmetricGroup(5)));
Group([ (1,2,3,4,5), (1,2), (6,7,8,9,10), (6,7), (11,12,13,14,15), (11,12) ])
gap> ri := RecogniseGroup(g);
<recoginfo NonTransitive
 F:<recoginfo VeryFewPoints Size=120>
 K:<recoginfo VeryFewPoints Size=14400>>
gap> SLPforElement(ri, (11,16));
Error, List Elements: <list>[16] must have an assigned value in
  OnTuples( o!.orbit, gens[i] 
 ) at /home/caj/files/reps/gap/gap/pkg/orb-4.8.2/gap/orbits.gi:1691 called from 
ActionOnOrbit( data.orb, [ el ] 
 ) at /home/caj/files/reps/gap/gap/pkg/orb-4.8.2/gap/orbits.gi:1748 called from
h!.fun( h!.data, o ) at /home/caj/files/reps/gap/gap/pkg/orb-4.8.2/gap/homwdata.gi:36 called from
ImageElm( Homom( ri ), g 
 ) at /home/caj/files/reps/gap/gap/pkg/recog/gap/base/recognition.gi:706 called from
slpforelement( ri )( ri, x 
 ) at /home/caj/files/reps/gap/gap/pkg/recog/gap/base/recognition.gi:693 called from
<function "SLPforElement">( <arguments> )
 called from read-eval loop at *stdin*:60
type 'quit;' to quit to outer loop
fingolfin commented 5 years ago

Note that normally, it should not have to deal with those anyway, as ThrowAwayFixedPoints should have been run before. So the question is, why didn't that work? You could use the InfoRecog and InfoMethSel info classes to debug this.

ChrisJefferson commented 5 years ago

Sorry, the problem is the group fixes the point 16, which the permutation moves.

I think we need to add something like an attribute HomomPreCheck, which is an optional function which will be run before we try applying Homom, that can reject things not in the Source of the homomorphism.