# Difference between revisions of "ApCoCoA-1:Euclidean Bianchi groups"

### Euclidean Bianchi Groups

#### Description

The Bianchi Groups Eb_{d} are PSL_{2}(O_{d}) where O_{d} is the ring of integers in the quadratic imaginary number field Q sqrt(-d) with d a positive square-free rational integer. If d = 1,2,3,7,11 O_{d} has a Euclidean algorithm and the corresponding groups are called the Euclidean Bianchi Groups.

#### Reference

L. Greenberg - "Discontinuous Groups and Riemann Surfaces: Proceedings" - Princeton University Press (1974) 151; B. Fine - "THE EUCLIDEAN BIANCHI GROUPS" - COMMUNICATIONS IN ALGEBRA, 18(8), 2461-2484 (1990) 2461

#### Computation Eb_{3}

/*Use the ApCoCoA package ncpoly.*/

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

Define CreateRelationsEuclideanBianchigroup3()
Relations:=[];

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

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

Append(Relations,[[a,d,e,a,d,e,a,d,e],[1]]);

// add the relation d^3 = 1
Append(Relations,[[d,d,d],[1]]);

// add the relation e^3 = 1
Append(Relations,[[e,e,e],[1]]);

// add the relation (dae^{-1})^3 = 1
Append(Relations,[[d,a,e,e,d,a,e,e,d,a,e,e],[1]]);

// add the relation e^{-1}dedaed^{-1}e^{-1}d^{-1}a = 1
Append(Relations,[[e,e,d,e,d,a,e,d,d,e,e,d,d,a],[1]]);

Return Relations;
EndDefine;

Relations:=CreateRelationsEuclideanBianchigroup3();
Relations;

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

#### Eb_{3} in Symbolic Data Format

<FREEALGEBRA createdAt="2014-03-26" createdBy="strohmeier">
<vars>a,d,e</vars>
<uptoDeg>12</uptoDeg>
<basis>
<ncpoly>a*a-1</ncpoly>
<ncpoly>d*a*d*a-1</ncpoly>
<ncpoly>a*d*e*a*d*e*a*d*e-1</ncpoly>
<ncpoly>d*d*d-1</ncpoly>
<ncpoly>e*e*e-1</ncpoly>
<ncpoly>(d*a*e*e)^3-1</ncpoly>
<ncpoly>e*e*d*e*d*a*e*d*d*e*e*d*d*a-1</ncpoly>
</basis>
<Comment>The partial LLex Gb has 237 elements</Comment>
<Comment>Euclidean_Bianchi_group3</Comment>
</FREEALGEBRA>

#### Computation Eb_{2}

/*Use the ApCoCoA package ncpoly.*/

Use ZZ/(2)[a,s,t,u,v];
NC.SetOrdering("LLEX");

Define CreateRelationsEuclideanBianchigroup2()
Relations:=[];

Append(Relations,[[u,v],[1]]);
Append(Relations,[[v,u],[1]]);
Append(Relations,[[t,s],[1]]);
Append(Relations,[[s,t],[1]]);

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

// add the relation (at)^3 = 1
Append(Relations,[[a,t,a,t,a,t],[1]]);

// add the relation (u^{-1}aua)^2 = 1
Append(Relations,[[v,a,u,a,v,a,u,a],[1]]);

// add the relation [t,u] = 1
// the commutator of [t,u] is t,u,s,v
Append(Relations,[[t,u,s,v],[1]]);

Return Relations;
EndDefine;

Relations:=CreateRelationsEuclideanBianchigroup2();
Relations;

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

#### Eb_{2} in Symbolic Data Format

<FREEALGEBRA createdAt="2014-03-26" createdBy="strohmeier">
<vars>a,s,t,u,v</vars>
<uptoDeg>12</uptoDeg>
<basis>
<ncpoly>u*v-1</ncpoly>
<ncpoly>v*u-1</ncpoly>
<ncpoly>s*t-1</ncpoly>
<ncpoly>t*s-1</ncpoly>
<ncpoly>a*a-1</ncpoly>
<ncpoly>a*t*a*t*a*t-1</ncpoly>
<ncpoly>v*a*u*a*v*a*u*a-1</ncpoly>
<ncpoly>t*u*s*v-1</ncpoly>
<Comment> commutator [t,u]=tusv
</basis>
<Comment>The partial LLex Gb has 147 elements</Comment>
<Comment>Euclidean_Bianchi_group2</Comment>
</FREEALGEBRA>

#### Computation Eb_{7}

/*Use the ApCoCoA package ncpoly.*/

Use ZZ/(2)[a,s,t,u,v];
NC.SetOrdering("LLEX");

Define CreateRelationsEuclideanBianchigroup7()
Relations:=[];

Append(Relations,[[u,v],[1]]);
Append(Relations,[[v,u],[1]]);
Append(Relations,[[t,s],[1]]);
Append(Relations,[[s,t],[1]]);

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

// add the relation (at)^3 = 1
Append(Relations,[[a,t,a,t,a,t],[1]]);

// add the relation (u^{-1}auat)^2 = 1
Append(Relations,[[v,a,u,a,t,v,a,u,a,t],[1]]);

// add the relation [t,u] = 1
// the commutator of [t,u] is t,u,s,v
Append(Relations,[[t,u,s,v],[1]]);

Return Relations;
EndDefine;

Relations:=CreateRelationsEuclideanBianchigroup7();
Relations;

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

#### Eb_{7} in Symbolic Data Format

<FREEALGEBRA createdAt="2014-03-26" createdBy="strohmeier">
<vars>a,s,t,u,v</vars>
<uptoDeg>11</uptoDeg>
<basis>
<ncpoly>u*v-1</ncpoly>
<ncpoly>v*u-1</ncpoly>
<ncpoly>s*t-1</ncpoly>
<ncpoly>t*s-1</ncpoly>
<ncpoly>a*a-1</ncpoly>
<ncpoly>a*t*a*t*a*t-1</ncpoly>
<ncpoly>v*a*u*a*t*v*a*u*a*t-1</ncpoly>
<ncpoly>t*u*s*v-1</ncpoly>
<Comment> commutator [t,u]=tusv
</basis>
<Comment>The partial LLex Gb has 179 elements</Comment>
<Comment>Euclidean_Bianchi_group7</Comment>
</FREEALGEBRA>

#### Computation Eb_{11}

/*Use the ApCoCoA package ncpoly.*/

Use ZZ/(2)[a,s,t,u,v];
NC.SetOrdering("LLEX");

Define CreateRelationsEuclideanBianchigroup11()
Relations:=[];

Append(Relations,[[u,v],[1]]);
Append(Relations,[[v,u],[1]]);
Append(Relations,[[t,s],[1]]);
Append(Relations,[[s,t],[1]]);

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

// add the relation (at)^3 = 1
Append(Relations,[[a,t,a,t,a,t],[1]]);

// add the relation (u^{-1}auat)^3 = 1
Append(Relations,[[v,a,u,a,t,v,a,u,a,t,v,a,u,a,t],[1]]);

// add the relation [t,u] = 1
// the commutator of [t,u] is t,u,s,v
Append(Relations,[[t,u,s,v],[1]]);

Return Relations;
EndDefine;

Relations:=CreateRelationsEuclideanBianchigroup11();
Relations;

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

#### Eb_{11} in Symbolic Data Format

<FREEALGEBRA createdAt="2014-03-26" createdBy="strohmeier">
<vars>a,s,t,u,v</vars>
<uptoDeg>15</uptoDeg>
<basis>
<ncpoly>u*v-1</ncpoly>
<ncpoly>v*u-1</ncpoly>
<ncpoly>s*t-1</ncpoly>
<ncpoly>t*s-1</ncpoly>
<ncpoly>a*a-1</ncpoly>
<ncpoly>a*t*a*t*a*t-1</ncpoly>
<ncpoly>v*a*u*a*t*v*a*u*a*t*v*a*u*a*t-1</ncpoly>
<ncpoly>t*u*s*v-1</ncpoly>
<Comment> commutator [t,u]=tusv
</basis>
<Comment>The partial LLex Gb has 54 elements</Comment>
<Comment>Euclidean_Bianchi_group11</Comment>
</FREEALGEBRA>