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

Very slow elements list for finitely presented semigroups isomorphic to finite semigroups #425

Closed
james-d-mitchell opened this issue Dec 15, 2017 · 3 comments
Labels
minor A label for issues or PRs that are not major. performance A label for issues or PRs that relate to performance.

Comments

@james-d-mitchell
Copy link
Collaborator

james-d-mitchell commented Dec 15, 2017

In the following example, the last line runs for a very long time, but it shouldn't, because the isomorphic partial permutation semigroup already knows its list of elements.

gap> S;
<inverse partial perm semigroup of size 103601, rank 8 with 8 generators>
gap> IsomorphismFpSemigroup(S);
MappingByFunction( <inverse partial perm semigroup of size 103601, rank 8
 with 8 generators>, <fp semigroup on the generators
[ s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16
 ]>, function( x ) ... end, function( x ) ... end )
gap> T := Range(last);
<fp semigroup on the generators [ s1, s2, s3, s4, s5, s6, s7, s8, s9, s10,
  s11, s12, s13, s14, s15, s16 ]>
gap> Elements(T); 
@james-d-mitchell james-d-mitchell added performance A label for issues or PRs that relate to performance. minor A label for issues or PRs that are not major. labels Dec 18, 2017
@wilfwilson
Copy link
Collaborator

How would you resolve this?

@james-d-mitchell
Copy link
Collaborator Author

I’ve started to resolve this in Libsemigroups v1.0.0. Basically we need to improve the functionality for quotient semigroups in general, and resolving this issue will be part of that. @wilfwilson

@james-d-mitchell
Copy link
Collaborator Author

This specific issue is resolved in v4.0.0, via NiceMonomorphisms. It probably requires a bit more thorough of a solution, but I think I can close this issue now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
minor A label for issues or PRs that are not major. performance A label for issues or PRs that relate to performance.
Projects
None yet
Development

No branches or pull requests

2 participants