MAT1750: Khovanov Complex

Charlene Chu - December 12, 2017

Please note that the core of this source code is from Dror’s lecture (http://www.math.toronto.edu/drorbn/classes/17-1750-ShamelessMathematica/NB-1204.html). The function KhC[K] returns the the vertices and edges for the Khovanov complex of a knot K.

KhC[K_]:=Module[{VerticesAndEdges,Vertices,Edges},SetAttributes[{B,P}, Orderless]; t=0; ϵ /: (ϵ^(p_))/;p>1:=0;
VerticesAndEdges=(List@@(Expand[
Times@@(K /. X[i_,j_,k_,l_] :> (++t; P[i,j]P[k,l]+B[t] P[i,l]P[j,k]+ϵ S[t]X[i,j,k,l]))
] //. B[i__]B[j__]:> B[i,j] /.P[a_,b_] :> P[a,b][Min[a,b]]//. P[a_,b_][m1_]P[b_,c_][m2_] :> P[a,c][Min[m1,m2]] /. {P[i_, i_][m_] :> c[m], ((P[_,_][m_])^2):> c[m]})) /.{
(B[b__] S[s_] X[i_,j_,k_,l_] P[i_,l_][m1_] P[k_,j_][m2_]:> {B[b] c[Min[m1,m2]],B[b,s] c[m1] c[m2]}), (B[b__] S[s_] X[i_,j_,k_,l_] P[l_,k_][m1_] P[j_,i_][m2_] :> {B[b] c[m2] c[m1], B[b,s] c[Min[m1,m2]]}),
(S[s_] X[i_,j_,k_,l_] P[l_,k_][m1_] P[j_,i_][m2_] :> {c[m2] c[m1], B[s] c[Min[m1,m2]]})
} /. {ϵ fr_,ϵ to_}:> ϵ(fr->to);
Vertices = Select[VerticesAndEdges,!MemberQ[#,ϵ]&];
Edges=Select[VerticesAndEdges,MemberQ[#,ϵ]& ]/.ϵ:>1;
{Vertices,Edges}]

Examples

We will look at the following knots: the Trefoil Knot (Subscript[3, 1]), the Cinquefoil Knot (Subscript[5, 1]), and the knot (Subscript[10, 132]).

K31=PD[X[3,1,4,6],X[1,5,2,4], X[5,3,6,2]]; 
K51=PD[X[1,6,2,7],X[3,8,4,9],X[5,10,6,1],X[7,2,8,3],X[9,4,10,5]];
K10132 = PD[X[4,2,5,1],X[8,4,9,3],X[5,12,6,13],X[15,18,16,19],X[9,16,10,17],X[17,10,18,11],X[13,20,14,1],X[19,14,20,15],X[11,6,12,7],X[2,8,3,7]];

Here, we can see the KhC[K] returns a list of two list, the first being a list of vertices and the second being a list of edges.

KhCTrefoil=KhC[K31]

We will use the Khovanov complex of the Cinqfoil Knot and the knot (Subscript[10, 132]), so let us declare them here.

KhCCinqfoil =KhC[K51];
KhCK10132=KhC[K10132];

We can use this information to graph the Khovanov complex.

Graph[KhCTrefoil[[2]],VertexLabels->"Name",ImageSize->400]

Here is the graph of the Khovanov complex of the Cinqfoil Knot and the Knot (Subscript[10, 132]).

Graph[KhCCinqfoil[[2]],ImageSize->600]

Graph[KhCK10132[[2]],ImageSize->600]

We can see that the graph of the Khovanov complex of the Trefoil Knot, the Cinqfoil Knot, and the knot (Subscript[10, 132]) is the 3-, 5-, and 10-dimensional cube, respectively.