-
-
Notifications
You must be signed in to change notification settings - Fork 730
Fix the wrong vertices number of Cayley graphs of free groups #41274
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
base: develop
Are you sure you want to change the base?
Conversation
Removed example code from the documentation.
|
Documentation preview for this PR (built with commit 07001a1; changes) is ready! 🎉 |
…ise NotImplementedError for infinite groups
…ate documentation
…rify error handling for infinite groups
Added error handling for as_permutation_group method to support subclasses without limit parameter.
Added a method to return the Cayley graph of Artin groups, requiring elements to be specified due to their infinite nature.
Added a method to return the Cayley graph for braid groups, requiring elements to be specified due to their infinite nature.
|
@orlitzky Can you review this part for graph theory |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR fixes incorrect vertex counts in Cayley graphs for finitely presented groups by addressing the word problem - the issue that equal group elements can have different word representations. The solution introduces a __hash__ method based on Tietze words and a specialized cayley_graph method that uses permutation group representations to correctly identify equal elements.
Key changes:
- Adds
__hash__method toFinitelyPresentedGroupElementbased on Tietze representation (with documented limitations) - Implements specialized
cayley_graphmethod forFinitelyPresentedGroupthat converts to permutation groups for proper element identification - Adds
cayley_graphmethods toBraidGroupandArtinGroupthat delegate to the semigroup implementation
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 11 comments.
| File | Description |
|---|---|
| src/sage/groups/finitely_presented.py | Adds __hash__ method to group elements and specialized cayley_graph method that uses permutation group conversion to correctly identify equal elements with different word representations |
| src/sage/groups/braid.py | Adds cayley_graph method that delegates to semigroup implementation, appropriate for infinite braid groups |
| src/sage/groups/artin.py | Adds cayley_graph method that delegates to semigroup implementation, appropriate for infinite Artin groups |
Comments suppressed due to low confidence (3)
src/sage/groups/artin.py:689
- This method requires 1 positional argument, whereas overridden FinitelyPresentedGroup.as_permutation_group may be called with 2. This call correctly calls the base method, but does not match the signature of the overriding method.
def as_permutation_group(self):
src/sage/groups/braid.py:2743
- This method requires 1 positional argument, whereas overridden FinitelyPresentedGroup.as_permutation_group may be called with 2. This call correctly calls the base method, but does not match the signature of the overriding method.
def as_permutation_group(self):
src/sage/groups/finitely_presented.py:188
- This class implements hash, but does not implement eq.
class FinitelyPresentedGroupElement(FreeGroupElement):
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Whoever told you I know graph theory was lying :) I've lost track of what was going on in #41173 but the discussion does not seem 100% dead yet. |
…d improve generator handling
…) for better illustration
… examples in simplicial_set_examples.py with SymmetricGroup(2)
…amples in simplicial_set_examples.py for clarity
…y and efficiency; update PresentationComplex to use free group generators
…dependency on group presentation
…neral infinite finitely presented groups do not support hashing
…y hashing the perm_elem object.
Removed example of eliminating generator 'b' using relation 'a=b'.
fix #40549 Alternative #41173
Now, we only implement hash for finite groups and finite groups. They are well-defined behavior. for general infinite f.p. group, we can not decide word problem. I think setting they are unhashable is better
📝 Checklist
⌛ Dependencies