ApCoCoA-1:Symmetric groups
From ApCoCoAWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Description
The elements of the symmetric group S_n are all permutations of a finite set of n symbols. The group operation can be seen as a bijective function from the set of symbols to itself. The order of the group is n! since there are n! different permutations. An efficient finite group representation is given by:
S_n = <a_{1},..,a_{n-1} | a_{i}^2 = 1, a_{i}a_{j} = a_{j}a_{i} for j != i +/- 1, (a_{i}a_{i+1})^3 = 1>
Reference
Cameron, Peter J., Permutation Groups, London Mathematical Society Student Texts 45, Cambridge University Press, 1999
Computation
/*Use the ApCoCoA package ncpoly.*/ // Number of symmetric group MEMORY.N:=5; Use ZZ/(2)[a[1..(MEMORY.N-1)]]; NC.SetOrdering("LLEX"); Define CreateRelationsSymmetric() Relations:=[]; // add the relations (a_i)^2 = 1 For Index1 := 1 To MEMORY.N-1 Do Append(Relations,[[a[Index1]^2],[1]]); EndFor; // add the relations a_{i}a_{j} = a_{j}a_{i} for j != i +/- 1 For Index2 := 1 To MEMORY.N-1 Do For Index3 := Index2 + 2 To MEMORY.N-1 Do Append(Relations,[[a[Index2],a[Index3]],[a[Index3],a[Index2]]]); EndFor; EndFor; // add the relations (a_{i}a_{i+1})^3 = 1 For Index4 := 1 To MEMORY.N-2 Do Append(Relations,[[a[Index4],a[Index4+1],a[Index4],a[Index4+1],a[Index4],a[Index4+1]],[1]]); EndFor; Return Relations; EndDefine; Relations:=CreateRelationsSymmetric(); Gb:=NC.GB(Relations);
Example in Symbolic Data Format
<FREEALGEBRA createdAt="2014-03-11" createdBy="strohmeier"> <vars>a1,a2,a3,a4</vars> <basis> <ncpoly>a1^2-1</ncpoly> <ncpoly>a2^2-1</ncpoly> <ncpoly>a3^2-1</ncpoly> <ncpoly>a4^2-1</ncpoly> <ncpoly>a1*a3-a3*a1</ncpoly> <ncpoly>a1*a4-a4*a1</ncpoly> <ncpoly>a2*a4-a4*a2</ncpoly> <ncpoly>(a1*a2)^3-1</ncpoly> <ncpoly>(a2*a3)^3-1</ncpoly> <ncpoly>(a3*a4)^3-1</ncpoly> </basis> <Comment>Symmetric_group_5</Comment> </FREEALGEBRA>