ApCoCoA-1:Triangle groups
From ApCoCoAWiki
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);