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

From ApCoCoAWiki
(New page: === <div id="Hecke_groups">Hecke groups</div> === ==== Description ==== The Hecke groups has the following representation: H(lambda_q) = <x,y | x^...)
 
Line 16: Line 16:
 
   Use ZZ/(2)[x,y,z];
 
   Use ZZ/(2)[x,y,z];
 
   NC.SetOrdering("LLEX");
 
   NC.SetOrdering("LLEX");
 +
 
 
   Define CreateRelationsHecke()
 
   Define CreateRelationsHecke()
 
     Relations:=[];
 
     Relations:=[];
Line 37: Line 38:
 
    
 
    
 
   Relations:=CreateRelationsHecke();
 
   Relations:=CreateRelationsHecke();
   GB:=NC.GB(Relations);
+
   Gb:=NC.GB(Relations);

Revision as of 03:32, 22 September 2013

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);