-
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
NrCongruenceClasses gives incorrect answer #461
Comments
I'm investigating this now. It seems to be a problem with how congruences over smallsemi semigroups are processed - I think singletons are being excluded from gap> S := SmallSemigroup(4, 126);;
gap> cong := SemigroupCongruence(S, [[S.1, S.2]]);;
gap> classes := EquivalenceClasses(cong);
[ <congruence class of s1> ]
gap> Elements(classes[1]);
[ s1, s2, s3 ]
gap> S.4 in classes[1];
false Probably this sort of semigroup somehow got left behind when we implemented new congruence stuff in Semigroups. I'll keep investigating and post here when I work out more. |
Yep, this is a case of the GAP code being used instead of our code, and the GAP code being incorrect. The congruences code for generating pairs in our package ( The code in GAP isn't totally stupid, but the method for One thing we could do is change the |
Let's go ahead with the hack solution @mtorpey, it'll work properly with both definitions (including and excluding singletons). |
I'll be doing this in the meeting this afternoon. |
Fix issue #461 (NrCongruenceClasses)
This is done, by PR #462. I've tested it and your original post gives 2 both times. I'm closing this. |
I get the following:
But if I do:
I believe that the latter is correct, and the former is incorrect, and so the bug might be in GAP and not Semigroups. Note that the two congruences defined here are the same, although they look different.
The text was updated successfully, but these errors were encountered: