({{, (RefLink[PermutationGroup, paclet:ref/PermutationGroup])[{(Subscript[perm, 1]),…,(Subscript[perm, n])}] 
represents the group generated by multiplication of the permutations (Subscript[perm, 1]),…,(Subscript[perm, n]).}})

OpenersNotesSection(Spacer1)Details

The generating permutations (Subscript[perm, i]) must be given in disjoint cyclic form, with head (RefLink[Cycles, paclet:ref/Cycles]).

Properties of a permutation group are typically computed by constructing a strong generating set representation of the group using the Schreier–Sims algorithm.

OpenersPrimaryExamplesSection(Spacer1)Examples  (9)

OpenersExampleSection0(Spacer1)Basic Examples  (1)

A permutation group defined by two generators:

PermutationGroup[{Cycles[{{2,10},{4,11},{5,7}}],Cycles[{{1,4,3},{2,5,6}}]}]

Compute its order:

GroupOrder[%]

OpenersExampleSection1(Spacer1)Scope  (3)

An empty list of generators represents the identity (or trivial, or neutral) group:

GroupElements[PermutationGroup[{}]]

Find the order of a group generated by two permutations:

GroupOrder[PermutationGroup[{Cycles[{{1,18,25,8,11,33,45,34,19,39,4,35,46,37,10,48,7,31,6,42,36,15,29},{2,21,14,38,26,24,41,22,12,49},{3,28,20,50,43,23,9,5,16,44,30,27,17},{13,40,32,47}}],Cycles[{{1,5,4,9,10,6},{2,7,8}}]}]]

Test the equality of permutation groups with the same support but possibly generated by different permutations:

PermutationGroup[{Cycles[{{1,4}}],Cycles[{{1,2,3,4,5}}]}]==PermutationGroup[{Cycles[{{1,2}}],Cycles[{{2,3}}],Cycles[{{3,4}}],Cycles[{{4,5}}]}]

They are different as Wolfram Language expressions:

PermutationGroup[{Cycles[{{1,4}}],Cycles[{{1,2,3,4,5}}]}]===PermutationGroup[{Cycles[{{1,2}}],Cycles[{{2,3}}],Cycles[{{3,4}}],Cycles[{{4,5}}]}]

OpenersExampleSection3(Spacer1)Applications  (1)

This is the group of all rotations and reflections of a regular n-sided polygon, the dihedral (Subscript[Dih, n]) group, for n=8. It can be generated by a rotation of an angle 2π/n and a reflection along an axis through a vertex:

dihedral8=GroupElements[PermutationGroup[{Cycles[{{1,2,3,4,5,6,7,8}}],Cycles[{{1,8},{2,7},{3,6},{4,5}}]}]]

Construct the octagon corresponding to each group element:

octagon[perm_]:=With[{list=PermutationList[perm,8]},Graph[Thread[list->RotateLeft[list]],VertexLabels->Placed["Name",Center],VertexSize->0.4,ImageSize->100]]

This is the original polygon and its seven rotations. Numbers increase counterclockwise:

octagon/@dihedral8[[{1,4,6,8,10,12,14,15}]]

This is the polygon reflected along the bisection 1–5 and its seven rotations. Numbers increase clockwise:

octagon/@dihedral8[[{2,3,5,7,9,11,13,16}]]

OpenersExampleSection4(Spacer1)Properties & Relations  (3)

Explicit representation of a named group:

PermutationGroup[GroupGenerators[AlternatingGroup[9]]]

Generate the symmetric group of degree n using n-1 transpositions:

PermutationGroup[Table[Cycles[{{1,i}}],{i,2,15}]]==SymmetricGroup[15]

Generate the alternating group of degree n using n-2 generators:

PermutationGroup[Table[Cycles[{{1,2,i}}],{i,3,15}]]==AlternatingGroup[15]

OpenersExampleSection5(Spacer1)Neat Examples  (1)

The moves of a Rubik's cube form a group. Number the moving facelets from 1 to 48:

These are the six basic rotations:

rot1=Cycles[{{1,3,8,6},{2,5,7,4},{9,48,15,12},{10,47,16,13},{11,46,17,14}}];
rot2=Cycles[{{6,15,35,26},{7,22,34,19},{8,30,33,11},{12,14,29,27},{13,21,28,20}}];
rot3=Cycles[{{1,12,33,41},{4,20,36,44},{6,27,38,46},{9,11,26,24},{10,19,25,18}}];
rot4=Cycles[{{1,24,40,17},{2,18,39,23},{3,9,38,32},{41,43,48,46},{42,45,47,44}}];
rot5=Cycles[{{3,43,35,14},{5,45,37,21},{8,48,40,29},{15,17,32,30},{16,23,31,22}}];
rot6=Cycles[{{24,27,30,43},{25,28,31,42},{26,29,32,41},{33,35,40,38},{34,37,39,36}}];
RubikGroup=PermutationGroup[{rot1,rot2,rot3,rot4,rot5,rot6}];

Group order:

GroupOrder[RubikGroup]

Swapping two neighbor edge facelets is not allowed:

GroupElementQ[RubikGroup,Cycles[{{2,47}}]]

Simultaneous swaps of two edge pairs is allowed:

GroupElementQ[RubikGroup,Cycles[{{2,47},{31,37}}]]

This is the superflip move, which switches all edge pairs simultaneously without changing any corner:

superflip=Cycles[{{2,47},{4,10},{7,13},{5,16},{20,19},{21,22},{28,34},{18,44},{25,36},{45,23},{42,39},{31,37}}];

GroupElementQ[RubikGroup,superflip]

Edges and corners cannot be mixed (as the action of the group on the cube is not transitive), but any two corners or any two edges can be swapped:

GroupOrbits[RubikGroup]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[Cycles, paclet:ref/Cycles])  ▪  (RefLink[GroupOrder, paclet:ref/GroupOrder])  ▪  (RefLink[GroupElements, paclet:ref/GroupElements])  ▪  (RefLink[GroupElementQ, paclet:ref/GroupElementQ])  ▪  (RefLink[GroupStabilizerChain, paclet:ref/GroupStabilizerChain])}})}})

({{DocumentationFooterIconsRelatedTutorial.png, ({{Tutorials}, {▪(RefLinkPlain[Permutations, paclet:tutorial/Permutations])}, {▪(RefLinkPlain[Permutation Groups, paclet:tutorial/PermutationGroups])}, {▪(RefLinkPlain[Group Theory Algorithms, paclet:tutorial/GroupTheoryAlgorithms])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Group Theory, paclet:guide/GroupTheory])}, {▪(RefLinkPlain[Discrete Mathematics, paclet:guide/DiscreteMathematics])}})}})