Knots (Links) in Sage
The presentation is aimed at introducing various constructs used in Knot Theory module in Sage. The main aim is to introduce the following :
Input a Knot/Link Structure
Differentiate between various Knot/Link structures using various invariants.
Definitions :
To begin with we define Knot
and Link
Knot:
A knot
is defined as embedding of the circle in the 3-dimensional sphere , considered up to ambient isotopy. They represent the physical idea of a knotted rope, but with the particularity that the rope is closed. That is, the ends of the rope are joined.
Link:
A link
is an embedding of one or more copies of in , considered up to ambient isotopy. That is, a link represents the idea of one or more tied ropes. Every knot is a link, but not every link is a knot.
Various representations in Sage
There are different ways to represent a Link. The main representations which Sage understands are the following :
Braid representation of the Link
Oriented Gauss Code
Planar Diagram Code or PD Code
These are internally recognized by Sage, all the user needs to do is input in one of the above representations.
-----
Let us start by looking at Braid Group (Braidword representation) of the Link.
Braid group to Braidword representation
Consider a 1 x 1 x 1
cube. On the planes z = 0
and z = 1
, at x = 1/2
consider n
points varying y
. Join the n
points on both the planes, with the rules being :
There is a bijective map between the points, implying every point has to be mapped to unique point on the other plane.
The points are joined by non intersecting arcs lying completely inside the cube.
For example, see sage-worksheet
With reference to the above example, there are 3 points on the both the planes and we join them using arcs.
# `BraidGroup` is being called with the number of strings
B = BraidGroup(3)
B1 = B([1,2])
To define a Braid Group, consider the set , of all braid diagrams as above. Define the composition of the diagrams as stacking them together vertically.
Closure is defined as the stacking of diagrams and this diagram is again in the set
Consider three different diagrams, say labelled by , stacking with and then with is same as stacking with and stacking the resultant with .
The identity from the set is the following, label the points on
z = 0
plane by andz = 1
plane by connect to corresponding . The diagram obtained is the identity of the group.For every given braid diagram , we can always find a diagram in such that to obtain the identity as mentioned above.
Therefore, the set forms a group.
Generators of group
Now we look at the generators of group which help in understanding the braidword construction. As above consider the points on the plane z = 0
and z = 1
, let us label the points on the plane z = 0
as and on z = 1
as , where . The generators of group , are the following braid diagrams :
Join to and to and goes to , . If we stare at the generators there are two ways in which we can join, i.e., either the arc joining to to is above to , say or the other way round . It is very easy to generate all the diagrams from these generators. Projecting these 3d curves into a 2d planes, gives an insight into overcrossing and undercrossing, for example sage-worksheet. For example, the underlying braidword is for the above diagram indicating that we join to with an over curve and to again with an over curve.
The way a can be constructed from the braidword is by joining the points in the planes z = 0
and z = 1
by a curve which lies outside the cube. Therefore, we can construct a Link by closure of the braidword, and so one of the inputs for the Link construct which Sage understands is a braidword.
Oriented Gauss Code, Planar Diagram Code
Though braidword representation looks as a simple technique to study Links, given a Link it is not straight forward to see it as a braid closure and deduce the braidword representation of the Link. We look at two different representations that is the oriented gauss code and planar diagram code.
Oriented Gauss Code :
In order to deduce the oriented gauss code, we will number the crossings along with a sign, that is if it is a undercrossing we would add a " - " in the front of the crossing as we move along the Link until we return to the starting point, as well assign a +1
or -1
to each of the crossing. Crossings are labelled as +1
and -1
using the following notation : For example consider the trefoil which looks as follows : Using the above rules, the sign at each of the crossing would be -1. The oriented gauss code would be [[[1, -2, 3, -1, 2, -3]],[-1, -1, -1]]
Sage also allows intercoversion between different input formats. We can intercovert between braidword, oriented gauss code, planar diagram code. As we have still not defined the planar diagram code let us convert this input to braidword.
Lets reverse engineer, let us see if we end up with the same results, starting with the braid and obtaining the oriented gauss code and therefore the same diagram
Planar Diagram Code
Finally we introduce the least complicated notation, that is the planar diagram code (pd code). This is constructed in the following way, start with a point on the Link identify this part of the link with a number and keep moving along the Link, once we encounter a crossing just increment the number to the part following the crossing. Once all the parts on the Link are covered, each crossing has 4 numbers associated to it. Each crossing is identified by starting with the undercrossing component and moving in the clockwise direction. For example consider the above trefoil The planar diagram code looks as [[4, 2, 5, 1], [2, 6, 3, 5], [6, 4, 1, 3]]
We also look at Seifert circles
and Regions
as these are used in various alogrithms like interconversion between planar diagram code to braidword construction, in construction of jones polynomial.
Therefore for the trefoil, as expected we get the same braidword representation [-1, -1, -1] whether we start with oriented gauss code or planar diagram code. This leads us to an interesting question, given two Links how can we say whether they are the same or not, it is not always possible to stare at the diagram and conclude whether the links are identical. So we look at other invariants which help in distinguishing various Links/Knots. Before we do that let us examine the above notations for a more general Link.
Some more examples
Consider the following link diagrams : ,
Link Invariants
We return to the question of how we distinguish various Links given the Link configurations (Planar Diagram Code, Oriented Gauss Code, Braidword representation). Link module allows the computation of the following invariants :
Alexander polynomial
Jones polynomial
Khovanov Homology
HOMFLY polynomial (external library interfacing)
Consider the following versions of trefoils, basically the difference is changing the orientation of the crossings from -1 at every crossing to +1.
Consider the following knots K1
and K2
given by the following figure: with reference to the following : http://math.stackexchange.com/questions/1303743/is-there-a-one-to-one-correspondence-between-jones-polynomials-and-knots/1303960
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-65-5d58394afbe7> in <module>()
----> 1 K1.homfly_polynomial()
/projects/sage/sage-dev/local/lib/python2.7/site-packages/sage/knots/link.pyc in homfly_polynomial(self, var1, var2, normalization)
2330 for i, cr in enumerate(ogc[1]):
2331 s += ' {} {}'.format(i, cr)
-> 2332 from sage.libs.homfly import homfly_polynomial_dict
2333 dic = homfly_polynomial_dict(s)
2334 if normalization == 'lm':
ImportError: No module named homfly