-
-
Notifications
You must be signed in to change notification settings - Fork 554
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
Implement colorings of knots and links #21863
Comments
Dependencies: #21815 |
This comment has been minimized.
This comment has been minimized.
Branch: u/mmarco/knot-colorings |
Commit: |
Changed dependencies from #21815 to none |
Changed branch from u/mmarco/knot-colorings to public/ticket/21863 |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:7
Thanks for the revival. If all test pass, would you agree on a positive review? |
comment:8
Well, almost.
|
comment:9
Fine. I will try to work on it during the weekend. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:11
I have made the changes that I wanted to do. I will now launch my bot. If it comes back green, it will be ready for your approval. |
comment:12
Bot is green. I am ok with the code. If you too, please set to positive. |
Changed author from Miguel Marco to Miguel Marco, Frédéric Chapoton |
Reviewer: Miguel Marco, Frédéric Chapoton |
comment:13
Now that I look at it, I am not completely sure that the result of Maybe it is ok if we just calrify this in the documentation? Or should we write more complete code to check that there actually exist solutions over the integers mod n for non prime n? |
comment:14
I also have one doc nitpick: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:16
ok, done |
comment:17
I am happy with things as the added documentation does clarify what Sage does, but I want to wait to see if Miguel has any additional comments. |
Changed reviewer from Miguel Marco, Frédéric Chapoton to Miguel Marco, Frédéric Chapoton, Travis Scrimshaw |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:19
I added a check for next prime also in If you are ok with these last changes, positive review. |
comment:20
ok, good to go. |
Changed branch from public/ticket/21863 to |
sagemathgh-36333: Revision of the knot theory colorings method <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes sagemath#1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes sagemath#12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> The following issue has been reported by Chuck Livingston to me: ``` sage: K9_15 = Knots().from_table(9, 15) sage: K9_15.colorings(13) [] sage: K9_15.determinant() 39 ``` Since 13 divides the determinant of the knot 156 colorings are expected. While analyzing this issue, I found that the implementation (done in sagemath#21863) does not match the definition of [Fox `n`-colorings](https://en.wikipedia.org/wiki/Fox_n- coloring) given in the listed references on Wikipedia and in Chuck's book. The name coloring maybe misleading here: The number `n` does not refer to the number of (arbitrary) colors to be used. It can be interpreted as the size of a fixed color palette. Mathematically, the colors correspond to elements of the `n`-th dihedral group `D_n` whose rotations (multiplied with the generating transvection) form the color palette. A coloring corresponds to a group homomorphism from the fundamental group `F` of the knot to `D_n`. If one interprets the arcs of the knot as the generators of `F`, their colors correspond to their images in `D_n`. Here are some lines in the current code that do not meet this definition: 1. Changing `n` to the next prime number: ``` p = next_prime(n - 1) ``` 2. Restriction of `n` to the number of different colors used: ``` if len(colors) == p: ``` 3. Change color values: ``` colors = {b: a for a, b in enumerate(colors)} res.add(tuple(colors[c] for c in coloring)) ``` This PR fixes these issues. Furthermore, a new method `coloring_maps` is added to calculate the group homomorphisms explicitly. This can also be used to verify the results of the method `colorings`. Finally, the `plot` method is adapted to the changes. Note that the definition does not restrict `n` to be a prime number. However, if this is not the case, we cannot just take the next prime number to work more comfortably over a field. It is still necessary to work over the residue class ring modulo `n`. Although the method `right_kernel_matrix` works well in this context the method `right_kernel` does not work due to a failure in the `span` method of the `FreeModule` class. Since I didn't find an easy fix for this I worked around this issue. ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - sagemath#12345: short description why this is a dependency - sagemath#34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: sagemath#36333 Reported by: Sebastian Oehms Reviewer(s): miguelmarco, Sebastian Oehms
This ticket implements methods to check n-colorability of knots and links (1) and adapts the plot method to allow to plot the link with the corresponding coloring.
It deppends on the
.arcs()
method, implemented in #21815CC: @kcrisman @amitjamadagni @sagetrac-fugelde @tscrim @jdemeyer
Component: algebraic topology
Keywords: knot, link
Author: Miguel Marco, Frédéric Chapoton
Branch/Commit:
bc9412a
Reviewer: Miguel Marco, Frédéric Chapoton, Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/21863
The text was updated successfully, but these errors were encountered: