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

Bug in the default method for IsInverseSemigroup #377

Closed
wilfwilson opened this issue Sep 13, 2017 · 2 comments
Closed

Bug in the default method for IsInverseSemigroup #377

wilfwilson opened this issue Sep 13, 2017 · 2 comments
Assignees
Labels
bug Label for issues or PR which report or fix bugs

Comments

@wilfwilson
Copy link
Collaborator

gap> S := Semigroup([
>   Transformation([1, 1, 1, 2, 1, 5, 3]),
>   Transformation([1, 4, 4, 4, 6, 6, 6])],
> rec(acting := false));;
gap> IsInverseSemigroup(S);
true
gap> S := Semigroup(S, rec(acting := true));;
gap> IsInverseSemigroup(S);
false
gap> S := Semigroup(S, rec(acting := true));;
gap> IsSemigroupWithCommutingIdempotents(S);
false
gap> IsRegularSemigroup(S);
false

The offending line is 692 in gap/attributes/properties.gi:

return NrLClasses(S) = NrRClasses(S) and NrIdempotents(S) = NrRClasses(S)

This condition is certainly necessary for an inverse semigroup, but it is not sufficient, as the above example shows. This can be sorted by additionally checking IsRegularSemigroup(S) in this line.

@wilfwilson wilfwilson added the bug Label for issues or PR which report or fix bugs label Sep 13, 2017
@wilfwilson wilfwilson self-assigned this Sep 13, 2017
@james-d-mitchell
Copy link
Collaborator

Good catch, lots of bugs found today!

wilfwilson added a commit to wilfwilson/Semigroups that referenced this issue Sep 13, 2017
@james-d-mitchell
Copy link
Collaborator

Resolved by PR #378

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
Projects
None yet
Development

No branches or pull requests

2 participants