# ApCoCoA-1:Triangle groups

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

### Triangle groups

#### Description

For integers l,m,n greater than 1 the Triangle groups have can be described with the following finite representation:

``` Triangle(l,m,n) = {a,b,c | a^{2} = b^{2} = c^{2} = (ab)^{l} = (bc)^{m} = (ca)^{n} = 1}
```

#### Reference

Gross, Jonathan L.; Tucker, Thomas W. (2001), "6.2.8 Triangle Groups", Topological graph theory, Courier Dover Publications

#### Computation

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

// set the variables l,m,n
// Note that l,m,n have to be greater than 1
MEMORY.L:=3;
MEMORY.M:=3;
MEMORY.N:=3;
Use ZZ/(2)[a,b,c];
NC.SetOrdering("LLEX");
Define CreateRelationsTriangle()
Relations:=[];

// add the relation a^2 = b^2 = c^2 = 1
Append(Relations,[[a^2],]);
Append(Relations,[[b^2],]);
Append(Relations,[[c^2],]);

// add the relation (ab)^l = 1
RelationBuffer1:=[];
For Index0:= 1 To MEMORY.L Do
Append(RelationBuffer1,a);
Append(RelationBuffer1,b);
EndFor;
Append(Relations,[RelationBuffer1,]);

// add the relation (bc)^m = 1
RelationBuffer2:=[];
For Index1:= 1 To MEMORY.M Do
Append(RelationBuffer2,b);
Append(RelationBuffer2,c);
EndFor;
Append(Relations,[RelationBuffer2,]);

// add the relation (ca)^n = 1
RelationBuffer3:=[];
For Index2:= 1 To MEMORY.L Do
Append(RelationBuffer3,c);
Append(RelationBuffer3,a);
EndFor;
Append(Relations,[RelationBuffer3,]);
Return Relations;
EndDefine;

Relations:=CreateRelationsTriangle();
GB:=NC.GB(Relations);
```