# Heegaard Floer Knot Homology

In 2007, Jean-Marie Droz of the University of Zurich (working along with Anna Beliakova) wrote a Python program to compute the (hat-version) Heegaard-Floer Knot Homology $\widehat{\operatorname{HFK}}(K)$ of a knot $K$ (see arXiv:0803.2379). His program is integrated into `KnotTheory``, though to run it, you must have Python as well as the Python library Psyco installed on your system.

(For In see Setup)

 In:= ?HFKHat HFKHat[K][t,m] returns the Poincare polynomial of the Heegaard-Floer Knot Homology (hat version) of the knot K, in the Alexander variable t and the Maslov variable m.
 In:= HFKHat::about The Heegaard-Floer Knot Homology program was written by Jean-Marie Droz in 2007 at the University of Zurich, based on methods of Anna Beliakova's arXiv:07050669.

The Heegaard-Floer Knot Homology is a categorification of the Alexander polynomial. Let us test that for the knot 8_19:

 `In:=` `hfk = HFKHat[K = Knot[8, 19]][t, m]` `Out=` ``` 2 -3 m 5 2 6 3 m + t + -- + m t + m t 2 t```
 `In:=` `{hfk /. m -> -1, Alexander[K][t]}` `Out=` ``` -3 -2 2 3 -3 -2 2 3 {1 + t - t - t + t , 1 + t - t - t + t }```

The knot 8_19 is the first knot in the Rolfsen Knot Table whose Heegaard-Floer Knot Homology is not "diagonal". Let us test that. The homology $\widehat{\operatorname{HFK}}(K)$ is "on diagonal", iff its Poincare polynomial, evaluated at $m=1/t$, is a monomial:

 `In:=` `Select[AllKnots[{3, 8}], (Head[HFKHat[#][t, 1/t]] == Plus) &]` `Out=` `{Knot[8, 19]}`
 `In:=` `hfk /. m -> 1/t` `Out=` ```4 -2 -- + t 3 t```

The (mirrored) Conway knot K11n34 and the (mirrored) Kinoshita-Terasaka knot K11n42 are a mutant pair, and are notoriously difficult to tell apart. Let us check that an array of standard knot polynomials fails to separate them, yet $\widehat{\operatorname{HFK}}$ succeeds:

 `In:=` ```K1 = Knot["K11n34"]; K2 = Knot["K11n42"]; test[invt_] := (invt[K1] =!= invt[K2]); test /@ { Alexander, MultivariableAlexander, Jones, HOMFLYPT, Kauffman, Kh, HFKHat }``` `Out=` `{False, False, False, False, False, False, True}`

Indeed,

 `In:=` `{HFKHat[K1][t, m], HFKHat[K2][t, m]}` `Out=` ``` 2 1 1 3 3 3 3 {3 + - + ----- + ----- + ----- + ----- + ---- + --- + 3 t + 3 m t + m 4 3 3 3 3 2 2 2 2 m t m t m t m t m t m t 2 2 2 2 3 3 3 3 m t + 3 m t + m t + m t , 6 1 1 4 4 2 2 2 7 + - + ----- + ----- + ---- + --- + 4 t + 4 m t + m t + m t } m 3 2 2 2 2 m t m t m t m t```

On July 6, 2006, User:AnonMoos asked User:Drorbn if he could identify the knot in the left hand side picture below. At the time it was impossible using the tools available with `KnotTheory`` - using any of many invariants, the answer can be found to be either the mirror of K11n34 or the mirror of K11n42, but `KnotTheory`` couldn't tell which one it is (though of course, it is possible to do it "by hand"). The 2007 addition $\widehat{\operatorname{HFK}}$ does the job, though. Indeed, we first extract the mystery knot's DT (Dowker-Thistlethwaite) Code using the picture on the right hand side below, then compute $\widehat{\operatorname{HFK}}$, and then search for it within the $\widehat{\operatorname{HFK}}$'s of all knots with up to 11 crossings:

 `In:=` `K3 = DTCode[6, 8, 14, 12, 4, -18, 2, -20, -22, -10, -16];`
 `In:=` `H = HFKHat[Mirror[K3]][t, m]` `Out=` ``` 2 1 1 3 3 3 3 3 + - + ----- + ----- + ----- + ----- + ---- + --- + 3 t + 3 m t + m 4 3 3 3 3 2 2 2 2 m t m t m t m t m t m t 2 2 2 2 3 3 3 3 m t + 3 m t + m t + m t```
 `In:=` `Select[AllKnots[], HFKHat[#][t, m] == H &]` `Out=` `{Knot[11, NonAlternating, 34]}`

And so the mystery knot is the Conway knot, the mirror of K11n34.