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

Large Base recognition fails although it shouldn't #190

Closed
ssiccha opened this issue Oct 23, 2020 · 3 comments · Fixed by #191
Closed

Large Base recognition fails although it shouldn't #190

ssiccha opened this issue Oct 23, 2020 · 3 comments · Fixed by #191
Assignees
Labels
bug Any bug should have this label, even if it also has a more generic label

Comments

@ssiccha
Copy link
Collaborator

ssiccha commented Oct 23, 2020

The large base group, or jellyfish group, recognition is not able to cope with a group which has fixed points.

Consider the following two examples. The first one works, the second is a conjugate group with fixed points which doesn't:

gap> S23OnSets := Action(SymmetricGroup(23), Combinations([1 .. 23], 2), OnSets);;
gap> jellyGroup2 := WreathProductProductAction(S23OnSets, Group((1,2)));;
gap> n := NrMovedPoints(jellyGroup2);
64009
gap> ri2 := RecogniseGroup(jellyGroup2);
F pts= 64009  0       
<recoginfo LargeBasePrimitive
 F:<recoginfo Imprimitive
    F:<recoginfo Pcgs Size=2>
    K:<recoginfo BalTreeForBlocks
       F:<recoginfo Giant AlmostSimple Size=25852016738884976640000>
       K:<recoginfo Giant AlmostSimple Size=25852016738884976640000>>>
 K:<trivial kernel>
gap> # Now take a conjugate
gap> random := Random(SymmetricGroup(5 * QuoInt(n,2)));;
gap> jellyGroup2Conj := jellyGroup2 ^ random;;
gap> ri2Conj := RecogniseGroup(jellyGroup2Conj);
#I  Have 32065 points.
#I  Have 60697 points.
#I  Have 57149 points in new orbit.
#I  Have 64002 points in new orbit.
#I  Have 58357 points in new orbit.
#I  Have 64003 points in new orbit.

<recoginfo StabilizerChainPerm Size=1336653538935178044929642368586691379200000000>
gap> ri2Conj!.fhmethsel.failedMethods.LargeBasePrimitive;
1
@ssiccha ssiccha added the bug Any bug should have this label, even if it also has a more generic label label Oct 23, 2020
@ssiccha ssiccha self-assigned this Oct 23, 2020
@ssiccha
Copy link
Collaborator Author

ssiccha commented Oct 23, 2020

@fingolfin What do you think of changing ThrowAwayFixedPoints such that it always performs the "throwing away" for primitive groups?

@fingolfin
Copy link
Member

@ssiccha It is unclear to me what the connection between your comment is and the issue you report above. I can dig into the source to figure it out, but if you want to save time, perhaps just elaborate as to what the one has to do with the other? Alternatively, submit a PR for discussion.

ssiccha added a commit to ssiccha/recog that referenced this issue Oct 23, 2020
Also lets ThrowAwayFixedPoints create a homomorphism if the input group
is primitive and has fixed points.

Fixes gap-packages#190.
@ssiccha
Copy link
Collaborator Author

ssiccha commented Oct 23, 2020

Ah. The reason that LargeBasePrimitive can't handle fixed points is simply that it assumes that the given group G acts on the set [1 .. NrMovedPoints(G)]. If G has fixed points that is not the case. If we were to call ThrowAwayFixedPoints, then the resulting group does act on [1 .. NrMovedPoints(G)].

Currently ThrowAwayFixedPoints creates a homomorphism for an input group H if 3 * NrMovedPoints(H) >= LargestMovedPoint(H). If we would let it create a homomorphism for every primitive group that has fixed points that would make the problem of LargeBasePrimitive go away.

I've made a PR. See #191.

ssiccha added a commit to ssiccha/recog that referenced this issue Dec 12, 2020
Now ThrowAwayFixedPoints also prunes fixed points if the input group
knows that it is primitive and has fixed points. If the input group does
not know whether it is primitive yet but has fixed points, then
ThrowAwayFixedPoints now returns NotEnoughInformation.

Adds a comment in LargeBasePrimitive which explains how this fixes gap-packages#190.
That is this commit lets recog handle primitive groups which can be
recognized by LargeBasePrimitive, except for the fact that they have
fixed points.

Fixes gap-packages#190.
ssiccha added a commit to ssiccha/recog that referenced this issue Dec 17, 2020
Now ThrowAwayFixedPoints also prunes fixed points if the input group
knows that it is primitive and has fixed points. If the input group does
not know whether it is primitive yet but has fixed points, then
ThrowAwayFixedPoints now returns NotEnoughInformation.

Adds a comment in LargeBasePrimitive which explains how this fixes gap-packages#190.
That is this commit lets recog handle primitive groups which can be
recognized by LargeBasePrimitive, except for the fact that they have
fixed points.

Also changes the tests in PermLargeBasePrimitive.tst to make them run a
bit faster.

Fixes gap-packages#190.
ssiccha added a commit to ssiccha/recog that referenced this issue Mar 31, 2021
Now ThrowAwayFixedPoints also prunes fixed points if the input group
knows that it is primitive and has fixed points. If the input group does
not know whether it is primitive yet but has fixed points, then
ThrowAwayFixedPoints now returns NotEnoughInformation.

Adds a comment in LargeBasePrimitive which explains how this fixes gap-packages#190.
That is this commit lets recog handle primitive groups which can be
recognized by LargeBasePrimitive, except for the fact that they have
fixed points.

Also changes the tests in PermLargeBasePrimitive.tst to make them run a
bit faster.

Fixes gap-packages#190.
ssiccha added a commit to ssiccha/recog that referenced this issue Mar 31, 2021
Now ThrowAwayFixedPoints also prunes fixed points if the input group
knows that it is primitive and has fixed points. If the input group does
not know whether it is primitive yet but has fixed points, then
ThrowAwayFixedPoints now returns NotEnoughInformation.

Adds a comment in LargeBasePrimitive which explains how this fixes gap-packages#190.
That is this commit lets recog handle primitive groups which can be
recognized by LargeBasePrimitive, except for the fact that they have
fixed points.

Also changes the tests in PermLargeBasePrimitive.tst to make them run a
bit faster.

Fixes gap-packages#190.
ssiccha added a commit to ssiccha/recog that referenced this issue Mar 31, 2021
Now ThrowAwayFixedPoints also prunes fixed points if the input group
knows that it is primitive and has fixed points. If the input group does
not know whether it is primitive yet but has fixed points, then
ThrowAwayFixedPoints now returns NotEnoughInformation.

Adds a comment in LargeBasePrimitive which explains how this fixes gap-packages#190.
That is this commit lets recog handle primitive groups which can be
recognized by LargeBasePrimitive, except for the fact that they have
fixed points.

Also changes the tests in PermLargeBasePrimitive.tst to make them run a
bit faster.

Fixes gap-packages#190.

Co-authored-by: Max Horn <[email protected]>
ssiccha added a commit to ssiccha/recog that referenced this issue Apr 7, 2021
Now ThrowAwayFixedPoints also prunes fixed points if the input group
knows that it is primitive and has fixed points. If the input group does
not know whether it is primitive yet but has fixed points, then
ThrowAwayFixedPoints now returns NotEnoughInformation.

Adds a comment in LargeBasePrimitive which explains how this fixes gap-packages#190.
That is this commit lets recog handle primitive groups which can be
recognized by LargeBasePrimitive, except for the fact that they have
fixed points.

Also changes the tests in PermLargeBasePrimitive.tst to make them run a
bit faster.

Fixes gap-packages#190.

Co-authored-by: Max Horn <[email protected]>
ssiccha added a commit that referenced this issue Apr 20, 2021
Now ThrowAwayFixedPoints also prunes fixed points if the input group
knows that it is primitive and has fixed points. If the input group does
not know whether it is primitive yet but has fixed points, then
ThrowAwayFixedPoints now returns NotEnoughInformation.

Adds a comment in LargeBasePrimitive which explains how this fixes #190.
That is this commit lets recog handle primitive groups which can be
recognized by LargeBasePrimitive, except for the fact that they have
fixed points.

Also changes the tests in PermLargeBasePrimitive.tst to make them run a
bit faster.

Fixes #190.

Co-authored-by: Max Horn <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Any bug should have this label, even if it also has a more generic label
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants