# ApCoCoA-1:Picard group

### Picard Group

#### Description

The Picard Group is PSL_{2}(O_{1}) where O_{1} is the ring of integers in the quadratic imaginary number field Q sqrt(-1).

#### 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

/*Use the ApCoCoA package ncpoly.*/

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

Define CreateRelationsPicard()
Relations:=[];

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

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

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

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

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

// add the relation (ual)^3 = 1
Append(Relations,[[u,a,l,u,a,l,u,a,l],[1]]);

//add the relation tu = ut
Append(Relations,[[t,u],[u,t]]);

Return Relations;
EndDefine;

Relations:=CreateRelationsPicard();
Relations;

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

#### Example in Symbolic Data Format

<FREEALGEBRA createdAt="2014-03-26" createdBy="strohmeier">
<vars>a,l,t,u</vars>
<uptoDeg>9</uptoDeg>
<basis>
<ncpoly>a*a-1</ncpoly>
<ncpoly>l*l-1</ncpoly>
<ncpoly>a*l*a*l-1</ncpoly>
<ncpoly>t*l*t*l-1</ncpoly>
<ncpoly>u*l*u*l-1</ncpoly>
<ncpoly>a*t*a*t*a*t-1</ncpoly>
<ncpoly>u*a*l*u*a*l*u*a*l-1</ncpoly>
<ncpoly>t*u-u*t</ncpoly>
</basis>
<Comment>The partial LLex Gb has 104 elements</Comment>
<Comment>Picard_group</Comment>
</FREEALGEBRA>