Skip to content

Find the exact object.

Names, aliases, Unicode, and common TeX notation. Open full search

The Littlewood–Richardson method for SU(N)

The SU(N) tensor workbench decomposes a tensor product into irreducible representations with exact multiplicities. Its mathematical category is finite-dimensional continuous complex representations of the compact simply connected group SU(N)SU(N), in characteristic zero. The calculation uses polynomial characters of GL(N,C)GL(N,\mathbb C) and then restricts to determinant one. The global group, representation field, and restriction step are part of the convention.

The convention identifier is su-n-young-lr-v1; the algorithm identifier is su-n-tensors-1.0.0. The implementation is original browser-local code. SageMath and the papers below provide mathematical references and independent fixtures; this workbench does not call an external algebra service.

Order the AN−1A_{N-1} nodes along the chain, with node 11 giving the defining representation. An input is a vector of nonnegative Dynkin labels

a=(a1,…,aN−1),λi=∑j=iN−1aj,λN=0.a=(a_1,\ldots,a_{N-1}),\qquad \lambda_i=\sum_{j=i}^{N-1}a_j,\qquad \lambda_N=0.

The weakly decreasing row lengths λ=(λ1,…,λN)\lambda=(\lambda_1,\ldots,\lambda_N) specify a Young diagram in English convention: longest row at the top. Adjacent differences recover the labels, ai=λi−λi+1a_i=\lambda_i-\lambda_{i+1}. This selects one polynomial GL(N)GL(N) lift of an SU(N)SU(N) irrep. Adding the same integer to every row tensors the lift with a determinant power and leaves its restriction to SU(N)SU(N) unchanged. See SageMath, “Coroot notation” and “SL versus GL”.

For example, the SU(5)SU(5) labels (0,1,0,0)(0,1,0,0) give (1,1,0,0,0)(1,1,0,0,0), the two-index alternating representation of dimension 1010. Its conjugate has labels (0,0,1,0)(0,0,1,0) and canonical partition (1,1,1,0,0)(1,1,1,0,0). Equal dimensions do not identify these two representations.

For partitions λ,μ\lambda,\mu, Schur characters multiply as

sλ(x)sμ(x)=∑νcλμν sν(x).s_\lambda(x)s_\mu(x) =\sum_\nu c^{\nu}_{\lambda\mu}\,s_\nu(x).

The Littlewood–Richardson coefficient is zero unless λ⊆ν\lambda\subseteq\nu and ∣ν∣=∣λ∣+∣μ∣|\nu|=|\lambda|+|\mu|. Otherwise it counts fillings of the skew diagram ν/λ\nu/\lambda with exactly μi\mu_i entries equal to ii, subject to three conditions:

  1. Entries weakly increase from left to right along each row.
  2. Entries strictly increase down each column.
  3. Read each row from right to left, starting with the top row. In every initial segment, the number of ii entries is at least the number of i+1i+1 entries, for every ii.

These conditions fix the reading convention completely. The third condition is the lattice-word condition. A precise statement appears in Stanley, Symmetries of Plane Partitions, §3, Theorem 3.2. The official SageMath lrcalc interface supplies independently reproducible coefficient and product examples.

The implementation traverses the skew cells in that reading order. A proposed entry is rejected immediately if it violates a row, column, content, or prefix condition. Every accepted complete filling contributes one. The symmetry cλμν=cμλνc^\nu_{\lambda\mu}=c^\nu_{\mu\lambda} allows the smaller content to be filled first. This is an enumeration of the defining combinatorial objects, with no numerical fitting of dimensions.

Only partitions with at most NN rows contribute in NN variables. A longer diagram gives the zero Schur polynomial, because a column of length greater than NN cannot be filled strictly with NN symbols. For each surviving partition, pad to NN rows and set

k=νN,ν^i=νi−k,bi=νi−νi+1.k=\nu_N,\qquad \widehat\nu_i=\nu_i-k,\qquad b_i=\nu_i-\nu_{i+1}.

Then

SνCN≅(det⁡)k⊗Sν^CN,Va⊗Va′≅⨁νcλμν Vb.S_\nu\mathbb C^N \cong (\det)^k\otimes S_{\widehat\nu}\mathbb C^N, \qquad V_a\otimes V_{a'} \cong\bigoplus_\nu c^\nu_{\lambda\mu}\,V_b.

A full column of height NN therefore disappears from the SU(N)SU(N) label. The output preserves both the original GL(N)GL(N) partition and the number kk of removed columns. Distinct output partitions of the same total size cannot collapse to the same Dynkin labels: their difference would have to be a nonzero determinant shift, which changes the size by a nonzero multiple of NN. Multiplicity is retained in cλμνc^\nu_{\lambda\mu}.

For a concrete diagnostic, the fundamental times its dual contains the partition (1N)(1^N). It is the determinant representation of GL(N)GL(N) and the singlet of SU(N)SU(N). Discarding every diagram with NN rows would incorrectly remove this singlet. The determinant distinction is developed in the SageMath Weyl-character tutorial.

Every result must pass all of the following identities before it is returned.

Check Exact requirement
Dimension dim⁡Va dim⁡Va′=∑bmbdim⁡Vb\dim V_a\,\dim V_{a'}=\sum_b m_b\dim V_b
Center charge t(b)=t(a)+t(a′)(modN)t(b)=t(a)+t(a')\pmod N for every summand
Dual singlet m1=1m_{\mathbf1}=1 precisely when ai′=aN−ia'_i=a_{N-i}; otherwise it is zero
Character specialization sλ(1,2,…,N)sμ(1,2,…,N)=∑νcλμνsν(1,2,…,N)s_\lambda(1,2,\ldots,N)s_\mu(1,2,\ldots,N)=\sum_\nu c^\nu_{\lambda\mu}s_\nu(1,2,\ldots,N)

The dimension is evaluated independently using the type-A Weyl product

dim⁡Va=∏1≤i<j≤Nλi−λj+j−ij−i.\dim V_a=\prod_{1\leq i<j\leq N} \frac{\lambda_i-\lambda_j+j-i}{j-i}.

Integer numerators and denominators are reduced exactly. Dimensions are exported as decimal strings, so JSON consumers cannot silently round a large value. Tableau counts use arbitrary-precision integers internally and are converted to numeric multiplicities only after an exact safe-integer check.

The central generator z=e2πi/N1Nz=e^{2\pi i/N}\mathbf1_N acts by e2πit(a)/Ne^{2\pi i t(a)/N}, with

t(a)=∣λ∣=∑i=1N−1i ai(modN).t(a)=|\lambda|=\sum_{i=1}^{N-1}i\,a_i\pmod N.

This follows directly because each defining-representation tensor index contributes one power of zz; removing a determinant column subtracts NN. The lattice interpretation is given by Conrad, Centers of Simply Connected Semisimple Groups, pp. 1–2.

The extra character check uses the alternant formula

sν(x1,…,xN)=det⁡(xiνj+N−j)i,j=1Ndet⁡(xiN−j)i,j=1N,s_\nu(x_1,\ldots,x_N) =\frac{\det(x_i^{\nu_j+N-j})_{i,j=1}^N} {\det(x_i^{N-j})_{i,j=1}^N},

with integer determinants and exact division. It is independent of the skew-tableau traversal. The variables are distinct, so the denominator is nonzero. Because their product is not one, the check must retain the GL(N)GL(N) partitions: sν(x)=(x1⋯xN)ksν^(x)s_\nu(x)=(x_1\cdots x_N)^k s_{\widehat\nu}(x). Schur polynomial operations and specializations are documented in SageMath’s Schur reference.

One successful specialization is a consistency check, not a separate proof of the full character identity. The completeness of the decomposition rests on the Littlewood–Richardson rule and exhaustive traversal. The verification suite separately compares small Schur values with direct semistandard-tableau sums and compares 987 SU(3)SU(3) products with the site’s independent weight-character algorithm.

Bounds, failure behavior, and reproducibility

Section titled “Bounds, failure behavior, and reproducibility”

The public tool accepts 2≤N≤62\leq N\leq6, exactly N−1N-1 labels per factor, and 0≤ai≤120\leq a_i\leq12. It also requires

∣λ∣+∣μ∣=∑i=1N−1i(ai+ai′)≤16.|\lambda|+|\mu| =\sum_{i=1}^{N-1}i(a_i+a'_i)\leq16.

Both bounds apply. Output labels may exceed the input label bound. The box bound refers to these canonical polynomial lifts; it is neither a dimension cutoff nor a bound invariant under conjugating both factors. It controls the size of the tableau search.

A defensive limit of 2,000,000 visited tableau states applies to a product calculation. The declared domain lies below this limit even without cached coefficients: symmetry leaves at most eight cells to fill for each coefficient; there are 1,116 possible lattice-word prefixes through length eight and at most 231 candidate output partitions. Thus 257,796 states already bounds the traversal before imposing the additional content, row, and column restrictions. The verification suite checks this bound.

Exceeding the defensive limit raises an explicit resource error and returns no partial decomposition. Invalid ranks, fractional or negative labels, malformed vectors, and out-of-domain diagrams also fail explicitly. The checked domain is not enlarged silently.

The verification suite covers all 11,666 admissible input pairs at N=6N=6, the full supported SU(2)SU(2) angular-momentum rule, horizontal and vertical Pieri rules, associativity examples, conjugation, determinant shifts, and the published SU(4)SU(4)–SU(6)SU(6) examples in Feger–Kephart, LieART, Tables A.37–A.39. To reproduce a nontrivial multiplicity in SageMath:

import sage.libs.lrcalc.lrcalc as lrcalc
lrcalc.lrcoef([3, 2, 1], [2, 1], [2, 1]) # 2
lrcalc.mult([2, 1], [2, 1], 3) # GL(3) partitions, at most 3 rows

Sage’s coefficient function places the output partition first. This site’s helper uses littlewoodRichardson(lambda, mu, nu) instead. The full SU(3)SU(3) restriction of the displayed product is 8⊗8=1⊕28⊕10⊕10‾⊕27\mathbf8\otimes\mathbf8=\mathbf1\oplus2\mathbf8\oplus\mathbf{10}\oplus\overline{\mathbf{10}}\oplus\mathbf{27}.

The answer determines abstract irreducible summands and their multiplicity spaces. It does not choose normalized Clebsch–Gordan maps, a basis inside a repeated summand, or the permutation symmetry of identical factors. A self-dual label is further distinguished as real or quaternionic using the Frobenius–Schur indicator; the relevant general result is Adams, The Real Chevalley Involution, Lemma 5.3.

Descent to a quotient of SU(N)SU(N), Lorentz contractions, flavor symmetry, and Bose or Fermi statistics remain additional parts of a physics calculation. The worked guide explains how to keep these questions separate while using the same output. Source verification and automated checks are recorded; independent expert review remains pending.

First public edition · mathematical baseline 6.0.0. Source curation and automated validation are distinct from independent expert review.

About · Contributors · Review status · Suggest a correction · Data and reproducibility · Articles CC BY 4.0 · Code MIT