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

Changing the knot theory PD-code convention #35665

Merged
merged 2 commits into from
Jun 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 6 additions & 20 deletions src/sage/knots/knotinfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,23 +31,18 @@
lines of the examples, are unnecessary.

Be aware that there are a couple of conventions used differently on KnotInfo as
in Sage, especially concerning the selection of the symmetry version of the link.
in Sage.

In this context you should note that the PD notation is recorded counter
clockwise in KnotInfo (see note in :meth:`KnotInfoBase.link`). In our transition
to Sage objects this is translated (by default) in order to avoid confusion about
exchanged mirror versions.
For different conventions regarding normalization of the polynomial invariants see
the according documentation of :meth:`KnotInfoBase.homfly_polynomial`,
:meth:`KnotInfoBase.jones_polynomial` and :meth:`KnotInfoBase.alexander_polynomial`.

Also, note that the braid notation is used according to Sage, even thought in
the source where it is taken from, the braid generators are assumed to have a
negative crossing which would be opposite to the convention in Sage (see definition
3 of
:arxiv:`Gittings, T., "Minimum Braids: A Complete Invariant of Knots and Links" <math/0401051>`).

For different conventions regarding normalization of the polynomial invariants see
the according documentation of :meth:`KnotInfoBase.homfly_polynomial`,
:meth:`KnotInfoBase.jones_polynomial` and :meth:`KnotInfoBase.alexander_polynomial`.

Furthermore, note that not all columns available in the database are visible on the web
pages (see also the related note under :meth:`KnotInfoBase.khovanov_polynomial`).
It is planned to remove non-visible columns from the database in the future (see
Expand Down Expand Up @@ -1824,14 +1819,6 @@ def link(self, use_item=db.columns().pd_notation, snappy=False):
coincides with the crossing number as a topological
invariant.

But attention: The convention on how the edges are
listed are opposite to each other

- KnotInfo: counter clockwise
- Sage: clockwise

Therefore, we take the mirror version of the ``pd_notation``!

Furthermore, note that the mirror version may depend
on the used KnotInfo-notation. For instance, regarding to
the knot ``5_1`` the Gauss- and the DT-notation refer to
Expand Down Expand Up @@ -1905,7 +1892,7 @@ def link(self, use_item=db.columns().pd_notation, snappy=False):

sage: K4_1 = KnotInfo.K4_1
sage: K4_1.link().pd_code()
[[4, 1, 5, 2], [8, 5, 1, 6], [6, 4, 7, 3], [2, 8, 3, 7]]
[[4, 2, 5, 1], [8, 6, 1, 5], [6, 3, 7, 4], [2, 7, 3, 8]]
sage: K4_1.pd_notation()
[[4, 2, 5, 1], [8, 6, 1, 5], [6, 3, 7, 4], [2, 7, 3, 8]]

Expand All @@ -1931,8 +1918,7 @@ def link(self, use_item=db.columns().pd_notation, snappy=False):
from sage.knots.link import Link

if use_item == self.items.pd_notation:
pd_code = [[a[0], a[3], a[2], a[1]] for a in self.pd_notation()] # take mirror version, see note above
return Link(pd_code)
return Link(self.pd_notation())
elif use_item == self.items.braid_notation:
return Link(self.braid())
elif use_item == self.items.name and snappy:
Expand Down
Loading