6.2 \(N\)-partitions and monomial symmetric polynomials
Throughout this section, let \(K\) be a commutative semiring and \(N\) a nonnegative integer. We work with the polynomial ring \(\mathcal{P} = K[x_1, x_2, \ldots , x_N]\) and the subring \(\mathcal{S}\) of symmetric polynomials in \(\mathcal{P}\).
6.2.1 \(N\)-partitions
An \(N\)-partition will mean a weakly decreasing \(N\)-tuple of nonnegative integers. In other words, an \(N\)-partition means an \(N\)-tuple \(\left( \lambda _{1},\lambda _{2},\ldots ,\lambda _{N}\right) \in \mathbb {N}^{N}\) with \(\lambda _{1}\geq \lambda _{2}\geq \cdots \geq \lambda _{N}\).
The size (or weight) of an \(N\)-partition \(\lambda = (\lambda _1, \lambda _2, \ldots , \lambda _N)\) is defined to be \(|\lambda | := \lambda _1 + \lambda _2 + \cdots + \lambda _N\).
There is a bijection
Straightforward. The forward map pads a partition of length \(\ell \leq N\) with \(N - \ell \) trailing zeros, and the inverse map strips trailing zeros. The padded tuple is weakly decreasing because the original partition is weakly decreasing and its entries are positive (hence \(\geq 0\)). The composition in both directions is the identity: padding then stripping recovers the original partition, and stripping then padding recovers the original \(N\)-partition (since an \(N\)-partition is antitone, all zeros are trailing).
Basic \(N\)-partition API
Let \(\lambda = (\lambda _1, \ldots , \lambda _N)\) be an \(N\)-partition.
Each entry is bounded by the size: \(\lambda _i \leq |\lambda |\) for all \(i\).
\(|\lambda | = 0\) if and only if \(\lambda = (0, \ldots , 0)\).
The bound \(\lambda _i \leq \sum _j \lambda _j\) holds because each summand is nonnegative. The second claim uses the bound to show all parts must be zero when the size is.
The length \(\ell (\lambda )\) of an \(N\)-partition \(\lambda \) is the number of nonzero entries. We have \(\ell (\lambda ) \leq N\) and \(\ell (\lambda ) = 0 \iff \lambda = (0, \ldots , 0)\).
The length is the cardinality of \(\{ i : \lambda _i \neq 0\} \), which is a subset of \([N]\).
The componentwise sum of two \(N\)-partitions is an \(N\)-partition, and \(|\mu + \nu | = |\mu | + |\nu |\).
Antitone is preserved under addition since each coordinate sum preserves the inequality. The size formula follows from rearranging a sum.
We define a partial order on \(N\)-partitions by componentwise comparison: \(\mu \leq \nu \) iff \(\mu _i \leq \nu _i\) for all \(i \in [N]\).
If \(\mu \leq \nu \) (componentwise), then \(|\mu | \leq |\nu |\).
Sum the componentwise inequalities.
Young diagrams of \(N\)-partitions
The Young diagram \(Y(\lambda )\) of an \(N\)-partition \(\lambda \) is the finite set of cells
The cardinality of the Young diagram equals the size: \(|Y(\lambda )| = |\lambda |\).
The Young diagram is the disjoint union of rows, where row \(i\) has \(\lambda _i\) cells. Thus \(|Y(\lambda )| = \sum _i \lambda _i = |\lambda |\).
The number of cells in row \(i\) of the Young diagram equals \(\lambda _i\): \(|\{ (i, j) \in Y(\lambda )\} | = \lambda _i\).
By definition, row \(i\) consists of cells \((i, j)\) with \(0 \leq j {\lt} \lambda _i\), which has exactly \(\lambda _i\) elements.
\(\mu \leq \nu \) if and only if \(Y(\mu ) \subseteq Y(\nu )\).
Forward: if \(\mu _i \leq \nu _i\) for all \(i\), then \(j {\lt} \mu _i\) implies \(j {\lt} \nu _i\), so \((i,j) \in Y(\mu )\) implies \((i,j) \in Y(\nu )\). Backward: if \(Y(\mu ) \subseteq Y(\nu )\) and \(\mu _i {\gt} \nu _i\) for some \(i\), then \((i, \nu _i) \in Y(\mu ) \setminus Y(\nu )\), a contradiction.
The skew Young diagram \(Y(\lambda /\mu )\) for \(N\)-partitions \(\lambda , \mu \) is the set difference \(Y(\lambda ) \setminus Y(\mu )\), consisting of cells \((i, j)\) with \(\mu _i \leq j {\lt} \lambda _i\).
The cardinality of the skew Young diagram satisfies \(|Y(\lambda /\mu )| = \sum _{i=1}^N (\lambda _i - \mu _i)\). When \(\mu \leq \lambda \), this equals \(|\lambda | - |\mu |\).
The skew diagram is a subset of the Young diagram, and each row contributes \(\max (\lambda _i - \mu _i, 0)\) cells. The identity with sizes uses telescoping.
Row and column partitions
The row partition \((n, 0, \ldots , 0)\) has size \(n\). The column partition \((1, 1, \ldots , 1, 0, \ldots , 0)\) (with \(n\) ones, \(n \leq N\)) has size \(n\).
Direct computation of sums.
6.2.2 Monomials and sorting
Let \(a=\left( a_{1},a_{2},\ldots ,a_{N}\right) \in \mathbb {N}^{N}\). Then:
(a) We let \(x^{a}\) denote the monomial \(x_{1}^{a_{1}}x_{2}^{a_{2}}\cdots x_{N}^{a_{N}}\).
(b) We let \(\operatorname *{sort}a\) mean the \(N\)-partition obtained from \(a\) by sorting the entries of \(a\) in weakly decreasing order.
- AlgebraicCombinatorics.SymmetricFunctions.monomialExp a = ∏ i : Fin N, MvPolynomial.X i ^ a i
- One or more equations did not get rendered due to their size.
For \(a = (a_1, a_2, \ldots , a_N) \in \mathbb {N}^N\), \(\operatorname {sort} a\) is the \(N\)-partition obtained by sorting the entries of \(a\) in weakly decreasing order.
- One or more equations did not get rendered due to their size.
Let \(a \in \mathbb {N}^N\) and let \(\sigma \in S_N\) be a permutation. Then \(\operatorname {sort}(a \circ \sigma ) = \operatorname {sort}(a)\).
Sorting depends only on the multiset of values, which is invariant under permutation of the indices.
For any \(a \in \mathbb {N}^N\), \(|\operatorname {sort}(a)| = \sum _i a_i\).
The sum of entries is preserved by sorting.
If \(a \in \mathbb {N}^N\) is already weakly decreasing, then \(\operatorname {sort}(a) = a\).
A weakly decreasing list is already sorted.
For any \(N\)-partition \(\mu \), \(\operatorname {sort}(\mu ) = \mu \).
An \(N\)-partition is antitone by definition, so the result follows from Lemma 6.48.
Monomial API
The monomial \(x^a = \prod _i x_i^{a_i}\) equals the Mathlib monomial \(\mathrm{monomial}(a, 1)\).
Immediate from the definitions of monomial and product of powers.
The coefficient of \(x^a\) in \(x^a\) is \(1\). The coefficient of \(x^b\) in \(x^a\) is \(0\) when \(a \neq b\).
By Lemma 6.50, \(x^a = \mathrm{monomial}(a, 1)\), and the coefficient extraction from a single monomial is immediate.
The monomial map is multiplicative: \(x^{a+b} = x^a \cdot x^b\), and \(x^0 = 1\).
The identity \(x^{a+b} = x^a \cdot x^b\) follows from \(x_i^{a_i + b_i} = x_i^{a_i} \cdot x_i^{b_i}\) and distributivity of products.
The total degree of \(x^a\) equals \(\sum _i a_i\).
By Lemma 6.50, this reduces to the standard result that the total degree of a monomial equals the sum of its exponents.
Characterization of equal sorts
Two tuples \(a, b \in \mathbb {N}^N\) have the same sort if and only if they have the same multiset of values (equivalently, \(b\) is a permutation of \(a\)):
Forward: if the sorts are equal as \(N\)-partitions, then the sorted lists agree pointwise, hence are equal as lists, hence as multisets — and the sorted list of a multiset equals the multiset itself. Backward: if the multisets of values are equal, sorting them gives the same list.
Sorting is idempotent: \(\operatorname {sort}(\operatorname {sort}(a)) = \operatorname {sort}(a)\).
\(\operatorname {sort}(a)\) is an \(N\)-partition, so by Lemma 6.49 it is its own sort.
The sort preimage
For an \(N\)-partition \(\mu \), the sort preimage is the finite set
The bound \(a_i {\lt} |\mu | + 1\) makes the set finite (it is contained in \(\{ 0, \ldots , |\mu |\} ^N\)).
- One or more equations did not get rendered due to their size.
For any \(N\)-partition \(\mu \), its parts tuple \(\mu \) itself belongs to the sort preimage of \(\mu \): \(\mu \in \operatorname {sortPreimage}(\mu )\).
6.2.3 Monomial symmetric polynomials
Let \(\lambda \) be any \(N\)-partition. Then, we define a symmetric polynomial \(m_{\lambda }\in \mathcal{S}\) by
This is called the monomial symmetric polynomial corresponding to \(\lambda \).
For any \(N\)-partition \(\mu \), the polynomial \(m_\mu \) is symmetric.
For any permutation \(\sigma \in S_N\), we have \(\sigma \cdot m_\mu = \sum _{a : \operatorname {sort}(a) = \mu } x^{a \circ \sigma ^{-1}}\). Composition with \(\sigma ^{-1}\) is a bijection on \(\{ a \in \mathbb {N}^N : \operatorname {sort}(a) = \mu \} \) by Lemma 6.46, so the sum is unchanged.
For any \(N\)-partition \(\mu \), the coefficient of \(x^{\mu }\) (i.e. \(x_1^{\mu _1} x_2^{\mu _2} \cdots x_N^{\mu _N}\)) in \(m_\mu \) is \(1\).
The tuple \(\mu \) itself is in the sort preimage of \(\mu \) (by Lemma 6.57), and no other element of the sort preimage contributes to the coefficient of \(x^\mu \).
For any two distinct \(N\)-partitions \(\mu \neq \nu \), the coefficient of \(x^{\mu }\) in \(m_\nu \) is \(0\).
Every \(a\) in the sort preimage of \(\nu \) satisfies \(\operatorname {sort}(a) = \nu \). If \(a = \mu \) (as a tuple), then \(\operatorname {sort}(\mu ) = \mu \neq \nu \) (by Lemma 6.49), a contradiction. So no element of the sort preimage of \(\nu \) equals \(\mu \), hence the coefficient is \(0\).
The monomial symmetric polynomial \(m_\mu \) is homogeneous of degree \(|\mu |\).
Each monomial \(x^a\) in the sum defining \(m_\mu \) has degree \(\sum _i a_i = |\operatorname {sort}(a)| = |\mu |\) by Lemma 6.47.
6.2.4 Elementary, homogeneous, and power sum via monomial symmetric polynomials
(a) For each \(n\in \left\{ 0,1,\ldots ,N\right\} \), we have
where \(\left( 1,1,\ldots ,1,0,0,\ldots ,0\right) \) is the \(N\)-tuple that begins with \(n\) many \(1\)’s and ends with \(N-n\) many \(0\)’s.
(b) For each \(n\in \mathbb {N}\), we have
where the size \(\left\vert \lambda \right\vert \) of an \(N\)-partition \(\lambda \) is defined to be the sum of its entries (i.e., if \(\lambda =\left( \lambda _{1},\lambda _{2},\ldots ,\lambda _{N}\right) \), then \(\left\vert \lambda \right\vert :=\lambda _{1}+\lambda _{2}+\cdots +\lambda _{N}\)).
(c) Assume that \(N{\gt}0\). For each \(n\in \mathbb {N}\), we have
where \(\left( n,0,0,\ldots ,0\right) \) is the \(N\)-tuple that begins with an \(n\) and ends with \(N-1\) zeroes.
This combines parts (a), (b), and (c).
The \(N\)-partition \((1, 1, \ldots , 1, 0, 0, \ldots , 0)\) with \(n\) ones and \(N - n\) zeros.
The \(N\)-partition \((n, 0, 0, \ldots , 0)\) with \(n\) in the first position and zeros elsewhere.
For each \(n \in \{ 0, 1, \ldots , N\} \), we have \(e_n = m_{(1, 1, \ldots , 1, 0, 0, \ldots , 0)}\) where the \(N\)-tuple has \(n\) ones followed by \(N - n\) zeros.
We have \(e_n = \sum _{S \subseteq \{ 1,\ldots ,N\} ,\, |S|=n} \prod _{i \in S} x_i\). Each product \(\prod _{i \in S} x_i = x^{\chi _S}\) where \(\chi _S\) is the indicator function of \(S\). Every indicator function of an \(n\)-element subset sorts to \((1, \ldots , 1, 0, \ldots , 0)\) (with \(n\) ones). Conversely, every \(0\)-\(1\) tuple in the sort preimage of \((1, \ldots , 1, 0, \ldots , 0)\) is the indicator function of some \(n\)-element subset. This gives a bijection between \(n\)-element subsets and the sort preimage, proving the result.
The finite set of \(N\)-partitions of size \(n\).
- One or more equations did not get rendered due to their size.
For each \(n \in \mathbb {N}\), we have \(h_n = \sum _{\substack{[\lambda , \text , {, , i, s, , a, n, , }, , N, \text , {, -, p, a, r, t, i, t, i, o, n, ;, }, , \\ , , |, \lambda , |, , =, , n]}} m_\lambda \).
We have \(h_n = \sum _{\substack{[a, , \in , \mathbb , {, N, }, ^, N, , \\ , , a, _, 1, , +, , \cdots , +, , a, _, N, , =, , n]}} x^a\). We partition the sum by \(\operatorname {sort}(a)\): the tuples \(a\) with \(\sum a_i = n\) are partitioned into groups indexed by \(N\)-partitions \(\mu \) of size \(n\), and each group contributes \(m_\mu \).
Assume \(N {\gt} 0\). For each \(n \in \mathbb {N}\) with \(n {\gt} 0\), we have \(p_n = m_{(n, 0, 0, \ldots , 0)}\).
We have \(p_n = \sum _i x_i^n\). Each \(x_i^n\) equals \(x^{e_i \cdot n}\) where \(e_i\) is the \(i\)-th standard basis vector scaled by \(n\). All such tuples \((0, \ldots , 0, n, 0, \ldots , 0)\) sort to \((n, 0, \ldots , 0)\). When \(n {\gt} 0\), these are the only elements of the sort preimage of \((n, 0, \ldots , 0)\), because if \(\operatorname {sort}(a) = (n, 0, \ldots , 0)\) then the multiset of values of \(a\) contains exactly one \(n\) and \(N-1\) zeros, so \(a\) must be a standard basis vector times \(n\).
Edge cases for \(p_0\) and \(m_0\)
\(p_0 = \sum _{i=1}^N x_i^0 = N\) (the constant polynomial \(N\)). This differs from the convention \(p_0 = 1\) used in some textbooks; when \(N {\gt} 0\) the identity \(p_n = m_{(n,0,\ldots ,0)}\) requires \(n {\gt} 0\).
Direct from the definition \(p_0 = \sum _{i=1}^N x_i^0 = N\).
When \(N {\gt} 0\), \(m_{(0, 0, \ldots , 0)} = 1\). The sort preimage of the zero partition consists only of the zero tuple, and \(x^{(0,\ldots ,0)} = 1\).
The zero partition has size \(0\), so each entry \(a_j\) of any \(a\) in \(\operatorname {sortPreimage}(0)\) satisfies \(a_j {\lt} 0 + 1 = 1\), forcing \(a_j = 0\). Thus the sort preimage is \(\{ (0, \ldots , 0)\} \) and \(x^0 = 1\).
6.2.5 Permutation action on polynomial coefficients
Let \(\sigma \in S_{N}\) and \(f\in \mathcal{P}\). Then,
for any \(\left( a_{1},a_{2},\ldots ,a_{N}\right) \in \mathbb {N}^{N}\).
The permutation action on \(f\) sends \(f(x_1, \ldots , x_N)\) to \(f(x_{\sigma (1)}, \ldots , x_{\sigma (N)})\). The coefficient of \(x^a = x_1^{a_1} \cdots x_N^{a_N}\) in \(\sigma \cdot f\) equals the coefficient of \(x^{a \circ \sigma } = x_1^{a_{\sigma (1)}} \cdots x_N^{a_{\sigma (N)}}\) in \(f\), which is exactly the stated identity.
Let \(f \in \mathcal{P}\) be symmetric and let \(\sigma \in S_N\). For any monomial exponent \(d\), we have \([x^{\sigma \cdot d}] f = [x^d] f\).
Since \(f\) is symmetric, \(\sigma \cdot f = f\). By Proposition 6.72, the coefficient of \(x^{\sigma \cdot d}\) in \(\sigma \cdot f\) equals the coefficient of \(x^d\) in \(f\).
Let \(f \in \mathcal{P}\) be symmetric. If two exponent tuples \(d_1\) and \(d_2\) satisfy \(\operatorname {sort}(d_1) = \operatorname {sort}(d_2)\), then \([x^{d_1}] f = [x^{d_2}] f\).
Helpers for the spanning proof
If \(f \in \mathcal{P}\) is symmetric and \(d\) is in the support of \(f\), then \(\sigma \cdot d\) is also in the support of \(f\) for any permutation \(\sigma \).
By Lemma 6.73, \([x^{\sigma \cdot d}] f = [x^d] f \neq 0\).
The finitely-supported version of \(\operatorname {sort}\): for a finitely-supported function \(d\) from \([N]\) to \(\mathbb {N}\), \(\operatorname {sortFinsupp}(d) = \operatorname {sort}(d)\), where \(d\) is viewed as a function \([N] \to \mathbb {N}\).
The finitely-supported sort is invariant under permutation: \(\operatorname {sortFinsupp}(\sigma \cdot d) = \operatorname {sortFinsupp}(d)\).
Unfold the definition and apply Lemma 6.46.
6.2.6 Basis theorem
(a) The family \(\left( m_{\lambda }\right) _{\lambda \text{ is an }N\text{-partition}}\) is a basis of the \(K\)-module \(\mathcal{S}\).
(b) Each symmetric polynomial \(f\in \mathcal{S}\) satisfies
(c) Let \(n\in \mathbb {N}\). Let
(where we understand the zero polynomial \(0\in \mathcal{P}\) to be homogeneous of every degree). Then, \(\mathcal{S}_{n}\) is a \(K\)-submodule of \(\mathcal{S}\).
(d) The family \(\left( m_{\lambda }\right) _{\lambda \text{ is an }N\text{-partition of size }n}\) is a basis of the \(K\)-module \(\mathcal{S}_{n}\).
- AlgebraicCombinatorics.SymmetricFunctions.symmHomogeneous N R n = { carrier := {f : MvPolynomial (Fin N) R | f.IsSymmetric ∧ f.IsHomogeneous n}, add_mem' := ⋯, zero_mem' := ⋯, smul_mem' := ⋯ }
This combines parts (a) through (d).
The family \((m_\mu )_{\mu \text{ is an } N\text{-partition}}\) spans the \(K\)-module \(\mathcal{S}\).
Let \(f \in \mathcal{S}\). Write \(f = \sum _{d \in \mathrm{supp}(f)} [x^d] f \cdot x^d\). Partition the support by \(\operatorname {sort}(d)\): for each \(N\)-partition \(\mu \), group together all \(d\) with \(\operatorname {sort}(d) = \mu \). Since \(f\) is symmetric, all monomials in the same group have the same coefficient (by Lemma 6.74), which can be factored out. Since \(f\) is symmetric, the support is closed under permutation, so the full sort preimage of each \(\mu \) is present. The remaining sum of monomials in each group equals \(m_\mu \), showing \(f\) is in the span.
Each symmetric polynomial \(f \in \mathcal{S}\) satisfies
We verify that both sides have the same coefficient for each exponent \(d\). On the right-hand side, extract the coefficient of \(x^d\): using Lemmas 6.60 and 6.61, only the term with \(\lambda = \operatorname {sort}(d)\) survives, contributing \([x^{\lambda }] f\). By Lemma 6.74, \([x^{\lambda }] f = [x^d] f\) since \(\operatorname {sort}(d) = \operatorname {sort}(\lambda )\).
Let \(n \in \mathbb {N}\). The submodule of homogeneous symmetric polynomials of degree \(n\) is
This is a \(K\)-submodule of \(\mathcal{S}\).
- AlgebraicCombinatorics.SymmetricFunctions.symmHomogeneous N R n = { carrier := {f : MvPolynomial (Fin N) R | f.IsSymmetric ∧ f.IsHomogeneous n}, add_mem' := ⋯, zero_mem' := ⋯, smul_mem' := ⋯ }
The family \((m_\mu )_{\mu \text{ is an } N\text{-partition of size } n}\) is linearly independent over \(K\).
The family \((m_\mu )_{\mu \text{ is an } N\text{-partition of size } n}\) spans the \(K\)-module \(\mathcal{S}_n\).
Let \(f \in \mathcal{S}_n\). Since \(f\) is symmetric, it lies in the span of all \(m_\mu \) (by Theorem 6.79). Since \(f\) is homogeneous of degree \(n\), applying the degree-\(n\) homogeneous component extracts exactly the \(m_\mu \) with \(|\mu | = n\) (by Lemma 6.62, \(m_\mu \) is homogeneous of degree \(|\mu |\), so the homogeneous component is \(m_\mu \) when \(|\mu | = n\) and \(0\) otherwise).
The family \((m_\mu )_{\mu \text{ is an } N\text{-partition of size } n}\) is a basis of the \(K\)-module \(\mathcal{S}_n\).