This repository contains knotkit with my modifications
Go to file
Wojciech Politarczyk c3d01fd161 Merge branch 'periodicity' 2017-02-25 18:48:59 +01:00
algebra The bug with polynomial division was fixed. 2017-01-13 11:54:07 +01:00
knot_parser hi 2014-04-06 23:09:45 -04:00
lib Verification of perioidcity congruences is finished 2016-11-29 16:21:48 +01:00
mtlinks First commit in git. This is a cleaned up version of r114 from the 2011-12-09 15:50:25 -05:00
mutant_knot_groups First commit in git. This is a cleaned up version of r114 from the 2011-12-09 15:50:25 -05:00
rd_parser hi 2014-04-06 23:09:45 -04:00
.gitignore Verification of perioidcity congruences is finished 2016-11-29 16:21:48 +01:00
Makefile Added another variant of periodicity test. 2017-02-04 20:09:15 +01:00
README Added descriptions of periodicity test to usage and README 2016-11-29 17:45:16 +01:00
alternating First commit in git. This is a cleaned up version of r114 from the 2011-12-09 15:50:25 -05:00
cobordism.cpp First cut at moving the code over to C++11. 2012-07-27 15:37:47 -04:00
cobordism.h First cut at moving the code over to C++11. 2012-07-27 15:37:47 -04:00
cube.cpp First commit in git. This is a cleaned up version of r114 from the 2011-12-09 15:50:25 -05:00
cube.h Ready to test forgetful spectral sequence on links through 11 2012-08-30 18:30:39 -04:00
cube_impl.h Renamed driver kk. Added support for various invariants (gss + kh, 2013-03-25 16:39:15 -04:00
dt_code.cpp First commit in git. This is a cleaned up version of r114 from the 2011-12-09 15:50:25 -05:00
dt_code.h First commit in git. This is a cleaned up version of r114 from the 2011-12-09 15:50:25 -05:00
kk.cpp Merge branch 'periodicity' 2017-02-25 18:48:59 +01:00
knot_diagram.cpp hi 2014-04-06 23:09:45 -04:00
knot_diagram.h First shot at periodicity congruences 2016-11-24 15:28:31 +01:00
knot_tables.cpp Computation of the Jones polynomial 2016-11-19 20:51:38 +01:00
knotkit.h First shot at periodicity congruences 2016-11-24 15:28:31 +01:00
main.cpp Renamed driver kk. Added support for various invariants (gss + kh, 2013-03-25 16:39:15 -04:00
mpi_aux.cpp Added knot_desc to knotkit.h/knot_tables.cpp. Resurrected MPI 2012-07-28 13:20:37 -04:00
mpi_aux.h Changes to get mpimain running. 2012-07-28 13:27:46 -04:00
mpimain.cpp Adjust b by total linking parity information. Dump bound 2013-01-19 14:03:02 -05:00
nonalternating First commit in git. This is a cleaned up version of r114 from the 2011-12-09 15:50:25 -05:00
parallel.cmd Changes in main from newcomp. 2012-09-17 20:36:18 -04:00
periodicity.cpp Corrected some bugs 2017-02-25 18:47:05 +01:00
periodicity.h Corrected some bugs 2017-02-25 18:47:05 +01:00
planar_diagram.cpp Fixeds to module reader (not carry unnecessary refcounts?). main 2012-07-28 13:27:47 -04:00
planar_diagram.h First shot at periodicity congruences 2016-11-24 15:28:31 +01:00
serial.cmd Merge remote-tracking branch 'origin/master' 2012-10-06 12:41:29 -04:00
simplify_chain_complex.h First shot at periodicity congruences 2016-11-24 15:28:31 +01:00
smoothing.cpp First commit in git. This is a cleaned up version of r114 from the 2011-12-09 15:50:25 -05:00
smoothing.h Corrected some bugs 2017-02-25 18:47:05 +01:00
spanning_tree_complex.cpp First commit in git. This is a cleaned up version of r114 from the 2011-12-09 15:50:25 -05:00
spanning_tree_complex.h Added support to compute Sq1 and Sq2 on Kh. 2012-07-28 13:19:15 -04:00
sseq.cpp Renamed driver kk. Added support for various invariants (gss + kh, 2013-03-25 16:39:15 -04:00
sseq.h Renamed driver kk. Added support for various invariants (gss + kh, 2013-03-25 16:39:15 -04:00
steenrod_square.cpp Added support to compute Sq1 and Sq2 on Kh. 2012-07-28 13:19:15 -04:00
steenrod_square.h Added support to compute Sq1 and Sq2 on Kh. 2012-07-28 13:19:15 -04:00
testlib.cpp First commit in git. This is a cleaned up version of r114 from the 2011-12-09 15:50:25 -05:00
todo.txt Changes to dump Kh sq1, sq2 in manageable, compessed format. 2012-07-30 15:32:13 -04:00

README

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

knotkit is a C++ software package written by Cotton Seed
(cseed@math.princeton.edu) for computing some knot and manifold
invariants appearing in low-dimensional topology.  Other contributors
include Josh Batson.

This is a slightly modified version of knotkit. It includes a periodicity
testing functionality based on the Przytycki's criterion in terms of
Jones polynomial and a periodicity criterion from the upcoming paper by
Maciej Borodzik, Anna Kosiorek and Wojciech Politarczyk.

TABLE OF CONTENTS

1. INTRO
2. BUILDING
3. USAGE
4. UPCOMING CHANGES
5. FOR DEVELOPERS

1. INTRO

In addition to accepting knot presentations in a variety of formats
(see usage below), knotkit contains the following tables of knot data:

* The Rolfsen knot tables through 10 crossings, extracted from
  Bar-Natan's Mathematica package, KnotTheory`,
* The Hoste-Weeks-Thistlewaite knot tables through 16 crossings taken
  from knotscape, and
* and the Morwen Thistlewaite hyperbolic link tables taken from
  SnapPy.

This version of knotkit has support to compute the following
invariants:

* Khovanov homology
See:
M. Khovanov, A Categorification of the Jones Polynomial, Duke
  Math. J. 101 (2000), 359--426, arXiv:math/9908171.
D. Bar-Natan, On Khovanov's Categorification of the Jones Polynomial,
  Algebraic and Geometric Topology 2 (2002), 337--370.

* Szabo's geometric spectral sequence 
Computing gss was the original motivation for writing knotkit.  For
more information on gss, see:
Z. Szabo, A geometric spectral sequence in Khovanov homology, 
  arXiv:1010.4252, and
C. Seed, Computations of Szabo's Geometric Spectral Sequence in Khovanov
  Homology, arXiv:1110.0735.

* The Batson-Seed link splitting spectral sequence
See:
J. Batson, C. Seed, A Link Splitting Spectral Sequence in Khovanov
  Homology.

* The Lipshitz-Sarkar Steenrod square on Khovanov homology
See:
R. Lipshitz, S. Sarkar, A Khovanov Homotopy Type, arXiv:1112.3932.
R. Lipshitz, S. Sarkar, A Steenrod Square on Khovanov Homology,
  arXiv:1204.5776.

* Bar-Natan's analogue of Lee homology
See:
E. S. Lee, An endomorphism of the Khovanov invariant, Adv. Math. 197
  (2005), 2, 554586, arXiv:math/0210213.
D. Bar-Natan, Khovanovs homology for tangles and cobordisms,
  Geom. Topol. 9 (2005), 14431499, arXiv:math/0410495.
R. Lipshitz, S. Sarkar, A refinement of Rasmussen's s-invariant,
  arXiv:1206.3532.

* The s-invariant coming from Bar-Natan's analogue of Lee homology
In addition to the above references, see:
J. Rasmussen, Khovanov homology and the slice genus, Invent.
  Math. 182 2 (2010), 419--447, arXiv:math/0402131.
R. Lipshitz, S. Sarkar, A refinement of Rasmussen's s-invariant,
  arXiv:1206.3532.

2. BUILDING

To build knotkit on OS X, you will need the latest version of XCode
(available for free in the App Store) and the GNU multiple precision
arithmetic library (GMP).  You can get GMP here:

http://gmplib.org/

knotkit also builds under Linux.  In addition to GMP, you will need a
C++ compiler which supports C++11.  I use LLVM clang, but knotkit
should build with a recent version of GCC.

knotkit doesn't have a sophisticated build system.  To build knotkit,
just run:

make

from the knotkit source directory.  This should build the executable
"kk".  For instructions on invoking kk, see usage below.  If you run
into a problem, please contact me: Cotton Seed
(cotton@math.princeton.edu).

3. USAGE

The usage message for kk is given below.  This can also be obtained by
running "kk -h".

A note about output.  The output for commands kh, gss, ls and lee is a
.tex file which renders the bigraded homology group or spectral
sequence.  The output for the command sq2 matches the output for the
program written by Lipshitz-Sarkar and is suitable for loading into
Sage.  The command s outputs a single line of text.

usage: %s <invariant> [options...] <link>
/home/wojtek/ownCloud/src/knotkit/kk
  compute <invariant> for knot or link <link>
<invariant> can be one of:
  kh: Khovanov homology
  gss: Szabo's geometric spectral sequence
  lsss: Batson-Seed link splitting spectral sequence
    component weights are 0, 1, ..., m
  sq2: Lipshitz-Sarkar Steenrod square on Z/2 Kh
    output suitable for Sage
  leess: spectral sequence coming from Bar-Natan analogue of Lee's
    deformation of Khovanov's complex (whew!)
  s: Rasmussen's s-invariant coming from lee
  khp: computes Khovanov polynomial of a link
  jones: computes Jones polynomial of a link
  periodicity: uses periodicity criterion of Przytycki and
    the criterion in terms of Khovanov polynomial
output:
    kh, gss, lsss, leess: .tex file
    sq2: text in Sage format
    s, khp, jones, periodicity: text
options:
  -r         : compute reduced theory
  -h         : print this message
  -o <file>  : write output to <file>
                (stdout is the default)
  -f <field> : ground field (if applicable)
                (Z2 is the default)
  -v         : verbose: report progress as the computation proceeds
  -p         : period when verifying periodicity, can be equal to
                 5,7,11,13,17 or 19
  -t         : type of periodicity test:
                 - Przytycki - Przytycki's periodicity test
                 - Kh - periodicity criterion in terms of Khovanov homology
                 - all - uses both criteria and tests for all prime
                         periods between 5 and 19
<field> can be one of:
  Z2, Z3, Q
<link> can be one of:
  - the unknot, e.g. U or unknot
  - a torus knot, e.g. T(2,3)
  - a Rolfsen table knot, e.g. 10_124
  - a Hoste-Thistlethwaite-Weeks knot, e.g. 11a12 or 12n214
  - a Morwen Thistlethwaite link, e.g. L8n9 or L13n8862
  - a planar diagram, e.g.
      PD[X[1, 4, 2, 5], X[3, 6, 4, 1], X[5, 2, 6, 3]] or
      PD[[1, 4, 2, 5], [3, 6, 4, 1], [5, 2, 6, 3]]
  - a Dowker-Thistlethwaite code, e.g.
      DTCode[6,8,2,4],
      DT[dadbcda] or
      DT[{6, -8}, {-10, 12, -14, 2, -4}]
  - a braid, e.g. BR[2, {-1, -1, -1}]
  - disjoint union (juxtaposition), e.g. T(2,3) U

4. UPCOMING CHANGES

The following changes are currently planned:

* support for Z/p, p arbitrary prime and F(x) field of rational functions
* Roberts' totally twisted Khovanov homology
* the E^3 page of the twisted spectral sequence Kh(L) => \widehat{HF}(\Sigma_L)
* spectral sequences of PIDs: lsss over F[x], gss over Z
* maps induced by cobordisms

5. FOR DEVELOPERS

If you are interested in contributing to knotkit or using it for a new
application, please contact me: Cotton Seed
(cotton@math.princeton.edu).  I am interested in developing knotkit to
be an open platform for performing computations arising in
low-dimensional topology.