Every knot or link in 3-dimensional space can be represented by a closed braid. Such a representation determines a Seifert surface for the link; that is, a surface which has the knot or link as its boundary. These surfaces can be visualised using the program SeifertView. This website contains an algorithm to calculate the Seifert matrix of linking numbers for the Seifert surface determined by any closed braid entered by the user. The program will also show the block decomposition of the matrix as a sum of Seifert matrices of the connected braid components, and will find the genus of the Seifert surface.
Enter the braid data:
_{(Data should be a space-separated list of integers,
e.g. “1 2 -1 -1 2 1 1 2”.
Show me
Explain)}
Seifert matrix M =
You can download variations of this program in C++ and Matlab.
Version | What does it do that isn't on this website? |
---|---|
pretzel-v2.cpp, matrix-v2.h (C++) | Computes the Alexander polynomial of the link. Gives a genus decomposition for disconnected braids. Incorporates the pretzel notation of SeifertView and also the alphabetical notation of a braid. |
pretzel-v2.exe (Win32 build of the C++ code.) | A Windows version to run on the command line. |
Seifert.tar.gz (Matlab)^{Improved!} | Computes the Alexander polynomial, signature and Arf
invariant of the link. Allows alphabetical notation for
braids. (Once unpacked, run Seifert.m .) |
This application is written in ECMAScript (“JavaScript”) and uses the W3C DOM. It may not work correctly on web browsers that do not support those standards.
Warning: you do not seem to have standard-conforming JavaScript or DOM support. This application will probably not work properly.
A knot is an embedding of a circle in S^{3}; a link is an embedding of a disjoint union of circles. For every link L there exists a Seifert surface, which is a compact orientable surface in S^{3} whose boundary is L. Such a surface is not necessarily unique, and we will not insist that it must be connected.
Given a Seifert surface F of a link and given a basis {f_{i}} for the first homology group of F, the (i,j)^{th} entry in the Seifert matrix M is the linking number of f_{i} and f_{j}^{+}. Here f_{j}^{+} denotes the positive push-off of f_{j}, which runs parallel to f_{j} and lies just above F.
Since M depends non-trivially on both the surface F and the choice of a basis for H_{1}(F), it is not an invariant of the link L. However, the polynomial Δ(t) = det(M − tM^{T}) is an invariant of L (up to powers of t) called its Alexander polynomial. For a link with disconnected Seifert surface the Alexander polynomial is defined to be zero.
The genus of a connnected orientable closed surface Σ is half the rank of H_{1}(Σ), or in layman's terms it is the number of ‘holes’ in the surface. The genus of a connected orientable surface with boundary is defined to be the genus of the closed surface obtained by capping off all boundaries with disks. The genus of a disconnected surface is the sum of the genera of the connected components.
The genus g of a Seifert surface F can be computed with the formula 2g + (n − q) = size(M) = rk(H_{1}(F)); or, for a braid, with the alternative formula 2q − 2g − n = χ = #(strands) − braid-length. Here q denotes the number of connected components of F, n denotes the number of components of the link, M denotes the Seifert matrix, and χ is, as always, the Euler characteristic. The braid length is the number of crossings in the braid.
A braid consists of m strings travelling from one vertical bar to another, with the condition that the strings must move from left to right and not loop back on themselves. The corresponding closed braid is the resulting link created by adding m untangled strings joining the second bar back to the first.
We encode the tangling of the strings of the braid by a string
of non-zero integers; “+n
” means that
the n^{th} strand crosses over the
(n+1)^{th} strand;
“-n
” means that it crosses
under the (n+1)^{th} strand.
An alternative notation sometimes used in knot tables is the
alphabetical notation: the numbers 1 to 26 correspond to the
letters ‘A’ to ‘Z’, and the negatives -1
to -26 correspond to the letters ‘a’ to
‘z’.
Example
It is a theorem of Alexander's that every link can be represented by a closed braid.
Every braid has a canonical Seifert surface associated with it, which is obtained from applying Seifert's algorithm to the braid diagram.
The program SeifertView by Jack van Wijk is designed to visualise the Seifert surfaces constructed by Seifert's algorithm applied to braid diagrams. These are the same surfaces from which we construct our Seifert matrices in this website, and it is intended that the two programs should be used side-by-side.
SeifertView uses the alphabetical notation for braids and it differs from our notation in that the braids are encoded inversely to ours, i.e. capital and small letters are interchanged in their program. For example, a right handed trefoil for us is “AAA”, whereas for them it is “aaa”. They also make use of ‘pretzel’ notation which allows an optional odd integer to follow each letter to indicate multiple twisting of the strands. (The notation is explained here.) The pretzel encoding is often a more concise description of knots, and can result in a Seifert surface of smaller genus. For us this notation is currently only supported by the C++ version.
The algorithm for computing Seifert matrices was designed and implemented in Matlab by Julia Collins. The original C++ and Javascript versions of the program were implemented by Thomas Koeppe who also designed this website. v2 of the original C++ code is by Lukas Lewark, fixing a problem with fixed-precision entries in the Seifert matrices. The new code uses arbitrary precision rational numbers provided by the gmp-library. Any queries should be sent to A.Ranicki@ed.ac.uk.
This is version 12-11-2016. ©2016 Thomas Köppe and Julia Collins and Lukas Lewark