News for version 2.5.3
- Selected elements in a group presentation: the syntax <generators; relators; elements>
can now be used to attach to the group presentation a finite list of selected elements.
This can be very useful in conjunction with the computation of representations, see below.
- Kitano-Suzuki invariant: computation of representations of a finitely presented group into a few classes
of nonabelian groups, namely we have the new actions:
ks_S<n> (where <n> is a natural number)
ks_A<n>
ks_SL2,<p> (<p> is a prime)
ks_PSL2,<p> (<p> is a prime)
they give the number of representations (up to conjugacy within the target group, Kitano-
Suzuki invariant) respectively in the symmetric group, the alternating group, the special
linear group of order 2 in Z/pZ and the projective special linear group of order 2.
Option -v (or --verbose) can be used to list all homomorphisms, of special importance is the
display of the image for the selected elements.
- Wirtinger presentation: ability to compute the Wirtinger presentation for a knot. The knot
can be given by its name (as in K9_42 or K11n_1, see the knot atlas) or using the dtcode of the
knot. The dtcode can be enriched with the handedness of a crossing as in
dtcode {[4> 6 2]} or dtcode {[4< 6 2]}
allowing to force the overall orientation of the knot or to add required information in case
of composite knots. The symbol '>' means that while traversing the knot, when we arrive at
the corresponding label ("4" in the example above), the intersecting line is seen as oriented
from left to right. Viceversa for the '<' symbol.
The Wirtinger presentation is corredated with two selected elements: a meridian m and a longitude l.
The longitude is selected with 0 linking number with respect to the knot, and the pair (m,l) is
positively oriented in the sense of the definition of a peripheral system.
Option "--nosimplify" can be used to inhibit simplification of the presentation: the simplified
presentation will no longer be a Wirtinger presentation, in the sense that generators do not
project onto a single generator of the abelianized.
News for version 2.5.2
- knot/link/handlebody-knot name can now directly be used in command line as a substitute
of the description file. This fallback mechanism can be disabled by setting the
environment variable APPCONTOUR_DISABLEKNFALLBACK to a nonempty value.
As an example something like this is now accepted:
contour knotsum K3_1 K3_1 | contour --out alexander
and you get the Alexander polynomial of the "granny" knot
- the handlebody-knots up to six crossings listed in Ishii-Kishimoto-Moriuchi
"A table of genus two handlebody-knots up to six crossings" are added with their
knot description among the examples. They can also be referenced as in the example
contour --out alexander HK6_15
or with the "old-style"
echo "knotname {HK6_15}" | contour --out alexander
- since we believe that the new "groebner" algorithm produces a canonical set of
generators of the ideal, the warning "result can be noncanonical" has been removed.
---
News for versions 2.4.0 and 2.5.0
- The ideal simplification code (Laurent polynomials in one indeterminate), necessary
when computing the second elementary Alexander ideal of a knot, now uses long long int,
thus mitigating the problem of integer growth experimented in one "kanenobu" knot
example.
- A new algorithm now computes what we believe to be a canonical basis for ideals
(Laurent polynomials in one indeterminate and integral coefficients). This is however
still unproved, so the code still prints the warning "result can be noncanonical"
- command "knotsum" simulates sum of knotted tori a-la "knot sum" of the corresponding
knots
- utility "kanenobu.sh <p> <q>" provides the knot description of the family of Kanenobu
knots (they are indistinguishable using the Jones polynomial but have distinct second
elementary Alexander ideal
- utility "leelee_phi.sh" computes the knot description of a family of handlebody knots
of genus 2 (knotted 'theta curve' s)
- command "foxjacobian" shows the jacobian of the presentation of the fundamental group
using Fox differential calculus. Options "--trivialize" and "--abelianize" allow to
appropriately project the matrix to obtain an integral matrix or a matrix with Laurent
polynomials as elements
- option "--M2" can be used to obtain an output that can be fed to "Macaulay 2" in
order to get a Groebner basis of an ideal
---
News for versions 2.3.1 and 2.3.2
version 2.3.2 now uses code from Jeff Weeks to "realize" a dt-code
Version 2.3.1 have exciting new features mainly for the special case of surfaces that
bound a solid torus. In other words in the field of knot theory.
In particular:
- occasionally the finitely presented group simplification does not produce a presentation with the
optimal deficiency value. For knots the deficiency (difference between the number of generators
and the number of relators) is one for some presentation. The new feature "--autosurgery" performes
one or more "punchhole" surgeries on the surface that do not affect the fundamental group of the
inside (or the outside in case of --out option) with the effect of removing all internal spherical
voids. In this way the resulting presentation has the expected deficiency right away.
- for knots, it is now possible to compute elementary ideals with "foxd" value (the d value described
in Cromwell-Fox) larger than one. At present the software can compute ideals associated with minors
of either rank 1 or 2 or corank 0 or 1 (it cannot at present compute the "--foxd 3" elementary ideal
for presentation with a 5x5 matrix).
There is no canonical representation of the elementary ideal (which in general is not principal),
however in most cases the resulting set of generators is sufficiently simple to allow direct use.
- the "--maxd" option computes the d-th elementary ideal with d equal to the dimension of the presentation
matrix. If the resulting ideal is not the whole ring, it follows that "d" is the Nakanishi index or
the knot.
- It is possible to describe a knot by its "dt-code" (Dowker-Thistlethwaite code), so that it is now much
more easy to enter knots from knot tables. The sintax is "dtcode {n n n n ...}" or "dtcode {[n n n n ...]}"
with optional comma separation. Some famous "hard unknots" are described in this way to test if appcontour
can detect that they are the unknot (it can!).
- The dt-code of a composite knot does not allow to reconstruct the knot uniquely. The option --dtcount <n>
allows to indicate with one of the possible reconstructions to select. In any case knots with nodes
having the same region on opposite quadrants are not allowed.
- The syntax "knotname {xxa_yyyyy}" or "knotname {xxn_yyyyy}" searches the ".pak" files containing all prime
knots up to 16 crossings for the named knot. Those ".pak" files are part of the famous "knotscape"
program (Morwen Thistlethwaite, Jim Hoste, Jeff Weeks), and are not part of this distribution. It is possible that
they will be distributed from the "appcontour" project page in the future.
- the option "--principal" associated to the computation of a d-th elementary ideal (--foxd <d>, d > 1)
requests the computation of the GCD of the generators of the ideal, i.e. the smallest principal ideal
that contains the requested elementary ideal.
This computation, and the simplification procedure for ideals (in one indeterminate) occasionally suffers
of extremely large increments in the size of integers, causing the simplification procedure to be inhibited.
---
News for versions 2.2
Version 2.2 adds computation of the Alexander polynomial and other interesting
computations on the fundamental group of the partition of space given by the
surface.
In particular:
- computing the preabelian presentation of the fundamental group
- computing the abelianized of the fundamental group
- direct reading of a finitely presented group from file
- Alexander polynomial for rank 1 abelianized (one indeterminate)
- Alexander polynomial for rank 2 abelianized (two indeterminates)
(canonization procedure is still to be implemented in this case)
- computing the linking number between two solid tori
The new options "--outside" and "--inside" allow to indicate which
part of space to use in computing the cell complex.
The new option "-i" enters an interactive prompt for fundamental groups