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

### Hecke groups

#### Description

The Hecke groups has the following representation:

``` H(lambda_q) = <x,y | x^2=(xy)^q=1, for q >= 3>
```

#### Reference

GROWTH IN HECKE GROUPS, MARTIN KREUZER AND GERHARD ROSENBERGER

#### Computation

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

// Define the variable q of the Hecke group
MEMORY.Q := 4;

// y is invers to z, x is invers to itself (that follows directly from the first relation)
Use ZZ/(2)[x,y,z];
NC.SetOrdering("LLEX");

Define CreateRelationsHecke()
Relations:=[];
// add the invers relation of y and z
Append(Relations,[[y,z],[1]]);
Append(Relations,[[z,y],[1]]);

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

// add the relation (xy)^q = 1
RelationBuffer1:=[];
For Index0 := 1 To MEMORY.Q Do
Append(RelationBuffer1,x);
Append(RelationBuffer1,y);
EndFor;
Append(Relations,[RelationBuffer1,[1]]);

Return Relations;
EndDefine;

Relations:=CreateRelationsHecke();
Gb:=NC.GB(Relations);
```

#### Examples in Symbolic Data Format

##### Hecke group 4
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^4)-1</ncpoly>
</basis>
<Comment>Hecke_group_4</Comment>
</FREEALGEBRA>
```
##### Hecke group 5
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^5)-1</ncpoly>
</basis>
<Comment>Hecke_group_5</Comment>
</FREEALGEBRA>
```
##### Hecke group 6
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^6)-1</ncpoly>
</basis>
<Comment>Hecke_group_6</Comment>
</FREEALGEBRA>
```
##### Hecke group 7
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^7)-1</ncpoly>
</basis>
<Comment>Hecke_group_7</Comment>
</FREEALGEBRA>
```
##### Hecke group 8
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^8)-1</ncpoly>
</basis>
<Comment>Hecke_group_8</Comment>
</FREEALGEBRA>
```
##### Hecke group 9
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^9)-1</ncpoly>
</basis>
<Comment>Hecke_group_9</Comment>
</FREEALGEBRA>
```
##### Hecke group 10
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^10)-1</ncpoly>
</basis>
<Comment>Hecke_group_10</Comment>
</FREEALGEBRA>
```
##### Hecke group 11
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^11)-1</ncpoly>
</basis>
<Comment>Hecke_group_11</Comment>
</FREEALGEBRA>
```
##### Hecke group 12
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^12)-1</ncpoly>
</basis>
<Comment>Hecke_group_12</Comment>
</FREEALGEBRA>
```
##### Hecke group 13
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^13)-1</ncpoly>
</basis>
<Comment>Hecke_group_13</Comment>
</FREEALGEBRA>
```
##### Hecke group 14
``` <FREEALGEBRA createdAt="2014-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^14)-1</ncpoly>
</basis>
<Comment>Hecke_group_14</Comment>
</FREEALGEBRA>
```
##### Hecke group 15
``` <FREEALGEBRA createdAt="2015-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^15)-1</ncpoly>
</basis>
<Comment>Hecke_group_15</Comment>
</FREEALGEBRA>
```
##### Hecke group 16
``` <FREEALGEBRA createdAt="2016-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^16)-1</ncpoly>
</basis>
<Comment>Hecke_group_16</Comment>
</FREEALGEBRA>
```
##### Hecke group 17
``` <FREEALGEBRA createdAt="2017-03-02" createdBy="strohmeier">
<vars>x,y,z</vars>
<basis>
<ncpoly>y*z-1</ncpoly>
<ncpoly>z*y-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>((x*y)^17)-1</ncpoly>
</basis>
<Comment>Hecke_group_17</Comment>
</FREEALGEBRA>
```