I have got a permutation group:

$(\{(e,((1, 4),(2,6),(3,5)),((1, 6),(2,5),(3,4)),((1, 5),(2,4),(3,6)),((1, 3,2),(4,6,5)),((1,2,3),(4,5,6)),((1, 4),(2,5),(3,6)),((1, 3),(4,6)),((2, 3),(5,6)),((1, 2),(4,5)),(1,6,2,4,3,5),(1,5,3,4,2,6)\},\circ)$

I want to create a group table for this and can't seem to find how to achieve it.

In my mind I can see that I need to pass each permutation to Mathematica and then get it to simply generate the group table however achieving this does not seem that simple!

I also would like the group table to match the ordering of the permutations above rather than Mathematica's default ordering, the permutations to be labelled e,a,b,c,d,f,r,s,t,u,v,w respectively and the order of composition of permutations to be column * row not Mathematica's default row * column.

  • 2
    $\begingroup$ It would help if you used Mathematica syntax. For example: {Cycles[{}], Cycles[{{1, 4}, {2, 6}, {3, 5}}], Cycles[{{1, 6}, {2, 5}, {3, 4}}], ...}. $\endgroup$
    – Carl Woll
    Mar 5, 2018 at 22:39
  • $\begingroup$ Thanks for that. I decided to put it in LaTeX rather than Mathematica syntax as I kept getting an error in Mathematica and thought it might be related to my cycles and {}'s. $\endgroup$ Mar 6, 2018 at 20:19

1 Answer 1


I copied the string you gave and manipulated it a bit (inserted some parentheses).

This is the GroupMultiplicationTable generated by Mathematica:

yourelements = 
  Cycles /@ 
(2,3),(5,6)),((1,2),(4,5)),((1,6,2,4,3,5)),((1,5,3,4,2,6))}", {"(" -> 
       "{", ")" -> "}", "e" -> "{}"}]];
group = PermutationGroup[yourelements];
multiplicationtable = Partition[
 TableHeadings -> {GroupElements[group], GroupElements[group]}]

Let's introduce some naming convention:

namingconventions = AssociationThread[yourelements, σ /@ Range[Length[yourelements]]];

This finds the reording for the translation of Mathematica's output to your desired ordering and applies it to multiplicationtable. Finally, we transpose the matrix in order to swap rows for columns:

perm = GroupElementPosition[group, yourelements];
σtable =
     Lookup[namingconventions, Flatten[multiplicationtable]],
     ][[perm, perm]];
TableForm[σtable, TableHeadings -> {Values[namingconventions], Values[namingconventions]}]

You should be well equipped to dive into that on your own, now. Have also a look at other Mathematica commands starting with Permutation and Group.

  • $\begingroup$ Thanks for that. I had been trying to generate the table for ages. Do you know a way that I can easily reorder the columns and rows so that row/column 12 corresponds to my 12th permutation {{1,5,3,4,2,6}} etc.? $\endgroup$ Mar 6, 2018 at 20:16
  • $\begingroup$ I used the GroupElementPosition command to check the ordering of the elements but they don't seem to match. My code is: GroupElementPosition[group, {Cycles[{}], Cycles[{{1,4},{2,6},{3,5}}],Cycles[{{1, 6},{2,5},{3,4}}],Cycles[{{1, 5},{2,4},{3,6}}],Cycles[{{1, 3,2},{4,6,5}}],Cycles[{{1,2,3},{4,5,6}}],Cycles[{{1, 4},{2,5},{3,6}}],Cycles[{{1, 3},{4,6}}],Cycles[{{2, 3},{5,6}}],Cycles[{{1, 2} ,{4,5}}],Cycles[{{1, 6,2,4,3,5}}],Cycles[{{1,5,3,4,2,6}}]}] . What do you mean by group[[1]] and where are you getting my prescribed ordering from? $\endgroup$ Mar 7, 2018 at 8:57
  • $\begingroup$ Very good point. I fixed that. $\endgroup$ Mar 7, 2018 at 9:02
  • $\begingroup$ How does Mathematica order it's composition of elements? If I read the group table entry for 11*8 as 6 then this seems to match my expectations whereas 11*8 read as 3 doesn't. $\endgroup$ Mar 7, 2018 at 9:36
  • 1
    $\begingroup$ @Samil, none of these additional requirements were in your original question; please edit your question to include them. $\endgroup$ Mar 7, 2018 at 11:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.