ApCoCoA:Extended Hecke groups

From CoCoAWiki
Jump to: navigation, search

Description

The Hecke group is a group consisting of linear fractional transformations preserving the upper half plane. The extended Hecke group generate by adding the reflection R(z) = 1/z. So the extended Hecke group has the following presentation:

<R,X,Y | R^2 = X^2 = Y^p = (RX)^2 = (YR)^2 = 1>

Another possibility to generate the extended Hecke group is to extend the presentation with P,Q and R. The result for the presentation is:

  <P,Q,R,X,Y | X = RP; Y = QR; P^2 = Q^2 = R^2 = (RP)^2 = (QR)^p = 1>
  <P,Q,R,X,Y | X = RP; Y = QR; P^2 = Q^2 = R^2 = (RP)^2 = (QR)^p = 1>

Reference

Ma. Louise Antonette N. De Las Peñas, Ma. Carlota B. Decena and Glenn R. Laigo, ON THE SUBGROUPS OF THE EXTENDED HECKE, HECKE AND PICARD GROUPS, Proceedings of the 5th Asian Mathematical Conference, Malaysia 2009.

Computation

/*Use the ApCoCoA package ncpoly.*/
 
// Define the variable p of the extended Hecke group
MEMORY.P := 3;

Use ZZ/(2)[r,x,y];
NC.SetOrdering("LLEX");

Define CreateRelationsExtendedHeckegroup()
  Relations:=[];
  
  //add the relation r^2 = 1 
  Append(Relations,[[r,r],[1]]);
  
  //add the relation x^2 = 1
  Append(Relations,[[x,x],[1]]);
  
  //add the relation y^p = 1
  Append(Relations,[[y^MEMORY.P],[1]]);
  
  //add the relation (rx)^2 = 1
  Append(Relations,[[r,x,r,x],[1]]);
  
  // add the relation (yr)^2 = 1 
  Append(Relations,[[y,r,y,r],[1]]);
   Return Relations;
EndDefine;

Relations:=CreateRelationsExtendedHeckegroup();
Relations;

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

Example in Symbolic Data Format

<FREEALGEBRA createdAt="2014-07-03" createdBy="strohmeier">
	<vars>r,x,y</vars>
	<uptoDeg>53</uptoDeg>
	<basis>
	<ncpoly>r*r-1</ncpoly>
	<ncpoly>x*x-1</ncpoly>
	<ncpoly>y^3-1</ncpoly>
	<ncpoly>r*x*r*x-1</ncpoly>
	<ncpoly>y*r*y*r-1</ncpoly>
	</basis>
	<Comment>The partial LLex Gb has 69 elements</Comment>
	<Comment>Extended_Hecke_Group_p3</Comment>
</FREEALGEBRA>

Alternative Computation

/*Use the ApCoCoA package ncpoly.*/
 
// Define the variable p of the extended Hecke group
MEMORY.P := 3;
 
Use ZZ/(2)[p,q,r,x,y];
NC.SetOrdering("LLEX");

Define CreateRelationsAltExtendedHeckegroup()
  Relations:=[];
  
  //add the relation x = rp 
  Append(Relations,[[x],[r,p]]);
  
  //add the relation y = qr
  Append(Relations,[[y],[q,r]]);
  
  //add the relation p^2 = 1
  Append(Relations,[[p,p],[1]]);
  
  //add the relation q^2 = 1
  Append(Relations,[[q,q],[1]]);
  
  // add the relation r^2 = 1 
  Append(Relations,[[r,r],[1]]);
  
  // add the relation rp^2 = 1
  Append(Relations,[[r,p,r,p],[1]]);
  
  // add the relation (qr)^P = 1
  RelationBuffer1:=[];
  For Index0 := 1 To MEMORY.P Do
    Append(RelationBuffer1,q);
    Append(RelationBuffer1,r);
	EndFor;
  Append(Relations,[RelationBuffer1,[1]]);
   
   Return Relations;
EndDefine;

Relations:=CreateRelationsAltExtendedHeckegroup();
Relations;

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

Example in Symbolic Data Format

 <FREEALGEBRA createdAt="2014-07-03" createdBy="strohmeier">
 	<vars>p,q,r,x,y</vars>
 	<basis>
 	<ncpoly>x-r*p</ncpoly>
 	<ncpoly>y-q*r</ncpoly>
 	<ncpoly>p*p-1</ncpoly>
 	<ncpoly>q*q-1</ncpoly>
 	<ncpoly>r*r-1</ncpoly>
 	<ncpoly>r*p*r*p-1</ncpoly>
 	<ncpoly>(q*r)^3-1</ncpoly>
 	</basis>
 	<Comment>AltExtended_Hecke_Group_P3</Comment>
 </FREEALGEBRA>