Formalization Blueprint for “An Introduction to Algebraic Combinatorics” by Darij Grinberg

6.1 Definitions and examples of symmetric polynomials

6.1.1 Setup

Convention 6.1
#

Fix a commutative ring \(K\). Fix an \(N\in \mathbb {N}\). Throughout this chapter, we will keep \(K\) and \(N\) fixed. Let \(S_N\) denote the symmetric group, i.e., the group of all permutations of \([N] := \{ 1,2,\ldots ,N\} \).

6.1.2 The polynomial ring and the symmetric group action

Definition 6.2
#

(a) Let \(\mathcal{P}\) be the polynomial ring \(K[x_1, x_2, \ldots , x_N]\) in \(N\) variables over \(K\). This is not just a ring; it is a commutative \(K\)-algebra.

(b) The symmetric group \(S_N\) acts on the set \(\mathcal{P}\) according to the formula

\[ \sigma \cdot f = f[x_{\sigma (1)}, x_{\sigma (2)}, \ldots , x_{\sigma (N)}] \quad \text{for any } \sigma \in S_N \text{ and any } f \in \mathcal{P}. \]

Here, \(f[a_1, a_2, \ldots , a_N]\) means the result of substituting \(a_1, a_2, \ldots , a_N\) for the indeterminates \(x_1, x_2, \ldots , x_N\) in a polynomial \(f \in \mathcal{P}\).

Roughly speaking, the group \(S_N\) is thus acting on \(\mathcal{P}\) by permuting variables: A permutation \(\sigma \in S_N\) transforms a polynomial \(f\) by substituting \(x_{\sigma (i)}\) for each \(x_i\).

Note that this action of \(S_N\) on \(\mathcal{P}\) is a well-defined group action (as we will see in Proposition 6.3 below).

(c) A polynomial \(f \in \mathcal{P}\) is said to be symmetric if it satisfies

\[ \sigma \cdot f = f \quad \text{for all } \sigma \in S_N. \]

(d) We let \(\mathcal{S}\) be the set of all symmetric polynomials \(f \in \mathcal{P}\).

6.1.3 The action is well-defined

Proposition 6.3

The action of \(S_N\) on \(\mathcal{P}\) is a well-defined group action. In other words, the following holds:

(a) We have \(\operatorname {id}_{[N]} \cdot f = f\) for every \(f \in \mathcal{P}\).

(b) We have \((\sigma \tau ) \cdot f = \sigma \cdot (\tau \cdot f)\) for every \(\sigma , \tau \in S_N\) and \(f \in \mathcal{P}\).

Proof

(a) If \(f \in \mathcal{P}\), then the definition of \(\operatorname {id}_{[N]} \cdot f\) yields

\[ \operatorname {id}_{[N]} \cdot f = f[x_{\operatorname {id}(1)}, x_{\operatorname {id}(2)}, \ldots , x_{\operatorname {id}(N)}] = f[x_1, x_2, \ldots , x_N] = f. \]

This proves part (a).

(b) Let \(\sigma , \tau \in S_N\) and \(f \in \mathcal{P}\). The definition of \(\sigma \cdot (\tau \cdot f)\) yields

\begin{equation} \sigma \cdot (\tau \cdot f) = (\tau \cdot f)[x_{\sigma (1)}, x_{\sigma (2)}, \ldots , x_{\sigma (N)}]. \label{pf.prop.sf.SN-acts.b.1} \end{equation}
1

Write the polynomial \(f\) in the form

\begin{equation} f = \sum _{(a_1, a_2, \ldots , a_N) \in \mathbb {N}^N} f_{(a_1, a_2, \ldots , a_N)} x_1^{a_1} x_2^{a_2} \cdots x_N^{a_N}. \label{pf.prop.sf.SN-acts.b.f=} \end{equation}
2

The definition of \(\tau \cdot f\) yields

\[ \tau \cdot f = \sum _{(a_1, \ldots , a_N) \in \mathbb {N}^N} f_{(a_1, \ldots , a_N)} x_{\tau (1)}^{a_1} x_{\tau (2)}^{a_2} \cdots x_{\tau (N)}^{a_N}. \]

Substituting \(x_{\sigma (1)}, x_{\sigma (2)}, \ldots , x_{\sigma (N)}\) for \(x_1, x_2, \ldots , x_N\) on both sides, we obtain

\begin{align*} (\tau \cdot f)[x_{\sigma (1)}, \ldots , x_{\sigma (N)}] & = \sum f_{(a_1, \ldots , a_N)} x_{\sigma (\tau (1))}^{a_1} \cdots x_{\sigma (\tau (N))}^{a_N} \\ & = \sum f_{(a_1, \ldots , a_N)} x_{(\sigma \tau )(1)}^{a_1} \cdots x_{(\sigma \tau )(N)}^{a_N} = (\sigma \tau ) \cdot f. \end{align*}

Comparing with 1, we obtain \((\sigma \tau ) \cdot f = \sigma \cdot (\tau \cdot f)\).

6.1.4 The action is by algebra automorphisms

Proposition 6.4

The group \(S_N\) acts on \(\mathcal{P}\) by \(K\)-algebra automorphisms. In other words, for each \(\sigma \in S_N\), the map

\begin{align*} \mathcal{P} & \to \mathcal{P}, \\ f & \mapsto \sigma \cdot f \end{align*}

is a \(K\)-algebra automorphism of \(\mathcal{P}\).

  • One or more equations did not get rendered due to their size.
Proof

Fix \(\sigma \in S_N\). For any \(f, g \in \mathcal{P}\), we have

\begin{equation} \sigma \cdot (fg) = (\sigma \cdot f) \cdot (\sigma \cdot g) \label{pf.prop.sf.SN-acts-by-alg-auts.1} \end{equation}
3

(by expanding the substitution definition of the action). Thus, the map \(f \mapsto \sigma \cdot f\) respects multiplication. Similarly, this map respects addition, respects scaling, respects the zero and respects the unity. Hence, this map is a \(K\)-algebra morphism from \(\mathcal{P}\) to \(\mathcal{P}\). Furthermore, this map is invertible, since its inverse is the map \(f \mapsto \sigma ^{-1} \cdot f\). Thus, this map is a \(K\)-algebra automorphism of \(\mathcal{P}\).

6.1.5 Symmetric polynomials form a subalgebra

Theorem 6.5

The subset \(\mathcal{S}\) is a \(K\)-subalgebra of \(\mathcal{P}\).

Proof

We need to show that \(\mathcal{S}\) is closed under addition, multiplication and scaling, and that \(\mathcal{S}\) contains the zero and the unity of \(\mathcal{P}\). Let us show that \(\mathcal{S}\) is closed under multiplication (since all the other claims are equally easy): Let \(f, g \in \mathcal{S}\). We must show that \(fg \in \mathcal{S}\).

The polynomial \(f\) is symmetric (since \(f \in \mathcal{S}\)); in other words, \(\sigma \cdot f = f\) for each \(\sigma \in S_N\). Similarly, \(\sigma \cdot g = g\) for each \(\sigma \in S_N\). Now, from 3, we see that for each \(\sigma \in S_N\), we have \(\sigma \cdot (fg) = (\sigma \cdot f) \cdot (\sigma \cdot g) = fg\). This shows that \(fg\) is symmetric, i.e., \(fg \in \mathcal{S}\). The other claims are proved similarly.

Definition 6.6
#

The \(K\)-subalgebra \(\mathcal{S}\) of \(\mathcal{P}\) is called the ring of symmetric polynomials in \(N\) variables over \(K\).

6.1.6 Monomials

Definition 6.7
#

(a) A monomial is an expression of the form \(x_1^{a_1} x_2^{a_2} \cdots x_N^{a_N}\) with \(a_1, a_2, \ldots , a_N \in \mathbb {N}\).

(b) The degree \(\deg \mathfrak {m}\) of a monomial \(\mathfrak {m} = x_1^{a_1} x_2^{a_2} \cdots x_N^{a_N}\) is defined to be \(a_1 + a_2 + \cdots + a_N \in \mathbb {N}\).

(c) A monomial \(\mathfrak {m} = x_1^{a_1} x_2^{a_2} \cdots x_N^{a_N}\) is said to be squarefree if \(a_1, a_2, \ldots , a_N \in \{ 0,1\} \). (This is saying that no square or higher power of an indeterminate appears in \(\mathfrak {m}\); thus the name “squarefree”.)

(d) A monomial \(\mathfrak {m} = x_1^{a_1} x_2^{a_2} \cdots x_N^{a_N}\) is said to be primal if there is at most one \(i \in [N]\) satisfying \(a_i {\gt} 0\). (This is saying that the monomial \(\mathfrak {m}\) contains no two distinct indeterminates. Thus, a primal monomial is just \(1\) or a power of an indeterminate.)

6.1.7 Elementary, complete homogeneous, and power sum symmetric polynomials

Definition 6.8
#

(a) For each \(n \in \mathbb {Z}\), define a symmetric polynomial \(e_n \in \mathcal{S}\) by

\[ e_n = \sum _{\substack{[(, i, _, 1, ,, , i, _, 2, ,, , \ldots , ,, , i, _, n, ), , \in , [, N, ], ^, n, ;, , \\ , , i, _, 1, , {\lt}, , i, _, 2, , {\lt}, , \cdots , {\lt}, , i, _, n]}} x_{i_1} x_{i_2} \cdots x_{i_n} = (\text{sum of all squarefree monomials of degree } n). \]

This \(e_n\) is called the \(n\)-th elementary symmetric polynomial in \(x_1, x_2, \ldots , x_N\).

(b) For each \(n \in \mathbb {Z}\), define a symmetric polynomial \(h_n \in \mathcal{S}\) by

\[ h_n = \sum _{\substack{[(, i, _, 1, ,, , i, _, 2, ,, , \ldots , ,, , i, _, n, ), , \in , [, N, ], ^, n, ;, , \\ , , i, _, 1, , \leq , i, _, 2, , \leq , \cdots , \leq , i, _, n]}} x_{i_1} x_{i_2} \cdots x_{i_n} = (\text{sum of all monomials of degree } n). \]

This \(h_n\) is called the \(n\)-th complete homogeneous symmetric polynomial in \(x_1, x_2, \ldots , x_N\).

(c) For each \(n \in \mathbb {Z}\), define a symmetric polynomial \(p_n \in \mathcal{S}\) by

\begin{align*} p_n & = \begin{cases} x_1^n + x_2^n + \cdots + x_N^n, & \text{if } n {\gt} 0; \\ 1, & \text{if } n = 0; \\ 0, & \text{if } n {\lt} 0 \end{cases}\\ & = (\text{sum of all primal monomials of degree } n). \end{align*}

This \(p_n\) is called the \(n\)-th power sum in \(x_1, x_2, \ldots , x_N\).

6.1.8 Elementary symmetric polynomials vanish for large degree

Proposition 6.9

For each integer \(n {\gt} N\), we have \(e_n = 0\).

Proof

Let \(n {\gt} N\) be an integer. Then, the set \([N]\) has no \(n\) distinct elements. Thus, there exists no \(n\)-tuple \((i_1, i_2, \ldots , i_n) \in [N]^n\) satisfying \(i_1 {\lt} i_2 {\lt} \cdots {\lt} i_n\). Now, the definition of \(e_n\) yields

\begin{align*} e_n & = \sum _{\substack{[(, i, _, 1, ,, , \ldots , ,, , i, _, n, ), , \in , [, N, ], ^, n, ;, , \\ , , i, _, 1, , {\lt}, , \cdots , {\lt}, , i, _, n]}} x_{i_1} \cdots x_{i_n} = (\text{empty sum}) = 0. \end{align*}

6.1.9 Generating function identities

Proposition 6.10

(a) In the polynomial ring \(\mathcal{P}[t]\), we have

\[ \prod _{i=1}^{N} (1 - t x_i) = \sum _{n \in \mathbb {N}} (-1)^n t^n e_n. \]

(b) In the polynomial ring \(\mathcal{P}[u,v]\), we have

\[ \prod _{i=1}^{N} (u - v x_i) = \sum _{n=0}^{N} (-1)^n u^{N-n} v^n e_n. \]

(c) In the FPS ring \(\mathcal{P}[[t]]\), we have

\[ \prod _{i=1}^{N} \frac{1}{1 - t x_i} = \sum _{n \in \mathbb {N}} t^n h_n. \]
Proof

(a) For each \(i \in \{ 1, 2, \ldots , N\} \), we have \(1 + t x_i = \sum _{a \in \{ 0,1\} } (t x_i)^a\). Multiplying these equalities over all \(i \in \{ 1, 2, \ldots , N\} \), we obtain

\begin{align*} \prod _{i=1}^{N} (1 + t x_i) & = \sum _{(a_1, \ldots , a_N) \in \{ 0,1\} ^N} t^{a_1 + \cdots + a_N} x_1^{a_1} \cdots x_N^{a_N} \\ & = \sum _{\substack{[\mathfrak , {, m, }, , \text , {, , s, q, u, a, r, e, f, r, e, e, }]}} t^{\deg \mathfrak {m}} \mathfrak {m} = \sum _{n \in \mathbb {N}} t^n e_n. \end{align*}

Substituting \(-t\) for \(t\) gives the stated identity.

(b) This is similar to part (a), using two variables \(u\) and \(v\).

(c) For each \(i \in \{ 1, 2, \ldots , N\} \), we have \(\frac{1}{1 - t x_i} = \sum _{a \in \mathbb {N}} (t x_i)^a\). Multiplying these equalities over all \(i \in \{ 1, 2, \ldots , N\} \), we obtain

\begin{align*} \prod _{i=1}^{N} \frac{1}{1 - t x_i} & = \sum _{(a_1, \ldots , a_N) \in \mathbb {N}^N} t^{a_1 + \cdots + a_N} x_1^{a_1} \cdots x_N^{a_N} \\ & = \sum _{\mathfrak {m} \text{ monomial}} t^{\deg \mathfrak {m}} \mathfrak {m} = \sum _{n \in \mathbb {N}} t^n h_n. \end{align*}

Helpers for the generating function proofs

Lemma 6.11

For each \(i\), the geometric series identity \((1 - t x_i) \cdot \sum _{k \geq 0} (t x_i)^k = 1\) holds in the power series ring \(\mathcal{P}[[t]]\). Taking the product over all \(i \in [N]\), we obtain the generating function identity \(E(t) \cdot H(t) = 1\), where \(E(t) = \prod _{i=1}^N (1 - t x_i)\) and \(H(t) = \prod _{i=1}^N \sum _{k \geq 0} (t x_i)^k\).

Proof

The identity \((1 - t x_i) \cdot \sum _{k \geq 0} (t x_i)^k = 1\) is proved by extracting coefficients: the coefficient of \(t^n\) on the left is \(x_i^n - x_i \cdot x_i^{n-1} = 0\) for \(n {\gt} 0\) and \(1\) for \(n = 0\). The product identity follows from \(\prod _i (1 - t x_i) \cdot \prod _i \sum _k (t x_i)^k = \prod _i 1 = 1\).

6.1.10 Newton–Girard formulas

Theorem 6.12 Newton–Girard formulas

For any positive integer \(n\), we have

\begin{align} \sum _{j=0}^{n} (-1)^j e_j h_{n-j} & = 0; \label{eq.thm.sf.NG.eh} \\ \sum _{j=1}^{n} (-1)^{j-1} e_{n-j} p_j & = n e_n; \label{eq.thm.sf.NG.ep} \\ \sum _{j=1}^{n} h_{n-j} p_j & = n h_n. \label{eq.thm.sf.NG.hp} \end{align}
theorem AlgebraicCombinatorics.SymmetricPolynomials.newtonGirard_eh {K : Type u_1} [CommRing K] {N : } [DecidableEq (Fin N)] (n : ) (hn : 0 < n) :
jFinset.range (n + 1), (-1) ^ j * e j * h (n - j) = 0
theorem AlgebraicCombinatorics.SymmetricPolynomials.newtonGirard_hp {K : Type u_1} [CommRing K] {N : } [DecidableEq (Fin N)] (n : ) (_hn : 0 < n) :
jFinset.range n, h (n - 1 - j) * p (j + 1) = n * h n
theorem AlgebraicCombinatorics.SymmetricPolynomials.newtonGirard_esymm {K : Type u_1} [CommRing K] {N : } (k : ) :
k * e k = (-1) ^ (k + 1) * aFinset.antidiagonal k with a.1 < k, (-1) ^ a.1 * e a.1 * p a.2
Proof

We prove formulas 7 and 9; the formula 8 can be derived by differentiating the generating function \(\prod _{i=1}^N (1 - t x_i) = \sum _n (-1)^n t^n e_n\) with respect to \(t\), and comparing coefficients (see the source for details).

Proof of 7: In the FPS ring \(\mathcal{P}[[t]]\), by Proposition 6.10 (a) and (c) we have

\[ \prod _{i=1}^{N} (1 - t x_i) = \sum _{n \in \mathbb {N}} (-1)^n t^n e_n \]

and

\[ \prod _{i=1}^{N} \frac{1}{1 - t x_i} = \sum _{n \in \mathbb {N}} t^n h_n. \]

Multiplying these two equalities, the left-hand side becomes

\[ \left(\prod _{i=1}^{N} (1 - t x_i)\right) \left(\prod _{i=1}^{N} \frac{1}{1 - t x_i}\right) = \prod _{i=1}^{N} 1 = 1. \]

The right-hand side product is \(\sum _{n \in \mathbb {N}} \left(\sum _{j=0}^n (-1)^j e_j h_{n-j}\right) t^n\). Comparing coefficients of \(t^n\) for \(n {\gt} 0\), we obtain 7.

Proof of 9: The proof is by a counting argument on monomials. Each monomial in \(h_n\) corresponds to a multiset \(s\) of size \(n\) from \([N]\). On the left-hand side, each such monomial appears exactly \(n\) times: once for each way to pick an element \(i\) in the support of \(s\) and a positive integer \(j \leq \text{count}(i, s)\), contributing to the term \(h_{n-j} p_j\). For each \(s\), the total count is \(\sum _{i=1}^N \text{count}(i, s) = n\), matching the right-hand side.

6.1.11 Fundamental Theorem of Symmetric Polynomials

Theorem 6.13 Fundamental Theorem of Symmetric Polynomials

(a) The elementary symmetric polynomials \(e_1, e_2, \ldots , e_N\) are algebraically independent (over \(K\)) and generate the \(K\)-algebra \(\mathcal{S}\).

In other words, each \(f \in \mathcal{S}\) can be uniquely written as a polynomial in \(e_1, e_2, \ldots , e_N\).

In yet other words, the map

\begin{align*} K[y_1, y_2, \ldots , y_N] & \to \mathcal{S}, \\ g & \mapsto g[e_1, e_2, \ldots , e_N] \end{align*}

is a \(K\)-algebra isomorphism.

(b) The complete homogeneous symmetric polynomials \(h_1, h_2, \ldots , h_N\) are algebraically independent (over \(K\)) and generate the \(K\)-algebra \(\mathcal{S}\).

In other words, each \(f \in \mathcal{S}\) can be uniquely written as a polynomial in \(h_1, h_2, \ldots , h_N\).

In yet other words, the map

\begin{align*} K[y_1, y_2, \ldots , y_N] & \to \mathcal{S}, \\ g & \mapsto g[h_1, h_2, \ldots , h_N] \end{align*}

is a \(K\)-algebra isomorphism.

(c) Now assume that \(K\) is a commutative \(\mathbb {Q}\)-algebra (e.g., a field of characteristic \(0\)). Then, the power sums \(p_1, p_2, \ldots , p_N\) are algebraically independent (over \(K\)) and generate the \(K\)-algebra \(\mathcal{S}\).

In other words, each \(f \in \mathcal{S}\) can be uniquely written as a polynomial in \(p_1, p_2, \ldots , p_N\).

In yet other words, the map

\begin{align*} K[y_1, y_2, \ldots , y_N] & \to \mathcal{S}, \\ g & \mapsto g[p_1, p_2, \ldots , p_N] \end{align*}

is a \(K\)-algebra isomorphism.

theorem AlgebraicCombinatorics.SymmetricPolynomials.hsymm_generates_symmetric {K : Type u_1} [CommRing K] {N : } [DecidableEq (Fin N)] [IsDomain K] (f : (S K N)) :
∃! g : MvPolynomial (Fin N) K, (MvPolynomial.aeval fun (i : Fin N) => MvPolynomial.hsymm (Fin N) K (i + 1)) g = f
theorem AlgebraicCombinatorics.SymmetricPolynomials.psum_generates_symmetric {K : Type u_1} [CommRing K] {N : } [Algebra K] [IsDomain K] (f : (S K N)) :
∃! g : MvPolynomial (Fin N) K, (MvPolynomial.aeval fun (i : Fin N) => MvPolynomial.psum (Fin N) K (i + 1)) g = f
Proof

Various proofs can be found in [ Benede25 , Theorem 171 ] , [ BluCos16 , proof of Theorem 1 ] , [ Dumas08 , Theorem 1.2.1 ] , [ Goodma15 , Theorem 9.6.6 ] , [ Smith95 , § 1.1 ] .

Part (a): Part (a) is proved by constructing the evaluation map \(K[y_1, \ldots , y_N] \to \mathcal{S}\) sending \(y_k \mapsto e_k\) and showing it is a \(K\)-algebra isomorphism. Algebraic independence follows from injectivity; generation follows from surjectivity.

Part (b): The proof uses the Newton–Girard relations to show that each \(e_k\) (for \(k \leq N\)) can be expressed as a polynomial in \(h_1, \ldots , h_N\), by strong induction on \(k\). The key identity is: from 7, \((-1)^{k+1} e_{k+1} = -\sum _{j=0}^{k} (-1)^j e_j h_{k+1-j}\), where by the induction hypothesis \(e_0, \ldots , e_k\) are already in the range of the evaluation map at \(h_1, \ldots , h_N\). The algebraic independence of the \(h_i\) then follows by a transcendence degree argument: the composition \(K[y_1, \ldots , y_N] \to \mathcal{S} \xrightarrow {\sim } K[y_1, \ldots , y_N]\) (via the isomorphism from part (a)) is a surjective endomorphism, hence bijective since polynomial rings over integral domains have finite transcendence degree.

Note: The Lean proof of part (b) requires the additional hypothesis that \(K\) is an integral domain.

Part (c): The argument is analogous to part (b). Newton’s identity 8 gives \(n \cdot e_n = \sum _{j=1}^n (-1)^{j-1} e_{n-j} p_j\). Since \(K\) is a \(\mathbb {Q}\)-algebra, \(n\) is invertible in \(K\), so we can solve for \(e_n\) as a polynomial in \(e_0, \ldots , e_{n-1}\) and \(p_1, \ldots , p_n\). By strong induction, each \(e_k\) lies in the range of the evaluation map at \(p_1, \ldots , p_N\). Algebraic independence again follows by the transcendence degree argument.

Note: The Lean formalization of part (c) contains sorry in some helper lemmas (weight constraint and triangular structure arguments).

6.1.12 Simple transpositions suffice

Lemma 6.14

For each \(i \in [N-1]\), let \(s_i \in S_N\) denote the simple transposition that swaps \(i\) and \(i+1\).

Let \(f \in \mathcal{P}\). Assume that

\begin{equation} s_k \cdot f = f \quad \text{for each } k \in [N-1]. \label{eq.lem.sf.simples-enough.ass} \end{equation}
10

Then, the polynomial \(f\) is symmetric.

Proof

The proof proceeds by showing that invariance under simple transpositions implies invariance under all transpositions of the form \(\text{swap}(i, j)\) for any \(i, j \in [N]\).

Step 1: Invariance under adjacent transpositions implies invariance under arbitrary transpositions. We prove by induction on \(|j - i|\) that \(\text{swap}(i, j) \cdot f = f\). The base case \(|j - i| = 1\) is the hypothesis 10. For the inductive step, use the conjugation identity: \(\text{swap}(i, j) = \text{swap}(i, i+1) \cdot \text{swap}(i+1, j) \cdot \text{swap}(i, i+1)\).

Step 2: Every permutation \(\sigma \in S_N\) can be written as a product of transpositions (this is a standard fact about the symmetric group). Since each transposition fixes \(f\), so does \(\sigma \).

6.1.13 Helper lemmas from the Lean formalization

The following results appear in the Lean formalization but not in the TeX source. They provide API for the definitions above.

Lemma 6.15

A squarefree monomial has degree at most \(N\).

Proof

If \(\mathfrak {m} = x_1^{a_1} \cdots x_N^{a_N}\) is squarefree, then each \(a_i \leq 1\), so \(\deg \mathfrak {m} = a_1 + \cdots + a_N \leq N\).

Lemma 6.16

For any multiset \(s\) of elements from \([N]\) of size \(m\), the sum of counts \(\sum _{i=1}^N \text{count}(i, s)\) equals \(m\).

Proof

This is the standard identity that the sum of all multiplicities in a multiset equals its cardinality. The proof splits the sum over elements that appear in \(s\) and elements that do not, the latter contributing zero.

Lemma 6.17

The elementary symmetric polynomial \(e_n\), the complete homogeneous symmetric polynomial \(h_n\), and the power sum \(p_n\) are all symmetric (i.e., belong to \(\mathcal{S}\)) for every \(n\).

Proof

For \(e_n\): permuting the variables permutes the strictly increasing \(n\)-tuples \((i_1 {\lt} \cdots {\lt} i_n)\), so the sum is unchanged. For \(h_n\) and \(p_n\): the argument is analogous, using the fact that permuting variables permutes the non-decreasing tuples (for \(h_n\)) or the individual terms \(x_i^n\) (for \(p_n\)).

Lemma 6.18

A monomial \(\mathfrak {m}\) is primal if and only if \(\mathfrak {m} = 1\) or \(\mathfrak {m} = x_i^k\) for some \(i \in [N]\) and some \(k {\gt} 0\).

Proof

If \(\mathfrak {m}\) is primal, its support has at most one element. If the support is empty, then \(\mathfrak {m} = 1\). If the support is \(\{ i\} \), then \(\mathfrak {m} = x_i^{m_i}\) for some \(m_i {\gt} 0\). The converse is immediate.

6.1.14 Monomial API

The following lemmas develop the API for monomials, connecting the exponent vector representation with the polynomial representation.

Lemma 6.19

A monomial \(\mathfrak {m}\) with exponent vector \((a_1, \ldots , a_N)\) corresponds to the polynomial \(x_1^{a_1} \cdots x_N^{a_N}\). The polynomial corresponding to the zero exponent vector is \(1\), the polynomial corresponding to the \(i\)-th standard basis vector is \(x_i\), and the polynomial corresponding to a sum of exponent vectors \(m_1 + m_2\) is the product of the corresponding polynomials.

Proof

Direct from the definition of monomials in a multivariable polynomial ring.

Lemma 6.20

For a subset \(S \subseteq [N]\), the monomial \(\mathfrak {m}_S = \prod _{i \in S} x_i\) is squarefree, has degree \(|S|\), and has support equal to \(S\).

Proof

The monomial \(\mathfrak {m}_S\) is defined as \(\sum _{i \in S} e_i\) where \(e_i\) is the \(i\)-th standard basis vector. Each entry is \(0\) or \(1\) (squarefree), the sum of entries equals \(|S|\) (degree), and the support is exactly \(S\). All properties are proved by induction on \(|S|\).

Lemma 6.21

The degree of the product of two monomials is the sum of their degrees: \(\deg (\mathfrak {m}_1 \cdot \mathfrak {m}_2) = \deg \mathfrak {m}_1 + \deg \mathfrak {m}_2\).

Proof

The degree is defined as the sum of all exponents. Since the exponent vector of \(\mathfrak {m}_1 \cdot \mathfrak {m}_2\) is the pointwise sum of the exponent vectors, the degree of the product equals the sum of the degrees.

6.1.15 Basic values of \(e_n\), \(h_n\), \(p_n\)

Lemma 6.22

We have the following basic values:

  • \(e_0 = h_0 = 1\);

  • \(e_1 = h_1 = p_1 = \sum _{i=1}^N x_i\);

  • \(p_0 = N\) (the number of variables; note this differs from the textbook convention \(p_0 = 1\)).

Proof

These follow directly from the definitions. For \(e_0\) and \(h_0\), the only \(0\)-tuple is the empty tuple, giving an empty product equal to \(1\). For \(e_1\) and \(h_1\), the \(1\)-tuples are the singletons \((i)\) for \(i \in [N]\), giving \(\sum _{i=1}^N x_i\). For \(p_1\), this is \(\sum _{i=1}^N x_i^1 = \sum _{i=1}^N x_i\). For \(p_0\), the Lean definition follows Mathlib’s convention, which gives \(p_0 = \sum _{i=1}^N x_i^0 = N\).

6.1.16 Alternative characterizations of \(e_n\), \(h_n\), \(p_n\)

Lemma 6.23

The defining formulas for \(e_n\) and \(p_n\) are:

\[ e_n = \sum _{\substack{[S, , \subseteq , [, N, ], , \\ , , |, S, |, , =, , n]}} \prod _{i \in S} x_i, \qquad p_n = \sum _{i=1}^N x_i^n. \]
Proof

Both follow immediately from the definitions: \(e_n\) is the sum over strictly increasing \(n\)-tuples, which bijects with \(n\)-element subsets \(S \subseteq [N]\); and \(p_n = \sum _{i=1}^N x_i^n\) is the definition for \(n {\gt} 0\).

6.1.17 Integer-indexed versions

Lemma 6.24

The integer-indexed versions \(e_n\), \(h_n\), \(p_n\) for \(n \in \mathbb {Z}\) satisfy:

  • \(e_n = 0\) for \(n {\lt} 0\), and \(e_n\) agrees with Definition 6.8 (a) for \(n \geq 0\);

  • \(h_n = 0\) for \(n {\lt} 0\), and \(h_n\) agrees with Definition 6.8 (b) for \(n \geq 0\);

  • \(p_n = 0\) for \(n {\lt} 0\), \(p_0 = 1\), and \(p_n = x_1^n + x_2^n + \cdots + x_N^n\) for \(n {\gt} 0\).

All are symmetric for every \(n \in \mathbb {Z}\).

Proof

By case analysis on the sign of \(n\). For non-negative \(n\), symmetry follows from Lemma 6.17. For negative \(n\), the polynomial is \(0\) which is trivially symmetric.

6.1.18 Adding a variable recurrence

Lemma 6.25

For each \(n \geq 0\), the elementary symmetric polynomial satisfies the recurrence

\[ e_{n+1}(x_1, \ldots , x_N, y) = e_{n+1}(x_1, \ldots , x_N) + y \cdot e_n(x_1, \ldots , x_N). \]

This follows by partitioning the \(n\)-element subsets of \(\{ 1, \ldots , N+1\} \) into those containing \(N+1\) and those not.

Proof

Partition \(\binom {[N+1]}{n+1}\) into subsets not containing \(N+1\) and subsets containing \(N+1\). The first group yields \(e_{n+1}(x_1, \ldots , x_N)\) (via a bijection with \(\binom {[N]}{n+1}\)). The second group yields \(y \cdot e_n(x_1, \ldots , x_N)\) (via a bijection with \(\binom {[N]}{n}\), factoring out the variable \(x_{N+1} = y\)). The proof establishes these bijections explicitly.

6.1.19 Antisymmetric polynomials

Definition 6.26
#

A polynomial \(f \in \mathcal{P}\) is antisymmetric if

\[ \sigma \cdot f = \operatorname {sign}(\sigma ) \cdot f \quad \text{for all } \sigma \in S_N. \]
Lemma 6.27

The antisymmetric polynomials form a \(K\)-submodule of \(\mathcal{P}\): the zero polynomial is antisymmetric, and the sum, scalar multiple, and negation of antisymmetric polynomials are antisymmetric.

Proof

For each property, apply a permutation \(\sigma \) and use the linearity of the action. For instance, \(\sigma \cdot (f + g) = \sigma \cdot f + \sigma \cdot g = \operatorname {sign}(\sigma )(f + g)\).

Lemma 6.28

The square of an antisymmetric polynomial is symmetric.

Proof

If \(f\) is antisymmetric, then \(\sigma \cdot (f^2) = (\sigma \cdot f)^2 = (\operatorname {sign}(\sigma ) \cdot f)^2 = \operatorname {sign}(\sigma )^2 \cdot f^2 = f^2\), using \(\operatorname {sign}(\sigma )^2 = 1\).

6.1.20 The sum of variables is symmetric

Lemma 6.29

The polynomial \(\sum _{i=1}^N x_i\) is symmetric.

Proof

This equals \(e_1\), which is symmetric by Lemma 6.17.