# Difference between revisions of "ApCoCoA-1:Triangle groups"

### 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],[1]]);
Append(Relations,[[b^2],[1]]);
Append(Relations,[[c^2],[1]]);

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

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

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

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

#### Examples in Symbolic Data Format

##### Triangle group l=2 m=4 n=6
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>a,b,c</vars>
<basis>
<ncpoly>a*a-1</ncpoly>
<ncpoly>b*b*-1</ncpoly>
<ncpoly>c*c*-1</ncpoly>
<ncpoly>(a*b)^(2)-1</ncpoly>
<ncpoly>(b*c)^(4)-1</ncpoly>
<ncpoly>(c*a)^(6)-1</ncpoly>
</basis>
<Comment>Triangle_groups_l2m4n6</Comment>
</FREEALGEBRA>
```
##### Triangle group l=3 m=3 n=3
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>a,b,c</vars>
<basis>
<ncpoly>a*a-1</ncpoly>
<ncpoly>b*b*-1</ncpoly>
<ncpoly>c*c*-1</ncpoly>
<ncpoly>(a*b)^(3)-1</ncpoly>
<ncpoly>(b*c)^(3)-1</ncpoly>
<ncpoly>(c*a)^(3)-1</ncpoly>
</basis>
<Comment>Triangle_groups_3</Comment>
</FREEALGEBRA>
```
##### Triangle group l=3 m=4 n=5
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>a,b,c</vars>
<basis>
<ncpoly>a*a-1</ncpoly>
<ncpoly>b*b*-1</ncpoly>
<ncpoly>c*c*-1</ncpoly>
<ncpoly>(a*b)^(3)-1</ncpoly>
<ncpoly>(b*c)^(4)-1</ncpoly>
<ncpoly>(c*a)^(5)-1</ncpoly>
</basis>
<Comment>Triangle_groups_l3m4n5</Comment>
</FREEALGEBRA>
```
##### Triangle group l=3 m=5 n=7
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>a,b,c</vars>
<basis>
<ncpoly>a*a-1</ncpoly>
<ncpoly>b*b*-1</ncpoly>
<ncpoly>c*c*-1</ncpoly>
<ncpoly>(a*b)^(3)-1</ncpoly>
<ncpoly>(b*c)^(5)-1</ncpoly>
<ncpoly>(c*a)^(7)-1</ncpoly>
</basis>
<Comment>Triangle_groups_l3m5n7</Comment>
</FREEALGEBRA>
```
##### Triangle group l=7 m=11 n=13
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>a,b,c</vars>
<basis>
<ncpoly>a*a-1</ncpoly>
<ncpoly>b*b*-1</ncpoly>
<ncpoly>c*c*-1</ncpoly>
<ncpoly>(a*b)^(7)-1</ncpoly>
<ncpoly>(b*c)^(11)-1</ncpoly>
<ncpoly>(c*a)^(13)-1</ncpoly>
</basis>
<Comment>Triangle_groups_l7m11n13</Comment>
</FREEALGEBRA>
```