MATH-322 · Lesson 11 of 12 · 23 min

Group actions, orbits and stabilizers

Groups were first studied as collections of symmetries: permutations of roots, motions of figures. A group action restores that viewpoint while keeping the abstract theory. It describes a group moving the points of a set around, and it provides the single most effective tool in finite group theory: the orbit–stabilizer theorem. In this lesson we use it to count the rotations of a cube without listing them, prove that groups of prime power order have nontrivial centres, prove Cauchy's theorem, and state Sylow's theorems.

Definition and examples

An action of a group \(G\) on a set \(X\) is a rule assigning to each \(g \in G\) and \(x \in X\) an element \(g \cdot x \in X\), such that

\[ e \cdot x = x \quad \text{and} \quad g \cdot (h \cdot x) = (gh) \cdot x \quad \text{for all } g, h \in G,\ x \in X. \]

The second condition says that acting by \(h\) and then by \(g\) is the same as acting by the product \(gh\). Each \(g\) then gives a bijection \(x \mapsto g \cdot x\) of \(X\), with inverse given by \(g^{-1}\), and the map \(G \to \operatorname{Sym}(X)\) sending \(g\) to that bijection is a homomorphism. Conversely any homomorphism \(G \to \operatorname{Sym}(X)\) defines an action. So an action is the same thing as a homomorphism into a permutation group, called a permutation representation of \(G\).

  • \(S_n\) acts on \(\{1, \dots, n\}\) by \(\sigma \cdot i = \sigma(i)\).
  • \(D_n\) acts on the vertices of the \(n\)-gon, on its edges, on its diagonals, and on the points of the plane.
  • The rotation group of a cube acts on its 6 faces, 8 vertices, 12 edges and 4 long diagonals.
  • Any group acts on itself by left multiplication, \(g \cdot x = gx\). This is the action behind Cayley's theorem.
  • Any group acts on itself by conjugation, \(g \cdot x = gxg^{-1}\).
  • For \(H \le G\), the group \(G\) acts on the set \(G/H\) of left cosets by \(g \cdot aH = gaH\).
  • \(GL_n(\mathbb{R})\) acts on \(\mathbb{R}^n\) by matrix multiplication, and on the set of lines through the origin.

Orbits and stabilizers

The orbit of \(x \in X\) is \(Gx = \{g \cdot x : g \in G\}\), all the places \(x\) can be moved to. The stabilizer of \(x\) is \(G_x = \{g \in G : g \cdot x = x\}\), the elements that leave \(x\) where it is.

Theorem. The orbits partition \(X\), and each stabilizer \(G_x\) is a subgroup of \(G\).

Proof: define \(x \sim y\) if \(y = g \cdot x\) for some \(g\). It is reflexive (\(g = e\)), symmetric (use \(g^{-1}\)) and transitive (if \(y = g \cdot x\) and \(z = h \cdot y\) then \(z = (hg) \cdot x\)), so its classes, the orbits, partition \(X\). For the stabilizer, \(e \in G_x\), and if \(g, h \in G_x\) then \(gh^{-1} \cdot x = g \cdot (h^{-1} \cdot x) = g \cdot x = x\), since \(h \cdot x = x\) gives \(x = h^{-1} \cdot x\).

An action with a single orbit is transitive. For the conjugation action, the orbits are the conjugacy classes and the stabilizer of \(x\) is its centralizer \(C(x)\). For the action on \(G/H\), the action is transitive and the stabilizer of the coset \(H\) is \(H\) itself.

A square with its four mirror lines dashed. Three point orbits under the dihedral group D4 are marked: eight blue dots in general position, one in each of the eight triangles cut out by the mirrors; four gold dots on the diagonals; and a single red dot at the middle point. A key gives the orbit sizes 8, 4 and 1 with stabilizer sizes 1, 2 and 8.
Orbits of D4 acting on points of a square: a point on a mirror line has a stabilizer of order 2 and an orbit of 4; orbit size times stabilizer size is always 8

The orbit–stabilizer theorem

Theorem (orbit–stabilizer). Let a finite group \(G\) act on \(X\) and let \(x \in X\). Then

\[ |Gx| = [G : G_x], \qquad \text{so} \qquad |G| = |Gx| \cdot |G_x|. \]

Proof: define \(f : G/G_x \to Gx\) by \(f(gG_x) = g \cdot x\). For cosets \(gG_x\) and \(hG_x\): \(g \cdot x = h \cdot x \iff h^{-1}g \cdot x = x \iff h^{-1}g \in G_x \iff gG_x = hG_x\). Read in one direction this shows \(f\) is well defined; in the other, that it is one-to-one. It is onto by the definition of the orbit. So the number of points in the orbit equals the number of cosets of the stabilizer, and Lagrange's theorem gives the second form.

The theorem turns counting group elements into counting positions. In words: the number of symmetries equals the number of places a point can go times the number of symmetries that keep it in place.

Worked problem

The rotations of the Platonic solids

Find the number of rotational symmetries of a cube, a regular tetrahedron and a regular dodecahedron.

Show solution
  1. Cube: rotations act transitively on the 6 faces (any face can be turned to the top). The rotations fixing the top face are the 4 rotations about the vertical axis. So there are \(6 \times 4 = 24\) rotations.
  2. Check with vertices: the 8 vertices form one orbit, and the stabilizer of a vertex is the 3 rotations about the long diagonal through it; \(8 \times 3 = 24\). With edges: \(12 \times 2 = 24\).
  3. Tetrahedron: 4 faces, each fixed by 3 rotations, giving \(4 \times 3 = 12\).
  4. Dodecahedron: 12 pentagonal faces, each fixed by 5 rotations, giving \(12 \times 5 = 60\).

Answer: 24, 12 and 60. These groups are isomorphic to \(S_4\), \(A_4\) and \(A_5\) respectively.

The isomorphism for the cube comes from another action: the 24 rotations permute the 4 long diagonals, giving a homomorphism to \(S_4\). Its kernel is trivial (running through the kinds of rotation shows that only the identity sends every long diagonal to itself), so it is one-to-one between groups of order 24, hence an isomorphism. Similarly the 60 rotations of the dodecahedron permute five inscribed cubes, which identifies the group with \(A_5\).

Actions on cosets

The action of \(G\) on the cosets of a subgroup gives a quick way to find normal subgroups. Suppose \(H \le G\) has index \(n\). Then \(G\) acts on the \(n\) cosets of \(H\) by left multiplication, which is a homomorphism \(\rho : G \to S_n\). Its kernel \(K\) is normal in \(G\), and it lies inside \(H\), because an element fixing the coset \(H\) satisfies \(gH = H\), that is \(g \in H\). By the first isomorphism theorem \(G/K\) is isomorphic to a subgroup of \(S_n\), so \([G : K]\) divides \(n!\).

Theorem. If \(G\) is finite and \(H\) is a subgroup whose index \(p\) is the smallest prime dividing \(|G|\), then \(H\) is normal.

Proof: with \(K\) as above, \([G : K]\) divides \(p!\) and also divides \(|G|\). Every prime factor of \([G:K]\) is therefore at most \(p\), and no prime smaller than \(p\) divides \(|G|\), so \([G : K]\) is a power of \(p\) dividing \(p!\), which means it is 1 or \(p\). But \(K \le H\) and \([G : H] = p\), so \([G : K] \ge p\). Hence \([G : K] = p\), so \(K = H\), and \(H\) is normal, being a kernel.

The case \(p = 2\) recovers the fact that subgroups of index 2 are normal. The same idea shows that a simple group with a subgroup of index \(n\) is isomorphic to a subgroup of \(S_n\), since the kernel must be trivial; for instance \(A_5\) has no subgroup of index 2, 3 or 4, because 60 does not divide \(2!\), \(3!\) or \(4!\).

The class equation and p-groups

Apply the orbit decomposition to the conjugation action of a finite group on itself. The orbits are the conjugacy classes; an element forms a class by itself exactly when it is central. Choosing one representative \(x_1, \dots, x_k\) from each class with more than one element, and using \(|\text{class of } x| = [G : C(x)]\), we get the class equation

\[ |G| = |Z(G)| + \sum_{i=1}^{k} [G : C(x_i)]. \]

For \(D_4\) it reads \(8 = 2 + 2 + 2 + 2\): the centre \(\{e, r^2\}\), and classes \(\{r, r^3\}\), \(\{s, r^2s\}\), \(\{rs, r^3s\}\). For \(S_4\) the classes are the cycle types, \(24 = 1 + 6 + 3 + 8 + 6\).

A \(p\)-group is a group whose order is a power of a prime \(p\).

Theorem. A nontrivial finite \(p\)-group has a nontrivial centre.

Proof: let \(|G| = p^n\) with \(n \ge 1\). Each term \([G : C(x_i)]\) in the class equation divides \(p^n\) and is greater than 1, so it is a multiple of \(p\). Since \(|G|\) is also a multiple of \(p\), so is \(|Z(G)|\). As \(|Z(G)| \ge 1\), it is at least \(p\).

This is the result promised in lesson 9, which showed that it implies every group of order \(p^2\) is abelian.

Cauchy's theorem

Theorem (Cauchy, 1845). If a prime \(p\) divides \(|G|\), then \(G\) has an element of order \(p\).

Proof (McKay, 1959): let \(X\) be the set of \(p\)-tuples \((a_1, \dots, a_p)\) of elements of \(G\) with \(a_1a_2\cdots a_p = e\). The first \(p - 1\) entries can be chosen freely and then \(a_p\) is determined, so \(|X| = |G|^{p-1}\), a multiple of \(p\). The cyclic group \(\mathbb{Z}_p\) acts on \(X\) by rotating tuples: \((a_1, \dots, a_p) \mapsto (a_2, \dots, a_p, a_1)\), which stays in \(X\) because \(a_1 \cdots a_p = e\) implies \(a_2 \cdots a_p a_1 = a_1^{-1}ea_1 = e\). By orbit–stabilizer, each orbit has size 1 or \(p\). An orbit of size 1 is a constant tuple \((a, \dots, a)\) with \(a^p = e\). Since \(|X|\) and the sizes of the large orbits are multiples of \(p\), the number of orbits of size 1 is a multiple of \(p\) too. One of them is \((e, \dots, e)\), so there are at least \(p\) of them, and any other gives an element \(a \ne e\) with \(a^p = e\), which has order \(p\).

Sylow's theorems

Ludwig Sylow proved in 1872 a far-reaching partial converse of Lagrange's theorem. Write \(|G| = p^k m\) with \(p\) prime and \(p \nmid m\). A subgroup of order \(p^k\) is a Sylow \(p\)-subgroup.

  • First theorem: Sylow \(p\)-subgroups exist.
  • Second theorem: any two Sylow \(p\)-subgroups are conjugate.
  • Third theorem: the number \(n_p\) of Sylow \(p\)-subgroups divides \(m\) and satisfies \(n_p \equiv 1 \pmod p\).

All three are proved with group actions: \(G\) acting by conjugation on its Sylow subgroups, or by left multiplication on subsets of size \(p^k\). We use them here only as a tool. For a group of order 15, \(n_5\) divides 3 and is 1 mod 5, so \(n_5 = 1\); \(n_3\) divides 5 and is 1 mod 3, so \(n_3 = 1\). Each unique Sylow subgroup is normal (its conjugates are Sylow subgroups too), they meet trivially, and lesson 9's direct product criterion gives \(G \cong \mathbb{Z}_5 \times \mathbb{Z}_3 \cong \mathbb{Z}_{15}\). Every group of order 15 is cyclic. In \(S_4\), of order \(24 = 8 \cdot 3\), there are \(n_3 = 4\) Sylow 3-subgroups (one for each set of three points), consistent with \(4 \mid 8\) and \(4 \equiv 1 \pmod 3\).

The code below realizes the cube's rotation group as permutations of its six faces, generated by two quarter turns, and checks orbit–stabilizer on faces, vertices and edges. It then computes the class equation of \(S_4\).

The rotation group of the cube by orbit–stabilizer, and the class equation of S4
from itertools import permutations

def compose(a, b):
    return tuple(a[b[i]] for i in range(len(b)))

def generate(gens):
    e = tuple(range(len(gens[0])))
    G, frontier = {e}, [e]
    while frontier:
        new = []
        for g in frontier:
            for h in gens:
                x = compose(h, g)
                if x not in G:
                    G.add(x); new.append(x)
        frontier = new
    return G

# cube with vertices (x, y, z) in {0,1}^3; a rotation is a map on coordinates
verts = [(x, y, z) for x in (0, 1) for y in (0, 1) for z in (0, 1)]
vi = {v: i for i, v in enumerate(verts)}
turn_z = lambda v: (1 - v[1], v[0], v[2])          # quarter turn about the vertical axis
turn_x = lambda v: (v[0], 1 - v[2], v[1])          # quarter turn about a horizontal axis
gens = [tuple(vi[f(v)] for v in verts) for f in (turn_z, turn_x)]
G = generate(gens)
print("rotations of the cube:", len(G))

edges = [frozenset((a, b)) for a in range(8) for b in range(a + 1, 8)
         if sum(p != q for p, q in zip(verts[a], verts[b])) == 1]
faces = [frozenset(i for i, v in enumerate(verts) if v[k] == c) for k in range(3) for c in (0, 1)]
for name, objs in [("vertex", list(range(8))), ("edge", edges), ("face", faces)]:
    act = (lambda g, o: g[o]) if name == "vertex" else (lambda g, o: frozenset(g[i] for i in o))
    x = objs[0]
    orbit = {act(g, x) for g in G}
    stab = [g for g in G if act(g, x) == x]
    print(f"{name}: orbit {len(orbit)} x stabilizer {len(stab)} = {len(orbit) * len(stab)}")

S4 = list(permutations(range(4)))
def inverse(a):
    inv = [0] * len(a)
    for i, x in enumerate(a):
        inv[x] = i
    return tuple(inv)
seen, sizes = set(), []
for a in S4:
    if a not in seen:
        cls = {compose(compose(g, a), inverse(g)) for g in S4}
        seen |= cls; sizes.append(len(cls))
print("class equation of S4: 24 =", " + ".join(map(str, sorted(sizes))))
Output
rotations of the cube: 24
vertex: orbit 8 x stabilizer 3 = 24
edge: orbit 12 x stabilizer 2 = 24
face: orbit 6 x stabilizer 4 = 24
class equation of S4: 24 = 1 + 3 + 6 + 6 + 8

Common mistakes

  • MistakeWriting the action rule as \(g \cdot (h \cdot x) = (hg) \cdot x\).

    InsteadFor a left action it is \((gh) \cdot x\): act by \(h\) first, then \(g\).

  • MistakeThinking the stabilizer is normal.

    InsteadIt is a subgroup, but stabilizers of points in the same orbit are conjugate, \(G_{g \cdot x} = gG_xg^{-1}\), and usually not equal.

  • MistakeCounting the symmetries of a cube as \(6 \times 4\) and including reflections.

    Instead\(6 \times 4 = 24\) counts rotations; with reflections there are 48.

  • MistakeExpecting every orbit to have the same size.

    InsteadOrbit sizes vary from point to point; each divides \(|G|\).

  • MistakeAssuming the class equation includes the centre as one class.

    InsteadEach central element is a class of size 1 on its own; \(|Z(G)|\) counts all of them.

Summary and key terms

  • An action satisfies \(e \cdot x = x\) and \(g \cdot (h \cdot x) = (gh) \cdot x\); it is a homomorphism \(G \to \operatorname{Sym}(X)\).
  • Orbits partition \(X\); stabilizers are subgroups.
  • Orbit–stabilizer: \(|G| = |Gx| \cdot |G_x|\).
  • The cube, tetrahedron and dodecahedron have 24, 12 and 60 rotations.
  • Class equation: \(|G| = |Z(G)| + \sum [G : C(x_i)]\); nontrivial \(p\)-groups have nontrivial centres.
  • Cauchy: a prime dividing the order is the order of an element. Sylow: subgroups of maximal prime power order exist, are conjugate and are counted by congruences.
group action
A rule \(g \cdot x\) with \(e \cdot x = x\) and \(g \cdot (h \cdot x) = (gh) \cdot x\).
orbit
\(Gx\), the set of images of \(x\).
stabilizer
\(G_x\), the elements fixing \(x\).
transitive action
An action with a single orbit.
orbit–stabilizer theorem
\(|Gx| = [G : G_x]\).
class equation
The decomposition of the order of a group into sizes of conjugacy classes.
p-group
A group of prime power order.
Sylow subgroup
A subgroup of order \(p^k\) where \(p^k\) is the largest power of \(p\) dividing \(|G|\).

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. How many rotational symmetries does a regular octahedron have?

    Show answer

    8 faces, each fixed by 3 rotations: 24, the same group as the cube.

  2. In \(S_5\), what is the size of the stabilizer of the point 1?

    Show answer

    The orbit is all 5 points, so the stabilizer has \(120/5 = 24\) elements; it is a copy of \(S_4\).

  3. Find the size of the conjugacy class of \((1\,2\,3)\) in \(S_4\).

    Show answer

    There are 8 three-cycles in \(S_4\), all conjugate, so 8; the centralizer has order 3.

  4. Write the class equation of \(D_5\).

    Show answer

    \(10 = 1 + 2 + 2 + 5\): the identity, \(\{r, r^4\}\), \(\{r^2, r^3\}\) and the five reflections.

  5. How many Sylow 5-subgroups can a group of order 20 have?

    Show answer

    \(n_5\) divides 4 and is 1 mod 5, so \(n_5 = 1\).

  6. Show that a group of order 25 is abelian.

    Show answer

    It is a group of order \(p^2\) with \(p = 5\), and such groups are abelian.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz