ApCoCoA-1:OrdinaryTetrahedron groups
From ApCoCoAWiki
Description
An Ordinary Tetrahedron group is a group with a representation of the form
G(e_1,e_2,e_3,f_1,f_2,f_3) = <x,y,z | x^{e_1} = y^{e_2} = z^{e_3} = (xy^{-1})^{f_1} = (yz^{-1})^{f_2} = (zx^{-1})^{f_3} = 1>
(Reference: Edjvet, Rosenberger, Stille, Thomas, "On certain generalized tetrahedon groups", Computational And Geometric Aspects Of Modern Algebra)
Computation
/*Use the ApCoCoA package ncpoly.*/ // Variables of Ordinary Tetrahedon group MEMORY.E1:=3; MEMORY.E2:=3; MEMORY.E3:=3; MEMORY.F1:=3; MEMORY.F2:=3; MEMORY.F3:=3; // a invers to d and b invers to e and c invers to f Use ZZ/(2)[x,y,z]; NC.SetOrdering("LLEX"); Define CreateRelationsDicyclic() Relations:=[]; If MEMORY.E1 < 2 Or MEMORY.E2 < 2 Or MEMORY.E3 < 2 Or MEMORY.F1 < 2 Or MEMORY.F2 < 2 Or MEMORY.F3 < 2 Then Output:="Wrong Input! Please check that E_i and F_i are greater than 1"; Print(Output); Else // add the relations x^{e_1} = 1, y^{e_2} = 1 and z^{e_3} = 1 Append(Relations,[[x^(MEMORY.E1)],[1]]); Append(Relations,[[y^(MEMORY.E2)],[1]]); Append(Relations,[[z^(MEMORY.E3)],[1]]); // add the relation (xy^{-1})^{f_1} RelationA:=[]; For Index1 := 1 To MEMORY.F1 Do Append(RelationA,x); Append(RelationA,y^(MEMORY.E2-1)); EndFor; Append(Relations,[RelationA,[1]]); // add the relation (yz^{-1})^{f_2} RelationB:=[]; For Index2 := 1 To MEMORY.F2 Do Append(RelationB,y); Append(RelationB,z^(MEMORY.E3-1)); EndFor; Append(Relations,[RelationB,[1]]); // add the relation (zx^{-1})^{f_3} RelationC:=[]; For Index3 := 1 To MEMORY.F3 Do Append(RelationC,z); Append(RelationC,x^(MEMORY.E1-1)); EndFor; Append(Relations,[RelationC,[1]]); EndIf; Return Relations; EndDefine; Relations:=CreateRelationsDicyclic(); Relations; If Size(Relations) > 0 Then GB:=NC.GB(Relations,31,1,100,1000); Size(GB); EndIf;