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]] ]
n | (isoclasses of) Singular pairs for flipn |
---|---|
2 | 2 |
3 | 7 |
4 | 169 |
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.
The most relevant functions are:
gap> colormejorsingular(pd,q,tau);
where pd is the planar diagram of the knot/link, and (q,tau) is a singular pair.
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
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);
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.