Appearance
Young tableaux & partition algebras
Young tableaux are the connective tissue of algebraic combinatorics: they index a symmetric group's irreducible representations, they carry the Robinson–Schensted–Knuth correspondence, they expand Schur functions, and — through Schur–Weyl duality — they sit opposite the partition algebra on the same tensor space. enumeratio realizes three of the players as live collections, and the maps between them run in the CLI. This page shows the classical associations in action on those collections, with every number below derived from the actual data (the telephone/Bell counts, the RSK images, and the shape distributions are all verified example cases in @enumeratio/data).
The three collections
| collection | objects | carrier | count | sequence |
|---|---|---|---|---|
standard_tableaux | SYT with cells, all shapes | ballot row-word (row_word[i] = row of entry ) | telephone / involutions (A000085) | |
semistandard_tableaux | SSYT with cells, entries | flat (entries, shape) | 2-parameter | |
partition_algebra | set-partition diagram basis on points | RGS set_partition (borrowed) | Bell (A000110) |
The counts are exactly what the collections report:
bash
enumeratio standard_tableaux size=6 --count # 76 — T_0..6 = 1,1,2,4,10,26,76
enumeratio partition_algebra n=5 --count # 52 — B_0..5 = 1,1,2,5,15,52
enumeratio semistandard_tableaux size=3 max_entry=3 --count # 19A standard Young tableau of shape fills the cells with increasing along rows and columns; a semistandard one weakly increases along rows and strictly increases down columns, drawing entries from with repeats. standard_tableaux ranges over every shape at once — its 4 elements at are the row, the two hooks, and the column:
bash
enumeratio standard_tableaux size=3 # 1,2,3 · 1,2/3 · 1,3/2 · 1/2/3RSK: permutations ↔ pairs of tableaux
The Robinson–Schensted correspondence is a bijection
built by row insertion (Schensted bumping): read the one-line word left to right, insert each value into the first row, bumping the leftmost strictly-larger entry down to the next row; (the insertion tableau) records the entries, (the recording tableau) records the order in which cells were added. enumeratio provides both halves plus the inverse — rsk_insertion, rsk_recording, rsk_inverse — all validated element-by-element against Sage's robinson_schensted for permutations of size .
Worked example, :
| step | insert | (insertion) | (recording) |
|---|---|---|---|
| 1 | 2 | 2 | 1 |
| 2 | 4 | 2,4 | 1,2 |
| 3 | 1 | 1,4 / 2 | 1,2 / 3 |
| 4 | 3 | 1,3 / 2,4 | 1,2 / 3,4 |
So maps to and — the same shape , different fillings — and rsk_inverse(P,Q) recovers . The bijection has two symmetries the data confirms across all of : it is shape-compatible (the shape of always has cells), and it satisfies the Schützenberger symmetry , — inverting the permutation swaps the two tableaux.
Two immediate corollaries, both visible in the counts:
- — RSK is a bijection onto pairs of same-shape SYT, so squaring the per-shape count and summing recovers . At : .
- Involutions ↔ single tableaux — since forces , involutions biject with single SYT. Hence ParseError: KaTeX parse error: Expected 'EOF', got '_' at position 17: …\text{`standard_̲tableaux`}(n)| … is the telephone/involution number (A000085), not — the collection literally checks
|standard_tableaux(5)| = |involutions(5)| = 26.
Hook-length formula
The number of standard tableaux of a fixed shape is
where the hook length of a cell counts the cell itself plus the cells to its right in the same row and below it in the same column. standard_tableaux doesn't grade by shape, but it carries a shape map, so the shape distribution of a fiber recovers each as a class size. At the three shapes appear with multiplicities
which the data reports directly (the shape distribution over standard_tableaux(3) is ). Check against the formula: shape has hooks , so ; the row has hooks , giving ; the column likewise . Summing over all shapes reproduces the telephone number, .
At the five shapes give summing to . The two-cell hook shape is the one that makes the sum-of-squares corollary bite: hooks , product , so . Two of enumeratio's shape-restricted siblings pin down whole hook-length families as base_restricts of standard_tableaux:
bash
enumeratio syt_hook_shape size=4 --count # 8 = 2^{n-1} (hook shapes (a,1^b), A011782)
enumeratio syt_two_row size=4 --count # 6 = C(4,2) (shapes (a,b), central binomial A001405)SSYT ↔ Schur functions
Semistandard tableaux are the combinatorial model of the Schur functions. The Schur polynomial in variables is the generating function of SSYT of shape weighted by content:
Setting every counts the tableaux: , the principal specialization, and closed by the hook-content formula where is the cell's content (column row). semistandard_tableaux aggregates this over all shapes of a given size — the count ParseError: KaTeX parse error: Expected 'EOF', got '_' at position 21: …t{`semistandard_̲tableaux`}(n,k)… — and the family behaves as the specialization predicts:
bash
enumeratio semistandard_tableaux size=3 max_entry=2 --count # 6 — the six SSYT of 3 cells, entries ≤ 2
# k = 1..4 with n = 3 fixed: 1,6,19,44 (more letters, more fillings)Forcing leaves only the all-ones single row, so ParseError: KaTeX parse error: Expected 'EOF', got '_' at position 21: …t{`semistandard_̲tableaux`}(n,1)… for every — the degenerate specialization . When the content is forced to be all distinct — one of each of , i.e. the specialization with each letter used exactly once — an SSYT is precisely a standard tableau. That last observation is the modeling thread below.
Schur–Weyl duality & the partition algebra
Schur–Weyl duality is the statement that, on the -fold tensor space with , the commuting actions of the symmetric group (permuting factors) and the general linear group are mutual centralizers, and the space decomposes as
a sum over shapes with rows, pairing an -irreducible (indexed by SYT) with a -irreducible (indexed by SSYT). The partition algebra is what appears when you shrink to the symmetric group : is the centralizer of the diagonal -action on , the Schur–Weyl dual of . Its basis is the set-partition diagrams on points (a top and bottom row of ), so , the Bell number.
enumeratio's partition_algebra realizes the one-row slice of this: the set-partition diagrams on a single row of points, of them, borrowing the set_partitions carrier and count verbatim (it is the algebra reading of that same data). The block-count statistic recovers the Stirling triangle, exactly as for set partitions:
bash
enumeratio partition_algebra n=4 --count # 15 = B_4
# block-count distribution over P(4): 1,7,6,1 (Stirling-2 row S(4,k))The full two-row diagram basis indexed by set partitions of a -point set (dimension ) is a deliberate follow-up — it needs a two-row carrier — noted in the collection's own source. What is live is the tableaux side of the duality (both SYT and SSYT) and the one-row partition-monoid basis; the bridge between them is the representation theory sketched above rather than a computed map, for now.
A modeling thread: SYT as a restriction of SSYT
There is an obvious containment the data does not yet express directly. A standard tableau is exactly a semistandard tableau whose content is — every entry used once, which forces the strict-along-rows condition and makes it standard. So mathematically
ParseError: KaTeX parse error: Expected 'EOF', got '_' at position 16: \text{`standard_̲tableaux`}(n) \…
i.e. standard_tableaux is morally a base_restrict of semistandard_tableaux — the same kind of derived-membership sibling that syt_hook_shape and syt_two_row already are of standard_tableaux (those restrict by shape; this one would restrict by content).
The obstruction is purely a carrier mismatch, not a mathematical one:
standard_tableauxis carried as a ballot row-word (row_word[i]= the row of entry ) — compact because a standard filling is determined by which row each successive entry extends.semistandard_tableauxis carried flat as(entries, shape)— it has to name the actual entries, since they repeat and are bounded by .
A base_restrict needs the child to share the parent's carrier and cut it with a membership predicate. These two carriers are different, so unifying them would first require either a shared carrier for both families or an explicit order-isomorphic map standard_tableaux → semistandard_tableaux (row-word the with content ) to hang the restriction on. Both are viable; neither is built. Recording it here as an open modeling thread — the associations on this page are the argument that the unification is worth doing, and the carrier note is the reason it is not a one-liner.
The numbers, in one place
Every collection named here is live in the explorer and enumerable from the CLI; the RSK maps, the shape and transpose maps on standard_tableaux, and the counts above are all covered by the verified example suite in @enumeratio/data.