LinKNOT

by Slavik Jablan and Radmila Sazdanovic

Software

KNOT2000 Version 1.3.3 by  Mitsuyuki Ochiai, Nara Women’s University, Nara, Japan

Knot Theory by Dror Bar-Natan at all.,The University of Toronto Toronto, Canada

KhoHo by Alexander Shumakovitch, The George Washington University, Washington, DC, USA

plantri.exe written by B.McKay and G.Brinkmann and planarity.exe J. Boyer

Early contributions by others including K. Millet,  A.Bartholomew, etc.

Export data into Knot Plot.

Talk overview

LinKnot functionality

How to use it: with and without Wolfram Mathematica (online)

Conway notation and conversion functions

Familes of knots and links

Knot invariants-examples

Polynomials, Khovanov homology, colorability...

Unknotting number

Chirality and symmetries

Rational Knots

Knots and graphs

Polyhedral knots and links

What is LinKnot and what is it good for?

Software accompanying theoretical and experimental results in our book

Contains a data base of polyhedral knots and links

Powerful research tool for experimenting with large classes of knots and links

Educational tool: hands-on computation and illustrations to facilitate better understanding

More information can be found in:

Jablan, S., Sazdanovic, R., LinKnot- Knot Theory by Computer,  World Scientific  (2007), Series: On Knots and Everything.

Jablan, S., Sazdanovic, R., Unlinking number and unlinking gap, Journal of Knot Theory and
Its Ramifications 16 (10) (2007) 1331-1355, math/0503270.

Jablan, S., Sazdanovic, R., Braid Family Representatives, Journal of Knot Theory and Its
Ramifications 17 (7) (2008) 817-833, math.GT/0504479.

Jablan, S., Radovic, Lj., Sazdanovic, R., Pyramidal Knots and Links and their Invariants, MATCH Commun. Math. Comput. Chem., 65, 3 (2011) 541-580.

S. Jablan, Lj. Radovi c, R. Sazdanovi c, Knots and Links Derived from Prismatic Graphs, MATCH Commun. Math. Comput. Chem., (to appear)

Setup

WebMathematica: http://math.ict.edu.rs:8080/webMathematica/LinkSL/webmath1.htm

Online version of LinKnot realized in Wolfram’s  webMathematica is freely available online together with the web version of the book
“ LinKnot-Knot Theory by Computer” .

Download LinKnot package to C:\\ LinKnot\\LK from   http://www.mi.sanu.ac.rs/vismath/linknot/index.html

SetDirectory["C:\\LinKnot"];
<<LinKnots`

Download the additional data base of basic polyhedral knots

<<PolyBase17.m

Input- Drawing by mouse (Knot2000)

pdata = GetPdatabyTracking[]

ShowKnotbyOpengl[pdata]

The function fPDataFromDow calculates P-data from Dowker code in Knotscape format (without signs for an alternating prime KL, or from Dowker code with signs of changed crossings for a non-alternating prime KL) (example "2,2,-2").

DD={{2,2,2},{8,-10,2,12,6,4}};
pd=fPDataFromDow[DD]

Input- Conway notation

Conway notation

K="3 3";
pd=fCreatePData[K]

ShowKnotfromPdataNew[pd]

The function fFindConway for all KLs with at most 12 crossings gives Conway symbol of a KL given by its (unreduced) Conway symbol (type=1), P-data (type=2), Knotscape DT code (type=3), PD (planar diagrams, type=4), and Dowker code with signs (type=5).

Ul="2 -2 2";
fFindConway[Ul,1]

Ul={{2,4},{-12,-8,-2,11,-4,7}};
fFindConway[Ul,2]

Ul=PD[X[1,5,2,12],X[5,3,6,2],X[3,9,4,8],X[9,1,10,4],X[6,11,7,12],X[10,7,11,8]];
fFindConway[Ul,4]

Ul={{2,4},{12,8,2,-10,4,-6}};
fFindConway[Ul,5]

Conversion functions

The function fClassicToCon gives Conway symbol of a KL given in classical notation (according to D. Rolfsen).

K="9_22";
fClassicToCon[K]

The function fConNotation gives Conway symbol of a KL given in classical notation (according to D. Rolfsen) (e.g. "8_12" or "9_10^2") or Dowker-Thistlethwaite notation for knots up to 12 crossings and links up to 11 crossings (e.g., "K12n15" or "L11n6").

K="10_83";
fConNotation[K]

K="9_10^2";
fConNotation[K]

K="K12n15";
fConNotation[K]

K="L11n6";
fConNotation[K]

Families of knots and links in Conway notation

Computations: Number of components and colorings

The function fComponentNo calculates the number of components of a KL given by Conway symbol, Dowker code, or P-data.

K="2,2,-2";
fComponentNo[K]

DD={{2,2,2},{-8,10,-2,12,6,4}};
fComponentNo[DD]

The function fColTest calculates a coloring of KL given by its Conway symbol, Dowker code, or  P-data with a fixed number of colors.  The result is the list of generators, list of their labelling, and the list of generator colors.

K="2 2";
cn=10;
fColTest[K,cn]

Dow="{{2,2,2},{-8,10,-2,12,6,4}}";
cn=3;
fColTest[Dow,cn]

pd={{2,2,2},{8,-11,2,-12,-6,-3}};
cn=3;
fColTest[pd,cn]

The function fDiffProjectionsAltKL calculates Conway symbols and minimal Dowker codes of all non-isomorphic projections of a KL given by its Conway symbol.

K=fDiffProjectionsAltKL["2 1,2 2,3"]

Map[ShowKnotfromPdataNew[fCreatePData[First[#]]]&, K]

Polynomial invariants

You can obtain 4 kinds of polynomials for the given P-data by SkeinPolynomial[type, pdata] function. 
You can also give the plural P-data through a file to SkeinPolynomialFromFile[type, filename] function. 
(Notice)  This table shows the correspondence of 4 kinds of polynomial which can be obtained by this func with their type.
({{Polynomials, types}, {Jones Polynomial, 0}, {Two variable Jones Polynomial, 1}, {Alexander Polynomial by Conway relation, -1}, {Conway Polynomial, -2}})

Jones Polynomial

In case of Jones Polynomial for the given P-data, set

type = 0; 
pdata={{3},{-4,-6,-2}};
SkeinPolynomial[type,pdata]

Two variable Jones Polynomial

In case of two variable Jones Polynomial for the given P-data, set

type = 1; SkeinPolynomial[type,pdata]

Alexander Polynomial by Conway relation

In case of Alexander Polynomial by Conway relation for the given P-data, set

type = -1; SkeinPolynomial[type,pdata]

Conway Polynomial

In case of Conway Polynomial for the given P-data, set

type = -2; SkeinPolynomial[type,pdata]

Kauffman Polynomial of skein type for the given P-data

This func returns the Kauffman polynomial of the given P-data.

KauffmanPolynomial[0,pdata]

This func returns the Q-polynomial of the given P-data.

KauffmanPolynomial[1,pdata]

Jones Polynomial for the given B-word

This func returns Jones Polynomial for the given B-word  of up to 14-braid using Hecke representation in the range that limitation of memory allows.

JonesPolynomialbyBraid["abcddd"]

JonesPolynomialbyBraid[bword]

You can also give the plural B-words through the file to JonesPolynomialbyBraidFromFile[filename]. 
The file has to include a B-word per a line, and EOF (555) as in the last line. Check the sample B-word file "BraidForm.brd"

JonesPolynomialbyBraidFromFile["BraidForm.brd"]

Alexander Polynomial by Burau representation for the given B-word

This returns the Alexander polynomial by Burau representation for the B-word. B-word can be obtained by GetBraidRep or you can specify by yourself.

AlexanderPolynomialbyBurauRep["abcdddd"]

AlexanderPolynomialbyBurauRep[bword]

AlexanderPolynomialbyBurauRepFromFile["nonalternate12.brd"]

One variable reduced invariant of  two variable Jones (or HOMFLY) polynomial of 3-parallel version for a  given B-word

This returns one variable reduced invariant of  two variable Jones (or HOMFLY) polynomial of 3-parallel version for the given B-word. Note that the reduction method depends on Jun Murakami's one associated with Hecke algebras (Young diagram depth 4 reduction). This function needs memory so very much. In case of lacking the memory, it returns nothing. Note that you can not obtain the correct result in Mathematica 4.0 or the older version although this function acts correctly in Mathematica 4.2 or the newer version.

ThreeParallelPolynomialInvariant["abcd"]

KT="aCbCbbCA^4bb"; (* 4-braid *)
KT1="aCbCbbCA^4bbdD"; (* 5-braid *)
KT2="DaCbCbbCA^4bbd";(* 5-braid *)

CW="aCbCbbCaB^3";

ft=ThreeParallelPolynomialInvariant[KT]

ft1=ThreeParallelPolynomialInvariant[KT1]
ft2=ThreeParallelPolynomialInvariant[KT2]

Simplify[ft/ft1]

Simplify[ft1/ft2]

The following computation confirms Morton's one ("any finite invariants of degree n with n<11 can not recognize two different mutant knots").

ft=ThreeParallelPolynomialInvariant[KT]
fc=ThreeParallelPolynomialInvariant[CW]

Simplify[ft-fc]

The following computation gives another one in the case of 12 crossings by  Imafuji-Ochiai. Note that you will need
several minutes to calculate.

bword1 = "AbcDcbbabbCCDb";
bword2 = "ABcdBabbCCddbc";

pol1=ThreeParallelPolynomialInvariant[bword1]
pol2=ThreeParallelPolynomialInvariant[bword2]

Simplify[pol1-pol2]

bword1 = "AbcDcbbabbccDb";
bword2 = "ABcdBabbccddbc";

bword1 = "ABcDcBBabbCCDb";
bword2 = "AbcDcbbaBBCCDB";
bword3 = "ABcdBaBBCCddBc";

bword1 = "abCdbCaabbbCDC";
bword2 = "AbcdCAbbbCDccb";

The following example gives another one in the case of n  crossings with n<18.

bword1="DcccDABBAABdcDcaBBab";
bword2="DcccDaBBabdcDcABBAAB";

The function SLInvarint[] can compute 3-parallel 2-variables invariants of braids with up to 3,4,5 index. To use the function SLInvarint[], you must extend Macintosh virtual memory system to the maximal limit [900Mbyte].

SLInvarint[KT]//Timing

Khovanov homology by A. Shumakovich

The function fKhoHoHom computes Khovanov (even) homology and thickness of a KL given in Conway notation or by P-data. The second part of the output is the number of diagonals. This function uses the program KhoHo (http://www.geometrie.ch/KhoHo/) by A. Shumakovitch.

K="2 3,3,-2";
RedJones[K]

K="(2 2,2,-2,-2) (2,-2)";
RedJones[K]

K="2 3,3,-2";
he=fKhoHoHom[K][[1]]
fPolyNorm[he]

K="2 3,-2 -1,2";
he=fKhoHoHom[K][[1]]
fPolyNorm[he]

pd={{4,5},{9,14,17,12,5,8,4,-11,1}};
he=fKhoHoHom[pd]

The function fKhoHoOddHom computes Khovanov odd homology  of a KL given in Conway notation or by P-data. This function uses the program KhoHo (http://www.geometrie.ch/KhoHo/) by A. Shumakovitch.

K="3,3,-3";
ho=fKhoHoOddHom[K]

pd={{9},{11,15,13,-18,-16,3,1,5,-8}};
ho=fKhoHoOddHom[pd]

The function fQuasiAlt checks that a KL (diagram) given in Conway notation is quasi-alternating or not. If the result is 0, you are sure that KL is not quasi-alternating. If the result is {}, the diagram is not quasi-alternating. Otherwise, the output is 1.

K="3,3,-3";
fQuasiAlt[K]

K="2..-2 0..-2 0";
fQuasiAlt[K]

Unknotting number- Nakanishi-Blailer example

Unknotting number of the minimal diagram of (Subscript[10, 8]) is 3.                                                             Unknotting number of the knot (Subscript[10, 8]) is 2

Unknotting number- Nakanishi-Blailer example

Unknotting number of the minimal projection if we allow ambient isotopy after each crossing change is also 2.

Unknotting number

Definition
 Let D denote a diagram of a link L in R3
         a) The uM (L) is the minimum of u (D) over all minimal crossing number  diagrams D representing L.
         b) The unlinking number u (L) is the minimum of u (D) over all diagrams D representing L.

Definition
(Subscript[D, V])-link diagram obtained from D by switching crossing v.
a) The BJ-unlinking number (Subscript[u, BJ]) (D) of a diagram D is defined recursively :
                      1. (Subscript[u, BJ])(D) = 0 iff D represents an unlink
                      2. (Subscript[u, BJ])(D) = 1 + (Subscript[minD, V])(Subscript[u, BJ])((Subscript[D, V])) 
where the minimum is taken over all minimal diagram of a link represented by Dv for which the value is already defined.

b) The BJ - unlinking number (Subscript[u, BJ])(L)of a link L  (Subscript[u, BJ]) (L)=minD (Subscript[u, BJ]) (D) 
                       where the minimum is taken over all minimal diagrams D representing L.

K="2,2,-2";
UnKnotLink[K]

DD={{2,2,2},{-8,10,-2,12,6,4}};
UnKnotLink[DD]

pdata={{2,2,2},{8,-11,2,-12,-6,-3}};
UnKnotLink[K]

Unknotting number

Bernhard-Jablan Conjecture (1994-95)
For every link L we have that u(L) = (Subscript[u, BJ])(L).

Lemma
Let R[a,b] denote a 2-bridge link with the Conway symbol a b.
1.  If a, b are both odd then for a link R[a,b] = R[2m+1,2n+1] we have
                           (Subscript[u, BJ])(R[a,b]) = (Subscript[u, M])(R[a,b]) = u(R[a,b]) =(((a+b))/2) = m + n + 1.
2.  If a is odd and b is even then for a knot R[a,b] = R[2m+1,2n] we have
                    (Subscript[u, BJ])(R[2m+1,2n]) = (Subscript[u, M])(R[2m+1,2n]) = u(R[2m+1,2n+1]) = n.
3.  If a, b are both even then for a knot R[a,b] = R[2m,2n] we have
                    (Subscript[u, BJ])(R[2m,2n]) = (Subscript[u, M])(R[2m,2n]) = min(m, n).

Lemma
Let R[a, b, c] be a 2 - bridge link with the Conway symbol a b c

                 1. If R[a, b, c] = R[2 k, 2 l, 2 m] we have a 2 - component link with  
                           (Subscript[u, BJ]) (R[2 k, 2 l, 2 m]) = (Subscript[u, M]) (R[2 k, 2 l, 2 m]) = u (R[2 k, 2 l, 2 m]) = k + m
                 2. If R[a, b, c] = R[2 k + 1, 2 l + 1, 2 m + 1] then for (k, m ≥ 1) has  
                           (Subscript[u, BJ]) (R[2 k + 1, 2 l + 1, 2 m + 1]) = (Subscript[u, M]) (R[2 k + 1, 2 l + 1, 2 m + 1]) = l + min (m, k) + 1.
                 3. If R[a, b, c] = R[2 k + 1, 2 l, 2 m + 1] (k,m≥ 1) then
                          (Subscript[u, BJ]) (R[2 k, 2 l + 1, 2 m]) = (Subscript[u, M])(R[2 k, 2 l + 1, 2 m]) = u (R[2 k, 2 l + 1, 2 m]) = k + l + m + 1.

Knots and graphs

fGraphKL calculates and draws graph  of a KL given by Conway symbol, Dowker code, or P-data.  The result is the graph given by the list of unordered pairs.

K= "2,2,4";
gr=fGraphKL[K]
{ShowLabeledGraph[FromUnorderedPairs[gr]],DrawPlanarEmbGraph[gr]}

DD={{12},{12,18,24,-20,-16,-6,4,22,-8,2,-10,14}};
fGraphKL[DD]
ShowLabeledGraph[FromUnorderedPairs[gr]]

pdata={{12},{-12,-18,-24,20,16,6,-4,-23,8,-2,10,-15}};
fGraphKL[pdata]

The function fDualGraphKL gives the dual of a KL graph for a KL given by its Conway code, Dowker code, or P-data.

K="6*2";
gr1=fGraphKL[K]
gr=fDualGraphKL[K]
{DrawPlanarEmbGraph[gr1],ShowLabeledGraph[FromUnorderedPairs[gr]]}

dd={{2,2,2},{8,-6,10,-12,-2,4}};
gr=fDualGraphKL[dd]

pd={{2,2,2},{-8,6,-10,12,2,-4}};
gr=fDualGraphKL[pd]

Chirality and symmetry

The function AmphiProjAltKL tests the amphicheirality of a given projection of an alternating KL given by its Conway symbol, Dowker code, or P-data. The function gives 1 for an amphichiral, and 0 for a chiral projection.

K="(2,2) 2 2 (2,2)";
AmphiProjAltKL[K]

DD="{{8,2,2},{20,-10,-24,14,-4,18,8,-22,2,12,-6,-16}}";
AmphiProjAltKL[DD]

pdata={{8,2,2},{-20,10,24,-14,4,-18,-8,22,-2,-12,6,16}};
AmphiProjAltKL[pdata]

The function AmphiAltKL tests the amphicheirality of an alternating KL diagram given by its Conway symbol. If KL  is amphicheiral it gives its amphichiral diagram.

K="(2,2 1) 1 1 (2 1,2)";
AmphiAltKL[K]

The function AmphiAltKL tests the amphicheirality of an alternating KL given by its Conway symbol. If KL is amphicheiral the result is 1, and 0 otherwise.

K="(2,2 1) 1 1 (2 1,2)";
fAmphiAltKL[K]

The function AmphiQ tests the amphicheirality of KL given by its p-data. The result is 1 for achiral KL, and 0 otherwise.

pd={{12},{8,-10,-22,2,-6,-18,20,24,-12,16,-4,14}};
AmphiQ[pd]

The function LiangPoly calculates Liang polynomial of a KL projection given by its Conway symbol and distinguishes amphicheiral KL projections with a Liang polynomial satisfying the relationship L(t)=L(1/t).

LiangPoly["6*"]

The function PeriodProjAltKL calculates the period of a given projection of an alternating KL given by its Conway symbol, Dowker code, or P-data.

K="6*";
PeriodProjAltKL[K]

DD="{{2,2,2},{8,-6,10,-12,-2,4}}";
PeriodProjAltKL[DD]

pdata={{2,2,2},{-8,6,-10,12,2,-4}};
PeriodProjAltKL[pdata]

The function PeriodAltKL calculates the periods of a given alternating KL given by its Conway symbol.

K="9";
PeriodAltKL[K]

The function Symm calculates all automorphisms of an alternating KL given by its Conway symbol, Dowker code, or P-data. The first part of the result is the list of automorphisms given by permutations, and the other is the list of the corresponding cycles.

K="6*";
Symm[K]

DD={{2,2,2},{8,-6,10,-12,-2,4}};
Symm[DD]

pdata={{2,2,2},{-8,6,-10,12,2,-4}};
Symm[K]

The function MaxSymmProjAltKL finds maximum symmetrical projection of an alternating KL given by its Conway symbol . As the result it gives number of the automorphisms and maximum symmetric projection.

K="2 2 2";
KS=MaxSymmProjAltKL[K]

{ShowKnotfromPdataNew[fCreatePData[K]],ShowKnotfromPdataNew[fCreatePData[KS[[1]]]]}

Rational Knots and links

Rational KLs

The function RatReduce reduces Conway symbol of a rational KL.

K="5 1 -2 2 2";
RatReduce[K]

The function RationalKL calculates the number and Conway symbols of all rational KL-s  for a given number of crossings n.

n=6;
RR=RationalKL[n]

The number R of rational KLs with a given number of crossings n is determined by the following general formula:

n=12;
R=2^(n-4)+2^(IntegerPart[n/2]-2)

The number RK of rational knots with a given number of crossings n is determined by the following general formula:

n=3;
RK=Divide[2^(n-3)+2^(IntegerPart[n/2]-2^{Mod[n-1,2]})+(-1)^{n-1}Mod[IntegerPart[n/2],2],3][[1]]

The number RL of rational links with a given number of crossings n is determined by the following general formula:

n=4;
R=2^(n-4)+2^(IntegerPart[n/2]-2);
RK=Divide[2^(n-3)+2^(IntegerPart[n/2]-2^{Mod[n-1,2]})+(-1)^{n-1}Mod[IntegerPart[n/2],2],3];
RL=(R-RK)[[1]]

The function RationalAmphiK calculates the number and Conway symbols of all rational amphicheiral knots for a given number of crossings n.

n=8;
RationalAmphiK[n]

The function RationalAmphiL calculates the number and Conway symbols of all rational amphicheiral links for a given number of crossings n.

n=6;
RationalAmphiL[n]

The function RatGenSourKL calculates the number and Conway symbols of all rational generating KLs (for k=3) and rational source KLs (for k=2) with n crossings.

n=8;
k=2;
RatGenSourKL[n,k]

The function RatSourceKLNo calculates the number of rational source KL-s (for k=2) with n crossings according to the general recursion formula: b[0]=1, b[1]=1, b[2n-2]+b[2n-1]=b[2n], b[2n]+b[2n-1]-f[n-1]=b[2n+1], where  f  is the Fibonacci sequence given by recursion f[0]=1, f[1]=1, f[n-2]+f[n-1]=f[n].

n=8;
RatSourceKLNo[n]

The function RatLinkU1 calculates the number and Conway symbols of all rational links with the unlinking number 1 with n crossings.

n=11;
RatLinkU1[n]

The function RatLinkU0 calculates the number and Conway symbols of all rational unlinks (U=0)  with n crossings.

n=11;
RatLinkU0[n]

The function RatKnotGenU1 gives Conway symbols of all rational knots with the unknotting number 1 with n crossings.

n=10;
RatKnotGenU1[n]

The function RatKnotGenU0 gives Conway symbols of all rational links with the unlinking number 0 with n crossings.

n=15;
RatKnotGenU0[n]

The function MSigRat calculates the fraction and Murasugi signature of a rational KL given by its Conway symbol.

K="3 1 3";
MSigRat[K]

The function AllStatesRational calculates all states of a given rational KL given by its Conway symbol, i.e., all different variations of signs in a given projection of a rational KL. The first datum in the result is the unknotting (unlinking) number obtained from the fixed projection of a given rational KL,  followed by  the list of minimum numbers of crossing changes necessary to obtain the corresponding rational KL given by its Conway symbol, i.e., the list of the KL distances from a given rational KL projection.

K="5 1 4";
AllStatesRational[K]

K="5 1 4";
AllStPR[K,4]

The function UnR calculates estimated unknotting (unlinking)  number of a rational KL given by its Conway symbol.

K="2 2 2 2 2 2";
UnR[K]

The function fUnRFixProj calculates the minimum number of crossing changes necessary to unlink a given fixed KL projection.

K="5 1 4";
fUnRFixProj[K]

The function fGapRat finds rational KLs with an unlinking gap. The result is the unlinking gap, followed by the unlinking number of KL and the unlinking number of its fixed minimal projection.

K="5 1 4";
fGapRat[K]

The function  NMoveRat calculates  the minimum number of n-moves neccessary to unknot a minimal projection of a rational KL given by its Conway symbol for a given n.

n=3;
K="11 9 2";
NMoveRat[n,K]

Polyhedral knots and links

K="2 2";
pp=fGraphInc[K][[1]]
fPolyPlotDoubleEdges[pp]

K="125*";
pp=fGraphInc[K][[1]];
fPolyPlotDoubleEdges[pp]

Polytopes to Knots and Links

The function fPlantriMid uses as the input a convex polytope from the program plantri written by Brendan McKay, given by its number of vertices n and ordering number k. For n=4 the number of polytopes is 1, for n=5 is 2,  for n=6 is 7,  for n=7 is 34,  for n=8 is 257,  for n=9 is 2606,  and for n=10 is 32300.  The result is the graph and image of the input polytope, its planar embedding and KL obtained by mid-edge construction represented as 3D four-valent graph, with DT code and KL diagram.

n=5;
k=2;
fPlantriMid[n,k]

THANK YOU!