Singular knots and links

Algorithms runing on GAP for singular links and knots.

A singular knot or link is similar to a usual knot or link but one allows double (transversal) crossings.

A planar diagram of a singular knot or link is a projection into R 2 without triple crossings and such that all crossings are transversal.

For an oriented singular knot (or link) with one marked point (for links: one marked point in each connected component, and an ordering of the connected components), one can label the semiarcs (of a planar projection) begining with 1 for the semiarc containig the marked point and following the orientation.

So, a planar diagram becomes a list of crossings with signs, with the same sintaxis as for classical crossings, and with "2" (instead of +1 or -1) for the "sign" if the crossing is singular. For example, for the singular trefoil:

its planar diagram is [ [-1,[4,1,5,2]] , [-1,[6,3,1,4]] , [2,[5,3,6,2]] ]

Singular pairs

A Singular pair is a pair (q,tau) where q=(X,S) is a biquandle structure on a set X and tau:XxX->XxX is a non-degenerated map compatible with the "singular Reidemeister move". This is the data for labeling semiarcs of a planar diagram of a singular knot or link.

Example 1: the flip

If S=flip, that is, S(x,y)=(y,x), then the condition on tau is only S(τ(x,y))=τ(y,x). There are several such τ's. In the following table we list for |X|=2,3,4 the list of all τ's.
n (isoclasses of) Singular pairs for flipn
2 2
3 7
4 169

Example 2: the bialexander biquandle

Fix s,t units of the center of some ring and X a module over that ring. Then

S(x,y)=(sx, tx+(1-st)y)

is called the Alexander switch. Let f:X->X be a bijection such that f(a x) = a f(x) for a=s,t,-1. Then the map

τ(x,y)=(x-f(x-sy),y+ t f(x-sy) )

gives a singular pair for S. We call it τf

The following is a table with the tau's as before for the Dihedral biquandle.
n (isoclasses of) Singular pairs of type τf
3 2
4 4
5 6
6 16
7 20
8 56
9 136
10 410
11 776
12 3904

This table was generated by the function

gap> list:=singularbialexander(n,s,t);

(with n=3,4,5... and s=1 and t=-1). This gives the list of all bijective τf's, and then

gap>repspair(q,list);

for q:=bialexander(n,s,t), gives a list of isomorphism classes.

Some algorithms runing on GAP

Here you can download the source file containing the functions given in http://mate.dm.uba.ar/~mfarinat/papers/GAP for classical or virtual knots/links and biquandles, that also contains some new functions for singular knots/links and singular pairs.

The most relevant functions are:

colormejorsingular

Gives the set of colorings of a knot/link for a given singular pair. The sintaxis is

gap> colormejorsingular(pd,q,tau);

where pd is the planar diagram of the knot/link, and (q,tau) is a singular pair.

uncfh:

given a virtual pair [q,tau], uncfh([q,tau]) gives a record

rec=(uncfh.equations,uncfh.generators)

where the equations are given as lists elements of the form "[[a,b],[c,d]]", meaning "ab=cd",

and generators are lists of the form

[ [[],["f",[1,1]],["h",[2,1]],["h",[2,2]],["h",[2,3]]],

[["f",[1,2]],["f",[1,3]]],

[["f",[2,2]],["f",[3,3]]],

[["h"[3,3]]] ]

meaning

1=f(1,1)=h(2,1)=h(2,2)=h(2,3),

first generator is f1:=f(1,2)=f(1,3),

second generator is f2:=f(2,2)=f(3,3),

third generator is f3:=h(3,3)

This gives simultaneously the generators of the group Unc and the value of the maps f,h:X\times X\to Unc

invariantSingular:

Given a planar diagram "pd" and a singular pair (q,tau),

gap> invariantSingular(pd,q,tau);

gives the non-commutative invariant associated to the virtual link corresponding to the planar diagram, and the universal non-commutative 2-cocycle pair f,h:XxX-->Unc.

The invariant is given as a list with the colorings together with the corresponding element of the group Unc, written in terms of the generators f1, f2, ..., but without any reduction that could be eventualy be performed using the equations. Each coloring is given by a list of elements of X, following the order of the semiarcs.

For example, for the singular trefoil: with planar diagram [ [-1,[4,1,5,2]] , [-1,[6,3,1,4]] , [2,[5,3,6,2]] ], the commands

gap> flip:=bialexander(2,1,1);;

gap> invariantsingular([[-1,[4,1,5,2]],[-1,[6,3,1,4]],[2,[5,3,6,2]]],flip,flip);

give

[ [ [ 1, 1, 1, 1, 1, 1 ], f3^2 ], [ [ 2, 2, 2, 2, 2, 2 ], f6^2 ] ]

(notice the only colorings using the flip are the constant ones)

where the non-commutative Universal group for the singular pair flip-flip is the group on generators

a=f1=f(1,2), b=f2=f(2,1), c=f3=h(1,1), d=f4=h(1,2), e=f5=h(2,1), f=f6=h(2,2)

with relations

d=ae, d=ea, e=bd, e=db, ac=ca, ad=da, ae=ea, bd=db, be=eb, bf=fb

This generators and relations were obtained by the commands

gap> flip:=bialexander(2,1,1);;

gap>Un:=uncfh(flip,flip);;

gap>print_gen_rel(Un);

State-sum

The state-sum invariant computes the sum over all colorings of the product over all crossings of the Bolzman Weight associated to a pair of commutative cocycles $f$ (for the classical crossings) and $h$ (for the singular ones). The notion of commutative cocycles is addapted in for this computatin to be an inveriant under Reidemeister moves.

The command Abfh(q,tau) computes the generators and equations of the commutative group that is the universal target of such aommutative cocycles f and h. The command statesum(spd,q,tau) computes the state-sum of a singular planar diagram and the corresponding cocycles of the universal group associated to a singular pair (q,tau). The out-put is an element in the group alegbra that is displayed as a set of pairs [coefficient, element of the group]. For example, with the singular treefoil, gap gives:

gap> statesum(singulartrefoil,flip,flip);

[ [ 1, f3 ], [ 1, f6 ] ]

that means "f1+f6", where f1 and f6 are respectively the first and 6-th generators of Abfh. To know precisely the group Abfh one use the command:

gap> Abfh(q,q);

rec( equations := [ [ [ [ "f", [ 1, 2 ] ], [ "h", [ 2, 1 ] ] ],[ [ "f", [ 2, 1 ] ], [ "h", [ 1, 2 ] ] ] ] ], generators := [ [ [ ], [ "f", [ 1, 1 ] ], [ "f", [ 2, 2 ] ] ], [ "f", [ 1, 2 ] ] ], [ [ "f", [ 2, 1 ] ] ], [ [ "h", [ 1, 1 ] ] ], [ [ "h", [ 1, 2 ] ] ], [ [ "h", [ 2, 1 ] ] ], [ [ "h", [ 2, 2 ] ] ] ] )

that means "Abfh is the commutative group on generators

f0=[ ]=[ "f", [ 1, 1 ] ]=[ "f", [ 2, 2 ] ]

f1=[ "f", [ 1, 2 ] ]

f2=[ "f", [ 2, 1 ] ]

f3=[ "h", [ 1, 1 ] ]

f4=[ "h", [ 1, 2 ] ]

f5=[ "h", [ 2, 1 ] ]

f6=[ "h", [ 2, 2 ] ]

and relations

f0=1, f1 f5 = f2 f4.

As in the non commutative case, we see in this way the generators and relations of the group, together with the values of the cocycles f and h.