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

From ApCoCoAWiki
(New page: === <div id="Triangle groups">Triangle groups</div> === ==== Description ==== For integers l,m,n greater than 1 the Triangle groups have can be d...)
 
Line 44: Line 44:
 
     // add the relation (ca)^n = 1
 
     // add the relation (ca)^n = 1
 
     RelationBuffer3:=[];
 
     RelationBuffer3:=[];
     For Index2:= 1 To MEMORY.L Do
+
     For Index2:= 1 To MEMORY.N Do
 
       Append(RelationBuffer3,c);
 
       Append(RelationBuffer3,c);
 
       Append(RelationBuffer3,a);
 
       Append(RelationBuffer3,a);

Revision as of 09:56, 7 March 2014

Description

For integers l,m,n greater than 1 the Triangle groups have can be described with the following finite representation:

 Triangle(l,m,n) = {a,b,c | a^{2} = b^{2} = c^{2} = (ab)^{l} = (bc)^{m} = (ca)^{n} = 1}

Reference

Gross, Jonathan L.; Tucker, Thomas W. (2001), "6.2.8 Triangle Groups", Topological graph theory, Courier Dover Publications

Computation

 /*Use the ApCoCoA package ncpoly.*/
 
 // set the variables l,m,n
 // Note that l,m,n have to be greater than 1
 MEMORY.L:=3;
 MEMORY.M:=3;
 MEMORY.N:=3;
 Use ZZ/(2)[a,b,c];
 NC.SetOrdering("LLEX");
 Define CreateRelationsTriangle()
   Relations:=[];
   
   // add the relation a^2 = b^2 = c^2 = 1
   Append(Relations,[[a^2],[1]]);
   Append(Relations,[[b^2],[1]]);
   Append(Relations,[[c^2],[1]]);
   
   // add the relation (ab)^l = 1
   RelationBuffer1:=[];
   For Index0:= 1 To MEMORY.L Do
     Append(RelationBuffer1,a);
     Append(RelationBuffer1,b);
   EndFor;
   Append(Relations,[RelationBuffer1,[1]]);
   
   // add the relation (bc)^m = 1
   RelationBuffer2:=[];
   For Index1:= 1 To MEMORY.M Do
     Append(RelationBuffer2,b);
     Append(RelationBuffer2,c);
   EndFor;
   Append(Relations,[RelationBuffer2,[1]]);
   
   // add the relation (ca)^n = 1
   RelationBuffer3:=[];
   For Index2:= 1 To MEMORY.N Do
     Append(RelationBuffer3,c);
     Append(RelationBuffer3,a);
   EndFor;
   Append(Relations,[RelationBuffer3,[1]]);
   Return Relations;
 EndDefine;
 
 Relations:=CreateRelationsTriangle();
 GB:=NC.GB(Relations);