# Difference between revisions of "ApCoCoA-1:Torus Knot Group"

### Torus Knot Group

#### Description

The Torus Knot Group is described by a space curve r(phi).

```                (cos(q*phi)+2)*cos(p*phi)
With r(phi) = ( (cos(q*phi)+2)*sin(p*phi) ) 0<=phi<=2pi
sin(q*phi)
```

By interlacing a string through the hole of a torus p times with q revolutions, a (p,q)-torus knot results. The ends of the string are joined together. The variables p,q are relatively prime. And has the following presentation:

```tng(a,b)= < a,b| a^p = b^q = 1 >
```

#### Reference

Michael Eisermann, Knotengruppen-Darstellungen und Invarianten von endlichem Typ, Rheinischen Friedrich-Wilhelms-Universität, Bonn, 2000; Johannes Diernke, Universität Oldenburg, Oldenburg, 2010/2011: ; 

#### Computation

```/*Use the ApCoCoA package ncpoly.*/

// Define the variable q,p of the Torusknotengroup
//ggT(q,p)=1
MEMORY.P := 2;
MEMORY.Q := 3;

Use ZZ/(2)[a,b,c,d];
NC.SetOrdering("LLEX");

Define CreateRelationsTorusknoten()
Relations:=[];

Append(Relations,[[a,c],]);
Append(Relations,[[c,a],]);
Append(Relations,[[b,d],]);
Append(Relations,[[d,b],]);

// add the relation a^p = b^q
Append(Relations,[[a^MEMORY.P],[b^MEMORY.Q]]);
Return Relations;
EndDefine;

Relations:=CreateRelationsTorusknoten();
Relations;

Gb:=NC.GB(Relations,31,1,100,1000);
Gb;
```

#### Examples in Symbolic Data Format

``` <FREEALGEBRA createdAt="2014-07-03" createdBy="strohmeier">
<vars>a,b,c,d</vars>
<uptoDeg>14</uptoDeg>
<basis>
<ncpoly>a*c-1</ncpoly>
<ncpoly>c*a-1</ncpoly>
<ncpoly>b*d-1</ncpoly>
<ncpoly>d*b-1</ncpoly>
<Comment>Relation: a^p=b^q</Comment>
<ncpoly>a*a-b*b*b</ncpoly>
</basis>
<Comment>The partial LLex Gb has 198 elements</Comment>
<Comment>Torusknotengruppe_p2q3</Comment>
<Comment>Torusknotengruppe_p2q3 is isomorph to "Trefoil Knot Group"</Comment>
</FREEALGEBRA>
```