Use LINUX emulation on MacOSX.
The software "KNOT" is a tool for knot theory to draw diagrams of knots and links(in S^3)
and knotted surfaces(in S^4) and calculate many invariants.
If you have any question or problem,
please do not hesitate to contact me(kodama@math.kobeu.ac.jp).
Your reporting will be good contributions to improve the computer program.
Thank you,
 Down load: ftp://ftp.math.kobeu.ac.jp/pub/knot/.
 Executable binary: Knot.bin.(DATE).tar.gz
 Source codes: Knot.src.(DATE).tar.gz
GNU/sather1.3.2 compiler is also needed.
 OS/Environments:
 Original version is verified on LINUX(e.g. RedHat,Debian,SuSe,Vine,Plamo) with X Window System.

Port to Windows, MacOS X and Solaris are available by Toshio SUMI.
Please report to him if you think partings be helpful.
 License: Free and Open under the term of GNU General Public License(GPL).
New
 Meridian generators are displaied on diagram when [Invariant][Group] selected.(200704)
 Bug fix: A function for Artin normal form fails to make normal form.(20060215)
 Keyboard shortcut(20051201, experimental)
See Doc/knot.Xdefs for key binding.
 logfile option(20051129)
 log option (20051128)
 Bug fix: Some times it fails to compute Alexander ideal.(20051128)
 [Effects on Diagram][Braid] accepts new option switch.
It changes closed braid or (open) braid.(20050516)
 cov and sl2 are splited to sub options. (20041113)
 "pstricks" graphical commands is used for LaTeX picture by default. (20041113)
In old version, "tpic" special commands is used.
Suggestion
Almost results of Invariants options are LaTeX format.
If you want putting it to other programs(e.g. Mathematica),
make appropriate filter of gawk/perl/ruby/python to convert styles.
Example:
script:
cat input_file  gawk '{gsub("{","(");gsub("}",")");print $0}'
input_file:
z^{2}*(v^{6}+4*v^{4}5*v^{2}+2)
+(v^{6}+8*v^{4}13*v^{2}+6)
+z^{2}*(v^{6}+4*v^{4}14*v^{2}+5)
+z^{4}*(7*v^{2}+1)
+z^{6}*(v^{2})
Result:
z^(2)*(v^(6)+4*v^(4)5*v^(2)+2)
+(v^(6)+8*v^(4)13*v^(2)+6)
+z^(2)*(v^(6)+4*v^(4)14*v^(2)+5)
+z^(4)*(7*v^(2)+1)
+z^(6)*(v^(2))
 knot group G(K) of Wirtinger presentation for knot,link in S^3, knotted surface in S^4
 knot group for theta3 curve
 Signature
 Goerits matrix and knot value
 Alexander polynomial(1variable) for knot,link in S^3
 test cyclic period using Alexander polynomial for knots
 Alexander/Elementary ideal(1variable) for knot,link in S^3, knotted surface in S^4.
 Alexander matrix from free differential
 Alexander matrix (simplified).
 Elementary ideals.
 Novikov(extended Alexander) polynomial:
For ith ideal, Novikov (extended Alexander) polynomial A(i) is the generator of the ideal
as a positive infinite power series.
Note that A(i)/A(i+1) called Novikov index.
 Alexander polynomial(multi variable) for link in S^3.
 Alexander/Elementary ideal(multi variable) for knot,link in S^3, knotted surface in S^4.
 Alexander matrix from free differential
 Alexander matrix (simplified).
 Elementary ideals.
 3variable Alexander polynomial for theta3 curve.
 Conway polynomial.
 Jones V polynomial.
 Jones V polynomial(parallel version).
 HOMFLY P polynomial.
 Change forms "P(v,z)", "P(l,m)","P(x,y,z)"
 HOMFLY P polynomial(zlowest part).
 Change forms "P(v,z)", "P(l,m)","P(x,y,z)"
 Kauffman F polynomial.
 Q polynomial.
 representation G(K) to S(n) (permutation of nset)
for knot,link in S^3, knotted surface in S^4.
 search all nfold coverings(with equivalent coverings excluded)
 meridian/longitude system
 branch and peripheral data
 covering linkage
 Homology group H1 for branch/unbranch covering
 Homotopy(Fundamental) group pi_1 for branch/unbranch covering
 twisted Alexander polynomial.(1variable)
 twisted Elementary ideals.(1variable)
 twisted Novikov(extended Alexander) polynomial.
 covering distribution (statistics) invariants
 statistics of Yang (orbit) diagram.
 statistics of Branch index.
 statistics of Covering linkage.
 statistics of H1(branched cover).
 statistics of H1(unbranched cover).
 representation G(K) to sl2(p)
for knot,link in S^3, knotted surface in S^4.
(p:prime integer)
 search all representations (with equivalent representations excluded)
 twisted Alexander polynomial.(1variable)
 twisted Elementary ideals.(1variable)
 "New knot": clear screen and input new diagram
 "Add Compo": Add components/string
 "Crossing": crossing change
 "Move vertex": Move vertex of strings
 "Cut": Cut off segment in diagram
 "Del string": remove string
 "Add Band":
 saddle band for knotted surface in S^4.
In this version, it cannot distinguish upper or lower saddle,
So, we can not draw exact geometric condition but compute knot group and related invariants.
 band for surgery
 3rd element for theta 3 curve
 "Band surgery": surgery along band
 "Invert string": invert string/component
 "Shift Diagram": move diagram in the screen
 "Jump(over)", "Jump(under)": over/under jump move
 "Braid": show/input braid word
 "nData": show/input nData word
 "Torus link": input parameter of torus link T(p,q)
 "2Bridge": input parameter of 2bridge link Schubert's notation S(p,q)
 "2Bridge": input parameter of 2bridge link Conway's notation C(a1,a2,...,an)
 "Pretzel": input parameter of pretzel link P(a1,a2,...,an)
 "Alternate": make crossings alternating
 "coherent band": make components coherent along bands
 "magnify x2": magnify the diagram 2 times
 "magnify x1.4":magnify the diagram 1.4 times
 "magnify x0.7":magnify the diagram 0.7 times
 "magnify x0.5":magnify the diagram 0.5 times
 "mirrorX": mirror along YZ plane, so invert Xaxis
 "mirrorY": mirror along XZ plane, so invert Yaxis
 "mirrorZ": mirror along XY plane, so invert Zaxis. (crossing change)
 "rotateR": rotate by 90 degree
 "rotateR": rotate by 90 degree
 "Back": backward edit history
 "Forward": forward edit history
 "force put history": put current diagram into history
 "Load knot": load a knotdata
 "Save Knot": save current diagram as a knotdata
 "Save Braid": save as a braid word
 "Save ndata": save as a nData
 "Save Knot ver.1": save as knotdata(ver.1). (old format)
 "log file: ": on/off logging results
 "log LaTeX picture": logging diagram as LaTeX picture
 "log Knot": logging diagram as knotdata
 "log Braid": logging diagram as braid word
 "log nData": logging diagram as nData
 "Smooth Draw: ": switch for display diagram as smooth/rigid picture
 "Lattice move: ": switch for input diagram on lattice points or not
 "Show restrictions": show restriction of current version
 "Show knot data": show knotdata of current diagram
 "Check knot data": check knotdata of current diagram
 "Show tcode": show inner representation of crossing data
 "Show tcode theta": show inner representation of crossing data for theta curve
 "Show braid": show braid word of current diagram
 "Show ndata": show nData of current diagram
 "experimental feature": experimental feature for development
Many of GUI menu operations are usable from keyboard shortcut.
Key bindings are defined as 2stroke key actions in Doc/knot.Xdefs.
These definitions are experimental.
And it may be changed.
Check your definition file Doc/knot.Xdefs.
Empty action:
When you confused key stroke, hit space to break off.
" ": empty_proc
Effects:
"e2": Bridge2
"ea": Alternate
"eb": Braid
"ec": Coherent
"el": Mag2
"em": Mag14
"en": nData
"eo": Rot
"ep": Pretzel
"er": Mag14R
"es": Mag2R
"et": Torus
"ex": MirrorX
"ey": MirrorY
"ez": MirrorZ
File in/out:
"fb": SaveBraid
"fl": LoadKnot
"fn": SaveNData
"fs": SaveKnot
History:
"hb": BackHist
"hf": FwdHist
"hs": SaveHist
Invariant:
See section of "p*" for polynomial invariants.
"ia": AlexIdeal
"ib": AlexIdealM
"ic": Covering
"ig": GoeritzMat
"ik": KnotGroup
"il": sl2p
"ip": CyclicPeriod
"is": Signature
Logging:
"lb": LogBraid
"lk": LogKnot
"ln": LogNData
"lp": LaTeXPicture
"ls": LogSw
Edit Mode:
"ma": AddCompo
"mb": AddBand
"mc": Crossing
"md": DelString
"mf": ShiftDiagram
"mi": InvertStr
"mm": MoveVert
"mn": NewKnot
"mo": JumpOver
"ms": BandSurgery
"mt": Cut
"mu": JumpUnder
Other:
"ol": LatticeMove
"os": SmoothDraw
Polynomial:
"pa": AlexPoly
"pb": ApexPolyM
"pc": ConwayPoly
"pf": Fpoly
"pp": Ppoly
"pq": Qpoly
"pv": Vpoly
"pw": VpolyPara
Theta curve:
"ta": ThetaAlexPoly
"tg": ThetaGroup
Quit:
"zz": QuitProc
We can give start up options as GUI tool.
 gui : to force GUI, put this at the top of options as "knot gui log"
 log : enable logging at boot time.
 logfile (file) : set file name to log out.
knotLog.(date) by default.
 Use helper script "knot.sh" if you need.
 For automated computation about a list file of knots, use additional script "knot_dir.sh".
 help: print out help message and exit
e.g. knot help
 as a stream filter: s (options)
read knotdata from standard instream and output to standard outstream
e.g. knot s ai p < knot_data
Options are executed in sequence from left to right.
The option s must be the first one.
 or explicitly read a file: if (input_file) (options)
read knotdata from "input_file" and output to standard out stream
e.g. knot if k3 ai p
Options are executed in sequence from left to right.
The option if must be the first one.
 options for invariants:
 a: Alexander polynomial
 ai: Alexander/Elementary ideal
 am: multi variable Alexander polynomial
 ami: multi variable Alexander/Elementary ideal
 c: Conway polynomial
 v [n]: Jones polynomial(nparallelized)
 p [type]: P(HOMFLY) polynomial. type=vz,lm,xyz. (vz by default)
 p_low [type]: The lowest term of P as a z variable polynomial. type=vz,lm,xyz. (vz by default)
 f: F polynomial
 q: Q polynomial
 cyc: test cyclic period using Alexander polynomial
 cov [n] [sub options]: nfold covering(n=2 by default)
Sub options:
 br : branch indices.
 lk : covering linkage.
 h1b : H_1 as branched covering space.
 h1u : H_1 as unbranched covering space.
 gp : Group relations.
 ai : Twisted Alexander invariants.
 distr: Distributions.
 sl2 [n] [sub option]: representation to SL2(p) (p:prime,2 by default)
Sub option:
 ai : Twisted Alexander invariants.
 grp: knot group
 kv: Goeritz matrix and knot value
 sign: Signature
 options for conversions:
 alt : alternate
 mirror [axis] : mirror. axis=x,y,z. (x by default)
 rot: rotate by 90
 rotn: rotate by 90
 mag [m] : mmagnify(m=2.0 by default)
 options for output data
 knot: knot data
 braid [sub option]: braid word
Sub options:
 a : Artin normal form
 ra : reduced Artin normal form
 ndata: ndata
 picture [width [height]] [sub options]: LaTeX picture. Measure by millimeter
Sub options:
 s : smooth curve
 r : rigid line (default)
 tpic : LaTeX tpic
 ps : LaTeX pstricks (using psbezier when "s" is enabled) (default)
Home page of K.Kodama.