# Difference between revisions of "ApCoCoA-1:Picard group"

### Picard group

#### Reference

Discontinuous Groups and Riemann Surfaces: Proceedings, Leon Greenberg

#### 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],]);
// add the relation l^2 = 1
Append(Relations,[[l,l],]);

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

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

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

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

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

//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>
```