# Difference between revisions of "ApCoCoA-1:Thompson group"

### Thompson group

#### Description

The Thompson group can be regarded as the group of piecewise-linear, orientation-preserving homeomorphisms of the unit interval which have breakpoints only at dyadic points and on intervals of differentiability the slopes are powers of two. A representation is given by:

```  T = <a,b | [ab^{-1},a^{-1}ba] = [ab^{-1},a^{-2}ba^{2}] = 1>
```

or alternative:

```  Th = <x_{0},x_{1},x_{2},... | x_{k}^{-1}x_{n}x_{k} = x_{n+1} for all k < n>
```

#### Reference

NEW PRESENTATIONS OF THOMPSON'S GROUPS AND APPLICATIONS: UFFE HAAGERUP AND GABRIEL PICIOROAGA

#### Computation

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

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

Define CreateRelationsThompson()
Relations:=[];

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

// the commutator of [ad,a^{-1}ba] is a,d,c,b,a,b,c,c,d,a
Append(Relations,[[a,d,c,b,a,b,c,c,d,a],]);

// the commutator of [ad,a^{-2}ba^2] is a,d,c,c,b,a,a,b,c,c^2,d,a^2
Append(Relations,[[a,d,c,c,b,a,a,b,c,c^2,d,a^2],]);

Return Relations;
EndDefine;

Relations:=CreateRelationsThompson();
Relations;

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

#### Example in Symbolic Data Format

``` <FREEALGEBRA createdAt="2014-01-20" createdBy="strohmeier">
<vars>a,b,c,d</vars>
<uptoDeg>11</uptoDeg>
<basis>
<ncpoly>a*c-1</ncpoly>
<ncpoly>c*a-1</ncpoly>
<ncpoly>b*d-1</ncpoly>
<ncpoly>d*b-1</ncpoly>
<ncpoly>a*d*c*b*a*b*c*c*d*a-1</ncpoly>
<ncpoly>a*d*c*c*b*a*a*b*c*c^2*d*a^2-1</ncpoly>
</basis>
<Comment>The partial LLex Gb has 393 elements</Comment>
<Comment>Thompson_group</Comment>
</FREEALGEBRA>

<Comment> Commutators
[g,h] = ghg^{-1}h^{-1}
</Comment>
```

#### Alternative Computation

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

// Define the variable k,n of the thompson group
// MEMORY.N has to be MEMORY.K+2
MEMORY.N:=5;
MEMORY.K:=3;

Use ZZ/(2)[x[1..MEMORY.N],y[1..MEMORY.N]];
NC.SetOrdering("LLEX");

Define CreateRelationsthomp()
Relations:=[];
For Index1 := 1 To MEMORY.N Do
Append(Relations,[[x[Index1],y[Index1]],]);
Append(Relations,[[y[Index1],x[Index1]],]);
EndFor;

For Index2 := 1 To MEMORY.K Do
For Index1 := 2 To MEMORY.N-1 Do
If (Index1 > Index2) Then
Append(Relations,[[y[Index2],x[Index1],x[Index2]],[x[Index1+1]]]);
EndIf
EndFor;
EndFor;
Return Relations;
EndDefine;

Relations:=CreateRelationsthomp();
Relations;

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

#### Example in Symbolic Data Format

``` <FREEALGEBRA createdAt="2014-03-28" createdBy="strohmeier">
<vars>x1,x2,x3,x4,x5,y1,y2,y3,y4,y5</vars>
<uptoDeg>4</uptoDeg>
<basis>
<ncpoly>x1*y1-1</ncpoly>
<ncpoly>y1*x1-1</ncpoly>
<ncpoly>x2*y2-1</ncpoly>
<ncpoly>y2*x2-1</ncpoly>
<ncpoly>x3*y3-1</ncpoly>
<ncpoly>y3*x3-1</ncpoly>
<ncpoly>x4*y4-1</ncpoly>
<ncpoly>y4*x4-1</ncpoly>
<ncpoly>x5*y5-1</ncpoly>
<ncpoly>y5*x5-1</ncpoly>
<ncpoly>y1*x2*x1-x3</ncpoly>
<ncpoly>y1*x3*x1-x4</ncpoly>
<ncpoly>y1*x4*x1-x5</ncpoly>
<ncpoly>y2*x3*x2-x4</ncpoly>
<ncpoly>y2*x4*x2-x5</ncpoly>
<ncpoly>y3*x4*x3-x5</ncpoly>
</basis>
<Comment>The partial LLex Gb has 126 elements</Comment>
<Comment>Thompson_group_alt5</Comment>
</FREEALGEBRA>
```