-
Notifications
You must be signed in to change notification settings - Fork 14
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
LOOPS breaks FR #28
Comments
@laurentbartholdi are you aware of this report? Anywhere, I believe this is an instance of this deeper problem in GAP: gap-system/gap#2513. In particular, note that the problem depends on the order in which the packages are loaded. If I load fr before loops, the issue goes away. It also goes away with the changes in PR gap-system/gap#2773 which will be in GAP 4.11 (but not in GAP 4.10) In the meantime, the workaround suggested by @nagygp should do it, although of course one may argue that it's a bit unfair that FR has to make changes to accommodate a longstanding "bug" (misfeature? design problem? ...) in GAP. But GAP 4.10 has already been tagged, and the changes in the mentioned PR are rather big, so we don't want to rush them into GAP 4.10 now. But GAP 4.11 is at least 6 months away, so having a pragmatic solution now (which could be removed once GAP 4.11 is out) would be better. Note that we could add such a high-ranked Some more options:
Long-term, GAP could also not switch the assertion level in |
Sure, I'll add it. |
I just put the method in the new head. If everything works fine, I'll release a new version. |
@laurentbartholdi Thank you very much! @nagygp @alex-konovalov can you confirm that Laurent's change resolves the issue? |
@laurentbartholdi @nagygp @fingolfin I've checked that I can reproduce the problem with the latest FR release, and that with the fresh clone of the FR repository everything works as below:
So @laurentbartholdi please make a release indeed! |
Done, fr is 2.4.6 now.
|
Thanks - testing now:
|
If I understand correctly, this issue is solved. I close it. |
Hi! I want to present an issue, my explanation and my suggested solution. I may be wrong at many places, so I apologize in advance for my mistakes. :-)
Issue:
Loading LOOPS before FR breaks the command FullSCGroup, provided the assertion level is at least 2.
Notice that seemingly at GAP tests, the assertion level is set to 2.
The correct behaviour without loading LOOPS:
The wrong behaviour with loading LOOPS:
Explanation:
\in
is based onEpimorphismPermGroup
in a rather complicated way.EpimorphismPermGroup
callsGroupGeneralMappingByImagesNC
.GroupGeneralMappingByImagesNC
checks if the generators are in respective the groups.\in
method calls.\in
uses the "default method" for groups by checking if elm is in the list of generators.\in
calls the "(FR) for an FR element and an FR semigroup" method which callsEpimorphismPermGroup
again and chaos breaks out.Proposed solution:
Add a "default \in method" for FR element and an FR semigroup with high priority.
As in the group case (see $GAPROOT/lib/grp.gi:4434), this simply checks if elm is among the generators; if not, then
TryNextMethod()
.In this way, the tests for FR pass with no errors.
The solution is not "ad hoc", since the problem is caused by
GroupGeneralMappingByImagesNC
, where only generators are being checked.The text was updated successfully, but these errors were encountered: