# Permutations and centralizers in Mathematica

I had a fleeting thought about how little I use group theory when I realize I used it just this week.

A couple days ago I needed to know which permutations of 4 elements commute with reversal. If r takes a sequence and reverses it, I need to find all permutations p such that pr = rp.

In group theory jargon, the group of all permutations of 4 elements is the symmetric group S4. The subgroup of elements that commute with r is the centralizer of r. So my task was to find the centralizer of r in S4. How do I pose this task to Mathematica?

Mathematica represents permutations as disjoint cycles. The permutation r is represented as

`    Cycles[{{4, 1}, {2, 3}}]`

because swapping the first and last elements, then swapping the middle two elements, reverses a list of four elements.

To find the centralizer of r I asked Mathematica

`    GroupCentralizer[SymmetricGroup[4], Cycles[{{4, 1}, {2, 3}}]]`

This returns

`    PermutationGroup[{Cycles[{{1, 4}}], Cycles[{{2, 3}}], Cycles[{{1, 2}, {3, 4}}]}]`

This does list the permutations that commute with r but rather the generators of the group of such permutations. If we ask for the elements of the group above with

`    GroupElements[%]`

this returns

```    {Cycles[{}],
Cycles[{{2, 3}}],
Cycles[{{1, 2}, {3, 4}}],
Cycles[{{1, 2, 4, 3}}],
Cycles[{{1, 3, 4, 2}}],
Cycles[{{1, 3}, {2, 4}}],
Cycles[{{1, 4}}],
Cycles[{{1, 4}, {2, 3}}]}
```

I use basic group theory and other algebra all the time, but I don’t think of it that way. In this example, I had a question about permutations, and it only occurred to me later that I could phrase my question in the vocabulary of group theory. I use ideas from algebra more often than I use the vocabulary of algebra.