QS = RQ Is All You Need

...to understand the vast majority of representation theory
APS March Meeting 2026 — GDS Short Course on Data Science for Physicists II
Tess Smidt — MIT
tinyurl.com/aps-2026-tutorial-tess

Outline

  • Crash Course — Groups, representations, and irreps
  • Act 1 — The similarity transform \(QS = RQ\) and how to solve it
  • Act 2 — Finding all irreps & decomposing vibrational modes
  • Interlude — Direct sum, tensor product, change of basis
  • Act 3 — Continuous groups, SO(3), spherical harmonics, CG coefficients
  • Act 4 — Equivariant machine learning
  • Act 5 — The unifying picture

Crash Course

Groups, Representations, and Irreps

What is a Group?

A group is a set of elements with a multiplication satisfying four rules:

  • Closure — combining two elements gives another element
  • Associativity — \((ab)c = a(bc)\)
  • Identity — there exists an element \(E\) such that \(Eg = gE = g\)
  • Inverses — every element \(g\) has an inverse \(g^{-1}\)
\(P(3) \cong S_3 \cong D_3\): the 6 symmetries of an equilateral triangle (and the permutations of 3 objects) — identity, 3 mirrors, 2 rotations.

\(P(3)\): Multiplication Table

open graphic ↗

What is a Representation?

A representation maps each group element to a matrix such that matrix multiplication mirrors group multiplication:

\[ D(g_1) \, D(g_2) = D(g_1 g_2) \]
  • The same group can have many representations — different matrices on different vector spaces
  • Representations are not unique: if \(U\) is invertible, \(U D(g) U^{-1}\) is also a valid representation (change of basis)

Representations of \(P(3)\)

Each element as a 3×3 permutation matrix (acting on 3 objects) or a 2×2 rotation/reflection matrix (acting on the plane):

open graphic ↗

Irreducible Representations (Irreps)

Reducible: a change of basis makes all matrices block diagonal simultaneously.
Irreducible (irrep): no such basis exists — cannot be decomposed further. Like prime factors for integers.

\(P(3)\) has exactly three irreps: \(\Gamma_1\) (dim 1), \(\Gamma_1'\) (dim 1), \(\Gamma_2\) (dim 2).   Note: \(1^2 + 1^2 + 2^2 = 6 = |P(3)|\).

open graphic ↗

The Central Question

Given a representation, how do we find the irreps inside it?
And how do we find all irreps of a group in the first place?
The answer: solve a similarity transform equation — \[ S(g) \cdot Q = Q \cdot R(g) \] — and look at the nullspace.

If you know linear algebra, you already know representation theory.

Act 1

The Similarity Transform

The Equation: \(S(g) \cdot Q = Q \cdot R(g)\)

Given two representations \(S(g)\) and \(R(g)\) of the same group, find all matrices \(Q\) satisfying:

\[ S(g) \cdot Q = Q \cdot R(g) \quad \text{for all } g \in G \]
  • This is a similarity transform — a change of basis between \(S\) and \(R\)
  • Each group element gives a linear constraint: \(S(g) Q - Q R(g) = 0\)
  • The matrix \(Q\) is called an intertwiner in representation theory — but the equation is pure linear algebra

The Kronecker Product Trick

The problem: \(Q\) appears on both sides of \(SQ - QR = 0\), multiplied by different matrices. This isn't a standard \(Ax = b\) problem.

Write the \((i,k)\) component in index notation:

\[ \sum_j S_{ij} Q_{jk} - \sum_\ell Q_{i\ell} R_{\ell k} = 0 \]

The two terms sum over different indices of \(Q\): the first over \(j\) (row), the second over \(\ell\) (column).

Goal: rewrite both terms as sums over the same pair of indices \((j, \ell)\), so we can factor out \(Q_{j\ell}\).

Inserting Kronecker Deltas (1/2)

\(\delta_{ab} = 1\) if \(a = b\), \(0\) otherwise. Use it to make both terms sum over \((j, \ell)\):

\[ \sum_j S_{ij} Q_{jk} = \sum_{j,\ell} S_{ij} \, \delta_{k\ell} \, Q_{j\ell} \]

\(\delta_{k\ell}\) forces \(\ell = k\), recovering the original.

\[ \sum_\ell Q_{i\ell} R_{\ell k} = \sum_{j,\ell} \delta_{ij} \, R_{\ell k} \, Q_{j\ell} \]

\(\delta_{ij}\) forces \(j = i\). Scalars commute, so we moved \(Q_{j\ell}\) to the end.

Inserting Kronecker Deltas (2/2)

Now both terms sum over \((j, \ell)\). Combine and factor out \(Q_{j\ell}\):

\[ \sum_{j,\ell} \Big(\underbrace{S_{ij} \, \delta_{k\ell}}_{(S \overset{\text{kr}}{\otimes} I)_{ik,j\ell}} \;-\; \underbrace{\delta_{ij} \, R_{\ell k}}_{(I \overset{\text{kr}}{\otimes} R^T)_{ik,j\ell}}\Big) \, Q_{j\ell} = 0 \]

The 4-index object \(P_{ik,j\ell}\) acts on the 2-index object \(Q_{j\ell}\).

Flatten \((i,k) \to\) row, \((j,\ell) \to\) column — this becomes:

\[ \underbrace{\Big(S \overset{\text{kr}}{\otimes} I - I \overset{\text{kr}}{\otimes} R^T\Big)}_{P(g)} \;\text{vec}(Q) = 0 \]

The Nullspace Problem

For all group elements simultaneously, stack the constraints:

\[ P_\text{all} = \begin{pmatrix} P(g_1) \\ P(g_2) \\ \vdots \end{pmatrix} \qquad \Longrightarrow \qquad \text{solutions} = \ker(P_\text{all}) \]
The complete algorithm:
  1. For each \(g\), build \(P(g) = S(g) \overset{\text{kr}}{\otimes} I - I \overset{\text{kr}}{\otimes} R(g)^T\)
  2. Stack into \(P_\text{all}\)
  3. Find \(\ker(P_\text{all})\) via SVD
  4. Reshape each nullspace vector into a matrix \(Q\)

The Kronecker Product

open graphic ↗

Index Manipulation Walkthrough

open graphic ↗

What the Solution Space Tells You

The dimension of \(\ker(P_\text{all})\) — the number of independent \(Q\) matrices — is extraordinarily informative:

\(\dim \ker\)ConditionMeaning
\(0\)\(S \neq R\)\(S\) and \(R\) are inequivalent
\(1\)\(S = R\)\(S\) is irreducible (Schur's lemma!)
\(> 1\)\(S = R\)\(S\) is reducible — eigenspaces of \(Q\) are the irrep subspaces
\(\geq 1\)\(S \neq R\)\(Q\) is a change of basis: CG coefficients, equivariant map, ...

Schur's Lemma

If \(S\) and \(R\) are both irreducible, then either:
  • \(Q = 0\) — the irreps are inequivalent
  • \(Q \propto I\) — the irreps are equivalent (same irrep, different basis)

This is a consequence of the similarity transform equation — the nullspace is at most 1-dimensional when both sides are irreducible.

For equivariant ML: a linear map \(W\) between inequivalent irreps must be zero; between equivalent irreps it must be a scalar times the identity. This is the origin of the dramatic parameter reduction in equivariant networks.

Act 2

Irreps from Scratch

The Regular Representation

Built directly from the multiplication table:

  • Each group element becomes a basis vector: \(\{|E\rangle, |A\rangle, \ldots\}\)
  • \(D^{\text{reg}}(g)|h\rangle = |gh\rangle\) — permutation matrices of size \(|G| \times |G|\)
  • Contains every irrep, each appearing \(\ell_j\) times: \(\; D^{\text{reg}} \cong \bigoplus_j \ell_j \, \Gamma_j\)

Regular Representation of \(P(3)\)

Each row of the multiplication table encodes a \(6 \times 6\) permutation matrix:

open graphic ↗

Extracting Irreps via \(QS = RQ\)

The decomposition algorithm:

1. Self-similarity: Set \(S = R = D_{\text{reg}}\) and solve for all \(Q\) such that \(D_\text{reg}(g) Q = Q D_\text{reg}(g)\) for all \(g\).
2. Random combination: The solution space (the commutant) has dimension \(\sum_j \ell_j^2\). Take a random linear combination to get a single \(Q_\text{rand}\).
3. Eigendecompose: The eigenspaces of \(Q_\text{rand}\) are (generically) the irreducible subspaces! Each distinct eigenvalue corresponds to one copy of one irrep.
4. Project: Extract the irrep matrices by projecting \(D_\text{reg}\) onto each eigenspace.
We put in only the multiplication table. We got out all irreducible representations.

Decomposition Algorithm

open graphic ↗

Molecular Vibrations — Water

The same equation decomposes vibrational modes. For water (\(C_{2v}\), \(N = 3\)):

Step 1: Build the displacement representation. Each symmetry operation permutes atoms (\(D_\text{perm}\), \(3 \times 3\)) and rotates coordinates (\(D_\text{vec}\), \(3 \times 3\)). The tensor product gives \(9 \times 9\) matrices:
\[ D_\text{disp}(g) = D_\text{perm}(g) \otimes D_\text{vec}(g) \]

Constructing the Permutation Representation

open graphic ↗

The Tensor Product: \(D_\text{perm} \otimes D_\text{vec}\)

open graphic ↗

Project and Decompose

Step 2: Project out translations & rotations. Build vibrational projector \(P^\text{vib} = I - P^\text{trans} - P^\text{rot}\). Extract basis \(Q\) for the vibrational subspace (\(3N{-}6\) dimensions).
Step 3: Build the vibrational representation. \(D_\text{vib}(g) = Q^T \, D_\text{disp}(g) \, Q\) — compact \((3N{-}6) \times (3N{-}6)\) matrices.
Step 4: Decompose into irreps using \(QS = RQ\). Each irrep subspace = a normal mode.
Water: \(\Gamma^\text{vib} = 2A_1 + B_1\) — two symmetric modes (stretch + bend) and one asymmetric stretch.

Water: Vibrational Mode Decomposition

open graphic ↗

Selection Rules & Character Tables

The irrep label of each mode tells you the selection rules — which modes are detectable by which spectroscopy:

\(C_{2v}\)\(E\)\(C_2(z)\)\(\sigma_v(xz)\)\(\sigma_v(yz)\)Linear, rot.Quadratic
\(A_1\)+1+1+1+1\(z\)\(x^2, y^2, z^2\)
\(A_2\)+1+1−1−1\(R_z\)\(xy\)
\(B_1\)+1−1+1−1\(x, R_y\)\(xz\)
\(B_2\)+1−1−1+1\(y, R_x\)\(yz\)
  • IR active if the irrep appears among \((x, y, z)\) — changes in dipole moment
  • Raman active if the irrep appears among the quadratics — changes in polarizability
  • All three vibrational modes of water are both IR and Raman active

Interlude

Three Operations for Building Representations

Three Fundamental Operations

Direct sum (\(\oplus\)): Stack representations into block-diagonal form. Dimension \(m + n\). This is how we decompose representations into irreps.
Tensor product (\(\otimes\)): Kronecker product element-wise: \(D^{(1 \otimes 2)}(g) = D^{(1)}(g) \overset{\text{kr}}{\otimes} D^{(2)}(g)\). Dimension \(m \times n\). Then decompose into irreps.
Change of basis: \(D'(g) = Q \, D(g) \, Q^{-1}\). Finding the right \(Q\) is exactly \(QS = RQ\).

These three operations — applied to generators instead of group elements — carry over directly to continuous groups.

Act 3

Continuous Groups and SO(3)

From Finite Groups to Lie Groups

Continuous groups (Lie groups) like SO(3) have infinitely many elements, but are built from finitely many generators:

\[ g(\vec{\theta}) = e^{i \sum_k \theta_k X_k} \]
  • \(X_k\) are generators (elements of the Lie algebra), \(\vec\theta\) are continuous parameters
  • Matrix exponential: \(\;e^{M} = I + M + \frac{M^2}{2!} + \cdots\)
  • For small \(\epsilon\): \(\;e^{i\epsilon X} \approx I + i\epsilon X\) — infinitesimal transformation
Key insight: A change of basis on group elements is identical to a change of basis on generators. So all our code and intuition carries over unchanged — just stack constraints for generators instead of all group elements.

SO(\(n\)) — Rotation Groups

SO(\(n\)): all \(n \times n\) orthogonal matrices with det = 1. Near the identity, \(R = e^{i\epsilon X} \approx I + i\epsilon X\).

Require orthogonality \(R^T R = I\) to first order:

\[ (I + i\epsilon X)^T(I + i\epsilon X) = I + i\epsilon(X^T + X) + O(\epsilon^2) = I \]

So \(X^T + X = 0\), i.e. generators must be antisymmetric: \(X^T = -X\).

This gives \(n(n{-}1)/2\) independent generators. For SO(3): 3 generators \(L_x, L_y, L_z\).

SO(\(n\)) Generators

open graphic ↗

Building All Irreps from Tensor Products

Start from the vector representation (\(l = 1\)) and tensor-product recursively, decomposing with \(QS = RQ\):

\[ 1 \otimes 1 = 0 \oplus 1 \oplus 2 \]
  • \(l = 0\) (dim 1): scalar   \(l = 1\) (dim 3): vector   \(l = 2\) (dim 5): symmetric traceless tensor
  • Iterate: \(\;2 \otimes 1 = 1 \oplus 2 \oplus 3\),   \(3 \otimes 1 = 2 \oplus 3 \oplus 4\),   ...
Triangle rule (Clebsch-Gordan series): \[ l_1 \otimes l_2 = |l_1 - l_2| \oplus (|l_1 - l_2| + 1) \oplus \cdots \oplus (l_1 + l_2) \] The \(l\)-th irrep has dimension \(2l + 1\).

Clebsch-Gordan Coefficients = Solutions to \(QS = RQ\)

The CG coefficients are exactly the \(Q\) matrices from the similarity transform applied to tensor product decomposition:

\[ \Big(D^{(l_1)}(g) \otimes D^{(l_2)}(g)\Big) \cdot Q = Q \cdot D^{(l_3)}(g) \]
  • \(S = D^{(l_1)} \otimes D^{(l_2)}\) is the tensor product representation
  • \(R = D^{(l_3)}\) is an irrep in the decomposition
  • The solution \(Q\) (shape \((2l_1+1)(2l_2+1) \times (2l_3+1)\)) is a CG matrix
Every Clebsch-Gordan table you have ever looked up is a solution to this equation.

Spherical Harmonics

The spherical harmonics \(Y_l^m(\theta, \phi)\) are the lowest-order polynomials of \((x, y, z)\) that transform as irreps of SO(3):

  • \(l = 0\): constant \(1\) (scalar) — \(s\)-orbitals
  • \(l = 1\): \(\{x, y, z\}\) (vector) — \(p\)-orbitals
  • \(l = 2\): \(\{xy, xz, yz, x^2{-}y^2, 2z^2{-}x^2{-}y^2\}\) — \(d\)-orbitals
  • \(l = 3\): seven cubic polynomials — \(f\)-orbitals
Constructed recursively via tensor products and CG coefficients (solutions to \(QS = RQ\)). They are the angular part of atomic orbital wavefunctions.

Spherical Harmonics

open graphic ↗

Parity, O(3), and Crystal Field Splitting

O(3) = SO(3) \(\times\) \(\{I, -I\}\). Adding inversion doubles the group. Irreps now carry parity \(p = \pm 1\):

  • Even (\(p = +1\)): scalars, \(d\)-orbitals, pseudovectors (\(\mathbf{L} = \mathbf{r} \times \mathbf{p}\))
  • Odd (\(p = -1\)): vectors, \(p\)-orbitals, \(f\)-orbitals

Crystal field splitting — what happens to an O(3) irrep in a lower-symmetry environment?

Take \(S = R = D^{(l=2)}\) restricted to octahedral group \(O_h\), solve \(QS = RQ\):
  • 3D eigenspace \(\to\) \(t_{2g}\) orbitals (\(d_{xy}, d_{xz}, d_{yz}\))
  • 2D eigenspace \(\to\) \(e_g\) orbitals (\(d_{z^2}, d_{x^2-y^2}\))
The crystal field splitting from inorganic chemistry — derived from one equation.

Act 4

Equivariant Machine Learning

Equivariance

A function \(f\) is equivariant if the group action commutes with the function:

\[ f\big(D(g) \cdot \mathbf{x}\big) = D'(g) \cdot f(\mathbf{x}) \quad \text{for all } g \in G \]
Key insight: We only need to build in the symmetry of empty space — e.g. for 3D atomic systems, the full rotation group O(3) and translations (the Euclidean group E(\(n\))). The data itself lowers the symmetry. An equivariant model starts with full symmetry, and the atomic positions in the input break it down to whatever the actual point group is.

This means a single equivariant architecture can handle any molecule, any crystal, any symmetry — no need for different models for \(C_{2v}\) vs. \(T_d\) vs. \(O_h\).

Equivariant Linear Maps & Parameter Reduction

For a linear layer \(\mathbf{y} = W\mathbf{x}\) to be equivariant:

\[ D_\text{out}(g) \cdot W = W \cdot D_\text{in}(g) \quad \text{for all } g \]

This is exactly \(QS = RQ\)! By Schur's lemma:

  • Blocks connecting inequivalent irreps \(\to\) zero
  • Blocks connecting the same irrep \(\to\) scalar \(\times\) identity (1 free parameter)
Example: An equivariant layer mapping \(2 \times (l{=}0) + 2 \times (l{=}1) + 1 \times (l{=}2) \to\) same has only 9 free parameters instead of \(13 \times 13 = 169\) — an 18.8\(\times\) reduction.

Equivariant Linear Map Explorer

Choose the irrep content of input and output and see how Schur's lemma constrains \(W\) under the group \(P(3)\) — the symmetry of a triangle:

open graphic ↗

Equivariant Graph Neural Networks

Modern equivariant GNNs for atomistic simulation (MACE, NequIP, Allegro, BOTNet) are built from three types of operations:

  • Tensor product layers: Combine features using CG coefficients (solutions to \(QS = RQ\))
  • Equivariant linear layers: Weight matrices constrained by \(QS = RQ\)
  • Equivariant non-linearities: Standard point-wise non-linearities (e.g. ReLU) violate equivariance unless the representation is a permutation — equivariant activations require special construction
Important: The similarity transform is solved once, at architecture design time. The CG coefficients and weight constraints are precomputed and baked into the network. After that, the network runs like any other neural network — just with fewer, more structured parameters.

The dramatic parameter reduction (often 10–20\(\times\)) explains why equivariant models achieve state-of-the-art accuracy with far less training data — crucial when each DFT data point costs hours to compute.

Act 5

The Unifying Picture

One Equation, Many Applications

Application\(S\)\(R\)\(Q\) = ?
Rep equivalencerep\(_1\)rep\(_2\)change of basis
Schur's lemmairrepirrep\(\propto\) identity
Irrep decompositionreprepeigenspaces = irreps
Normal modesvib repirrepmode shapes
CG coefficients\(l_1 \otimes l_2\)\(l_3\)CG matrix
Spherical harmonics\(D^{(l+1)}\)\(D^{(l)} \otimes D^{(1)}\)\(Y^{(l+1)}\) projection
Crystal fieldSO(3) irreppoint group irreporbital splitting
Equivariant weights\(D_\text{out}\)\(D_\text{in}\)allowed \(W\) matrices

The Takeaway

Whether you are computing CG coefficients, decomposing vibrational modes, constraining a neural network, or deriving crystal field splittings, you are always doing the same thing:
  1. Set up \(S\) and \(R\)
  2. Build \(P_\text{all} = S \overset{\text{kr}}{\otimes} I - I \overset{\text{kr}}{\otimes} R^T\)
  3. Find \(\ker(P_\text{all})\)
You already know linear algebra.
Representation theory is just knowing which matrices to plug into \(S\) and \(R\).

Resources

  • Tutorial page — notes, slides, and notebook links:
    symm4ml.mit.edu/symm4ml_s26/tutorials/aps-tutorial-2026
  • Tutorial Notebook — live-code Colab notebook
  • e3nn — equivariant neural network library for PyTorch
  • 6.7970/8.750 — Symmetry and its Application to Machine Learning, MIT

Thank you! Questions?

Tess Smidt — tsmidt@mit.edu