-
Notifications
You must be signed in to change notification settings - Fork 36
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
Semigroups created before package is loaded cause errors, incorrect results #538
Comments
Thanks for the report @ManuelAFDelgado! This is a bug, but I am not sure how to resolve it. The problem is that if you create a semigroup Certainly, in Example 1, a more meaningful error could be given, or better still this method should just not be applied since your semigroup was created before |
Postscript: I think there might be a warning in the manual that things might not work properly in precisely the situation you describe @ManuelAFDelgado, but I can't immediately find it (the manual is rather long these days!). So, it might be argued that this is a feature not a bug, but on the other hand, it seems that it would be best to remove this particular feature! |
I faced the kind of problems reported while I was trying to keep the sgpviz package working... I was warned by @alex-konovalov that the test file showed some differences depending on whether the semigroups package was loaded. I first thought that these differences were completely harmless (that they only depended on the way the factorizations were performed). But after other tests I realized that this was not the case and I thought that I should report the problems found, which I did. |
Because we have specialised methods in This is definitely a bug, the methods in For you, though this should be easy to resolve, you could make Just out of interest, I believe that most of the functionality of |
I resisted for now to put Semigroups as a required package for SgpViz in part because the (few) SgpViz users possibly do not feel comfortable with the need of compiling the package. Anyway, my resistance is mainly due to the fact that it would not solve my problem: the semigroups could be created before loading SgpViz... |
I understand your rationale, |
Just a small remark from the sidelines: from my perspective as a GAP developer, I'd be hesitant to call this a bug in the Semigroups packages. I might call it a design issue with GAP, though even there I'd be careful and would like to think and debate more about this: Arguably, we want packages to use existing "infrastructure" from GAP, and e.g. provide their "own" semigroups in the GAP So, while of course I agree it would be nice if the Semigroups package were to "do something" about this (by e.g. somehow detecting if a semigroup was created before, and then taking "appropriate steps", whatever that means: refuse to accept that input; update the input with any missing filters and attributes; etc.), I personally would also accept if you just said "this is a fundamental problem with the way things work in GAP; if you want to avoid that, and are working with semigroups regularly, then just add semigroups to your list of autoloaded GAP packages, and you'll never experience any such problems). Anyway, that's really only meant to be my two cents, of course @james-d-mitchell and the rest of the Semigroup team will know best how they can and want to designate and handle this. |
The Semigroups package grew very much and much faster than I have been able to keep up with. In particular, I did not realize that of the Graham normal form. Sorry for that. |
This issue is related to the examples I gave in a comment to Issue #537 started by Max (@fingolfin)
Hopefully these new examples help to find the problem (the main issue is that the result in the second example is wrong).
(The command "gapOF -b" below is used to start GAP 4.9.3 without banner; the package "semigroups" is compiled.)
The examples below were obtained from three different GAP sessions (as I just did copy/paste, the examples should be easily reproduced).
#Example1
This example gives an unexpected error...
#Example2
This example is similar to the previous one; the difference stays in the insertion of "DegreeOfTransformationSemigroup(poi3)". (Possibly other functions produce the same effect.)
Here there is a huge problem: a wrong result is silently displayed!! (Note that poi3 is an inverse semigroup (see the third example), thus the eggbox picture can not be the one presented)
#Example3
This example is similar to the previous one; the difference stays in the order the "semigroups" package is loaded.
The text was updated successfully, but these errors were encountered: