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

IsomorphismSemigroup to a McAlister triple semigroup can give incorrect results #581

Closed
wilfwilson opened this issue Mar 4, 2019 · 1 comment
Assignees
Labels
bug Label for issues or PR which report or fix bugs major A label for issues or PRs that require a major amount of work or big changes. resolved-pending-release A label for issues that are resolved pending a release.

Comments

@wilfwilson
Copy link
Collaborator

I discovered this in by running SemigroupsTestExtreme();. The bug is present in both master and stable-3.1.

gap> S := InverseMonoid([PartialPerm([2, 1])], PartialPerm([1, 2, 3]));
<inverse partial perm monoid of rank 3 with 2 generators>
gap> IsEUnitaryInverseSemigroup(S);
true
gap> iso := IsomorphismSemigroup(IsMcAlisterTripleSemigroup, S);
MappingByFunction( <inverse partial perm monoid of size 3, rank 3 with 2
 generators>, <McAlister triple semigroup over Group([ (1,
2) ])>, function( s ) ... end )
gap> IsInjective(iso);
false
gap> T := Range(iso);
<McAlister triple semigroup over Group([ (1,2) ])>
gap> Size(T);
2

Note that the S is an example of a(n inverse) monoid of partial perms where the One of the identity acts on a larger number of points than the One of all the other elements. This is a possible root cause of the bug, especially as the resulting semigroup lacks only a single element (probably corresponding to the identity). But who knows.

@wilfwilson wilfwilson added bug Label for issues or PR which report or fix bugs major A label for issues or PRs that require a major amount of work or big changes. labels Mar 4, 2019
@ChristopherRussell
Copy link
Collaborator

ChristopherRussell commented Mar 4, 2019

Thanks @wilfwilson. Things seem to work after enumerating the elements.

gap> S := InverseMonoid([PartialPerm([2, 1])], PartialPerm([1, 2, 3]));
<inverse partial perm monoid of rank 3 with 2 generators>
gap> iso := IsomorphismSemigroup(IsMcAlisterTripleSemigroup, S);
MappingByFunction( <inverse partial perm monoid of size 3, rank 3 with 2 generators>
 , <McAlister triple semigroup over Group([ (1,2) ])>, function( s ) ... end )
gap> T := Range(iso);
<McAlister triple semigroup over Group([ (1,2) ])>
gap> Size(T);
2
gap> IsInjective(iso);
false
gap> Elements(T);
[ (1, ()), (1, (1,2)), (2, ()) ]
gap> iso := IsomorphismSemigroup(IsMcAlisterTripleSemigroup, S);
MappingByFunction( <inverse partial perm monoid of size 3, rank 3 with 2 generators>
 , <McAlister triple semigroup over Group([ (1,2) ])>, function( s ) ... end )
gap> T := Range(iso);
<McAlister triple semigroup over Group([ (1,2) ])>
gap> Elements(T);
[ (1, ()), (1, (1,2)), (2, ()) ]
gap> Size(T);
3
gap> IsInjective(iso);
true

I'll look into it.

@james-d-mitchell james-d-mitchell added this to the 3.1.2 milestone Mar 6, 2019
ChristopherRussell pushed a commit to ChristopherRussell/Semigroups that referenced this issue Mar 13, 2019
ChristopherRussell pushed a commit to ChristopherRussell/Semigroups that referenced this issue Mar 13, 2019
@james-d-mitchell james-d-mitchell added resolved-pending-release A label for issues that are resolved pending a release. close-on-minor-release labels Mar 14, 2019
james-d-mitchell pushed a commit to james-d-mitchell/Semigroups that referenced this issue Mar 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Label for issues or PR which report or fix bugs major A label for issues or PRs that require a major amount of work or big changes. resolved-pending-release A label for issues that are resolved pending a release.
Projects
None yet
Development

No branches or pull requests

3 participants