Previous
About HAP: Knots and Quandles
next

Knots and Quandles
Sub-package by Cédric FRAGNAUD and Graham ELLIS
A quandle (Q, ▹) is a non-empty set Q equipped with a binary operation ▹ : Q × Q → Q satisfying the following axioms:

1/ ∀ a ∈ Q, a ▹ a = a.
2/ ∀ a, b ∈ Q, ∃! c ∈ Q such that a = c ▹ b.
3/ ∀ a, b, c ∈ Q, (a ▹ b) ▹ c = (a ▹ c) ▹ (b ▹ c).

One can check that for any group G and n ∈ ℤ, the magma (G, ▹) forms a quandle with the operation x ▹ y = y-nxyn , ∀ x, y ∈ G. Such a quandle is called the n-Fold Conjugation Quandle.

A quandle Q is said to be connected if the inner automorphism group Inn Q acts transitively on Q. In other words, Q is connected if and only if for each pair a, b in Q there are a1, a2, . . . , an in Q such that a ▹ a1 ▹ˇ ˇ ˇ ▹ an = b.

A quandle Q is said to be latin if ∀ a, b ∈ Q, ∃ c ∈ Q such that a = b ▹ c.
gap> Q:=Quandle(5,21);
<magma with 5 generators>
gap> Display(MultiplicationTable(Q));
[ [  1,  3,  4,  5,  2 ],
  [  3,  2,  5,  1,  4 ],
  [  4,  5,  3,  2,  1 ],
  [  5,  1,  2,  4,  3 ],
  [  2,  4,  1,  3,  5 ] ]
gap> IsConnected(Q);
true
gap> IsLatin(Q);
true
gap> G:=DihedralGroup(64);;
gap> Q:=ConjugationQuandle(G,1);;
<magma with 19 generators>
gap> Size(Q);
64
gap> IsConnected(Q);
false
Let Q be a set, e an element in Q, G a permutation group, and stigma an element in G.
Then (Q,G,e,stigma) describes a Quandle Envelope if :
  • G is a transitive group on Q.
  • stigma ∈ Z(Ge), the center of the stabilizer of e.
  • ⟨stigmaG⟩ = G (that is, the smallest normal subgroup of G containing stigma is all of G).

From a Quandle Envelope (Q,G,e,stigma), we can construct a Quandle (Q, ▹):

        for all x,y in Q,        x ▹ y=(ŷ(stigma))(x)        , where ŷ ∈ G satisfies ŷ(e)=y.

Such a quandle is connected. This property is used to construct all the connected quandles of size n.

gap> Q:=[1..9];; e:=2;; G:=TransitiveGroup(9,15);; st:=(1,8,7,4,9,5,3,6);;
gap> IsQuandleEnvelope(Q,G,e,st); QE:=QuandleQuandleEnvelope(Q,G,e,st);
true
<magma with 9 generators>
gap> IsQuandle(QE); IsConnectedQuandle(QE);
true
true
gap> ConnectedQuandles(20); time;
[ <magma with 20 generators>, <magma with 20 generators>, <magma with 20 generators>,
  <magma with 20 generators>, <magma with 20 generators>, <magma with 20 generators>,
  <magma with 20 generators>, <magma with 20 generators>, <magma with 20 generators>,
  <magma with 20 generators> ]
3364296
Let's denote Rx the mapping defined by Rx : Q→Q, y ↦y▹x.
We define the right multiplication group G of a quandle Q by G=〈Rx, x ∈ Q〉.
We also define the automorphism group Aut(Q)={f:Q→Q} to be the group of bijective quandle homomorphisms. It can be proven that G is a subgroup of Aut(Q).
gap> Q:=ConnectedQuandle(8,2);; q:=Random(Q);
m6
gap> A:=AutomorphismGroupQuandle(Q);; a:=Random(A);;
gap> q^a;
m4
gap> R:=RightMultiplicationGroupOfQuandle(Q);; r:=Random(R);;
gap> q^r;
m3
A knot is an embedding of the circle S1 in ℝ3.

To study these structures, we use knot diagrams, which are projections of these knots into ℝ2, defined, for instance, by f : ℝ3 → ℝ2; (x,y,z) → (x,y)  subject to the constraint that the preimage of any (x, y) ∈ ℝ2 contains at most two points.

Crossing points occur when the preimage of a point in ℝ2 contains more than one point.

At these crossing points, we denote the point in the preimage that is nearer to the ℝ2 plane as the under-crossing point and the point farther away as the over-crossing point. An arc is a line that connects two crossing points in the knot diagram, with a line break occurring when an undercrossing point is mapped to the arc.

We may give a knot diagram an orientation, i.e. a direction of travelling around the knot. This allows us to categorize crossings as either positive or negative:
Crossings

There exists different ways to describe a knot diagram: Planar Diagram, Gauss Code, Dowker Notation, Conway Notation.
Another way to describe a knot is to use quandles. From a knot K, we can construct the knot quandle Q(K), whose generators are the arcs of K, and relations are associated to the crossings:

Relators knot quandles
This figure gives us "a ▹ b = c" at a negative crossing, and "a ▹-1 b = c" (or "c ▹ b = a") at a positive one.
gap> K:=PureCubicalKnot(3,1);;
gap> G:=GaussCodeOfPureCubicalKnot(K);;
gap> P:=PresentationKnotQuandle(G);
rec( generators := [ 1 .. 3 ], relators := [ [ [ 3, 2 ], 1 ], [ [ 1, 3 ], 2 ], [ [ 2, 1 ], 3 ] ] )
From this example, we see that the generators of the Trefoil Knot Quandle are the arcs 1, 2 and 3; these generators satisfy the relations above.

Nb: [[a1 ,a2 ],a3 ] means a1 ▹ a2 = a3, no matter if we consider a positive or negative crossing.
We can also easily go from a Planar Diagram representation of a knot to a its Gauss Code (with orientations of crossings).
gap> PD:=PlanarDiagramKnot(3,1);
[ [ 1, 4, 2, 5 ], [ 3, 6, 4, 1 ], [ 5, 2, 6, 3 ] ]
gap> G:=PD2GC(PD);
[ [ [ -1, 3, -2, 1, -3, 2 ] ], [ -1, -1, -1 ] ]
Using a finite connected quandle Q we can construct an invariant of a knot K: a certain partition of the number of homomorphisms QK ---> Q from the fundamental quandle QK of K to the quandle Q.
gap> QK:=PresentationKnotQuandleKnot(8,2);
rec( generators := [ 1 .. 8 ], relators := [ [ [ 8, 2 ], 1 ], [ [ 2, 5 ], 1 ], [ [ 2, 6 ], 3 ], [ [ 3, 7 ], 4 ], [ [ 4, 8 ], 5 ],
[ [ 6, 1 ], 5 ], [ [ 6, 3 ], 7 ], [ [ 7, 4 ], 8 ] ] )
gap> Q:=ConnectedQuandle(9,5);;
gap>  PartitionedNumberOfHomomorphisms(QK,Q); time;
[ 9, 72 ]
4080
gap> NumberOfHomomorphisms(QK,Q); time;
81
3916
The following code shows how a partition of the number of homomorphisms K--->Q from a knot quandle K to a finite quandle Q can be used to distinguish between knots. The code establishes that by using only connected quandles Q of order ≤13, one can distinguish between all prime knots on at most eight crossings.
gap> L:=[];;
gap> for n in [1..8] do
> for i in [1..Length(Cedric_PlanarDiagram[n])] do
> Add(L,PresentationKnotQuandleKnot(n,i));
> od; od;

gap> inv:=function(K,n);
> return List(ConnectedQuandles(n),x->PartitionedNumberOfHomomorphisms(K,x));
> end;;

gap> C:=Classify(L,K->inv(K,3));; List(C,Size);
[ 11, 23, 1 ]
gap> C4:=RefineClassification(C,K->inv(K,4));; List(C4,Size);
[ 8, 3, 6, 17, 1 ]
gap> C5:=RefineClassification(C4,K->inv(K,5));; List(C5,Size);
[ 5, 2, 1, 1, 1, 1, 1, 1, 4, 3, 12, 1, 1, 1 ]
gap> C6:=RefineClassification(C5,K->inv(K,5));; List(C6,Size);
[ 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 3, 12, 1, 1, 1 ]
gap> C7:=RefineClassification(C6,K->inv(K,7));; List(C7,Size);
[ 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 2, 8, 2, 1, 1, 1 ]
gap> C8:=RefineClassification(C7,K->inv(K,8));; List(C8,Size);
[ 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 6, 2, 2, 1, 1, 1 ]
gap> C9:=RefineClassification(C8,K->inv(K,9));; List(C9,Size);
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1 ]
gap> C10:=RefineClassification(C9,K->inv(K,10));; List(C10,Size);
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1 ]
gap> C11:=RefineClassification(C10,K->inv(K,11));; List(C11,Size);
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
gap> C12:=RefineClassification(C11,K->inv(K,12));; List(C12,Size);
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
gap> C13:=RefineClassification(C12,K->inv(K,13));; List(C13,Size);
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
Given a quandle Q one defines the adjoint group Adj(Q) to be the group with one generator for each element of Q and relators
x-1yx= x▹y
for x,y ∈ Q.
Q:=ConnectedQuandle(7,1);
<magma with 7 generators>

gap> F:=AdjointGroupOfQuandle(Q);
<fp group on the generators [ f1, f2, f3, f4, f5, f6, f7 ]>
The set of path components of a quandle Q is defined to be the set of orbits of the action of the right multiplication group Inn(Q) on Q.  One can readily see that the rank of the abelianization of Adj(Q) is equal to the number of path components. The following code illustrates this.
gap> Q:=ConjugationQuandle(SymmetricGroup(5),1);
<magma with 10 generators>

gap> F:=AdjointGroupOfQuandle(Q);
<fp group with 120 generators>

gap> AbelianInvariants(F);
[ 0, 0, 0, 0, 0, 0, 0 ]

gap> P:=PathComponents(Q);;
gap> Size(P);
7
For a connected quandle Q the group A=Adj(Q) is isomorphic to a semi-direct product A=Z ⋊ D where D is the derived subgroup of Adj(Q) and Z is the infinite cylic group. There is a canonical group homomorphism Adj(Q) --> Inn(Q) to the right multiplication group. Thus Adj(Q) acts canonically on Q.

For a connected Q and preferred element q ∈ Q the fundamental group of Q at the base-point q is defined to be the subgroup of D consisting of those elements that fix q. Up to isomorphism the fundamental group of Q does not depend on the choice of base-point.

When Q is finite then so too is D.  Thus for finite connected quandles one can compute the fundamental group directly from the definition.
gap> Q:=ConnectedQuandle(18,2);
<magma with 18 generators>

gap> F:=FundamentalGroup(Q);
<group with 2 generators>

gap> IdGroup(F);
[ 4, 1 ]

gap> D:=DerivedGroupOfQuandle(Q);
<group with 2 generators>

gap> IdGroup(D);
[ 72, 3 ]
A second example of a fundamental group computation is given below.
gap> Q:=ConjugationQuandle(SymmetricGroup(5),1);
<magma with 10 generators>

gap> P:=PathComponents(Q);;
gap> P:=List(P,x->AsMagma(x));;

gap> List(P,Size);
[ 1, 10, 20, 15, 30, 20, 24 ]

gap> List(P,IsConnected);
[ true, true, true, true, true, true, false ]

gap> Q:=P[5];
<magma with 3 generators>
gap> Size(Q);
30

gap> F:=FundamentalGroup(Q);
<group with 2 generators>

gap> IdGroup(F);
[ 4, 1 ]
gap>
Previous Page
Contents
Next page