6.5 The Pieri Rules and Jacobi–Trudi Identities
6.5.1 Strips and skew partitions
Let \(\lambda \) and \(\mu \) be two \(N\)-partitions.
(a) We write \(\lambda /\mu \) for the pair \(\left( \mu ,\lambda \right) \). Such a pair is called a skew partition.
(b) We say that \(\lambda /\mu \) is a horizontal strip if we have \(\mu \subseteq \lambda \) and the Young diagram \(Y\left( \lambda /\mu \right) \) has no two boxes lying in the same column.
(c) We say that \(\lambda /\mu \) is a vertical strip if we have \(\mu \subseteq \lambda \) and the Young diagram \(Y\left( \lambda /\mu \right) \) has no two boxes lying in the same row.
Now, let \(n\in \mathbb {N}\).
(d) We say that \(\lambda /\mu \) is a horizontal \(n\)-strip if \(\lambda /\mu \) is a horizontal strip and satisfies \(\left\vert Y\left( \lambda /\mu \right) \right\vert =n\).
(e) We say that \(\lambda /\mu \) is a vertical \(n\)-strip if \(\lambda /\mu \) is a vertical strip and satisfies \(\left\vert Y\left( \lambda /\mu \right) \right\vert =n\).
- outer : NPartition N
The outer partition λ
- inner : NPartition N
The inner partition μ
The containment condition μ ⊆ λ
- s.isHorizontalNStrip n = (s.isHorizontalStrip ∧ s.size = n)
- s.isVerticalNStrip n = (s.isVerticalStrip ∧ s.size = n)
Let \(\lambda =\left( \lambda _{1},\lambda _{2},\ldots ,\lambda _{N}\right) \) and \(\mu =\left( \mu _{1},\mu _{2},\ldots ,\mu _{N}\right) \) be two \(N\)-partitions.
(a) The skew partition \(\lambda /\mu \) is a horizontal strip if and only if we have
(b) The skew partition \(\lambda /\mu \) is a vertical strip if and only if we have
(a) (\(\Rightarrow \)): A horizontal strip satisfies \(\mu _i \geq \lambda _{i+1}\) for all valid \(i\) by definition, and \(\lambda _i \geq \mu _i\) follows from the containment condition \(\mu \subseteq \lambda \). (\(\Leftarrow \)): The interlacing condition \(\mu _i \geq \lambda _{i+1}\) is exactly the horizontal strip condition.
(b) (\(\Rightarrow \)): A vertical strip satisfies \(\lambda _i \leq \mu _i + 1\) by definition, and \(\mu _i \leq \lambda _i\) follows from containment. (\(\Leftarrow \)): The condition \(\lambda _i \leq \mu _i + 1\) is exactly the vertical strip condition.
Strip characterization helpers
The definition of horizontal strip from Definition 6.197 is equivalent to the entry-wise characterization used in the enumeration of strip partitions.
Immediate from the definitions.
The definition of vertical strip from Definition 6.197 is equivalent to the entry-wise characterization used in the enumeration of strip partitions.
Immediate from the definitions.
If \(\mu \subseteq \lambda \), \(\lambda /\mu \) is a horizontal \(n\)-strip, and \(\lambda \) satisfies the upper bound constraints, then \(\lambda \) belongs to the finite set of horizontal \(n\)-strip partitions of \(\mu \). This provides a simplified membership criterion bridging the definition of horizontal \(n\)-strip with the finite set of strip partitions.
Combine the horizontal \(n\)-strip hypothesis with the size-difference computation and apply the membership characterization.
If \(\mu \subseteq \lambda \) and \(\lambda /\mu \) is a vertical \(n\)-strip, then \(\lambda \) belongs to the finite set of vertical \(n\)-strip partitions of \(\mu \).
Combine the vertical \(n\)-strip hypothesis with the size-difference computation and apply the membership characterization.
Partition transpose
The transpose (or conjugate) of an \(N\)-partition \(\lambda \) is the partition \(\lambda ^t\) whose \(i\)-th part equals \(|\{ j : j {\lt} N,\; \lambda _j {\gt} i\} |\), i.e., the number of parts of \(\lambda \) that exceed \(i\). Requires \(N {\gt} 0\); the result is a partition of length \(\lambda _1\).
Two functions \(\lambda : \mathrm{Fin}\, N \to \mathbb {N}\) and \(\lambda ^t : \mathrm{Fin}\, M \to \mathbb {N}\) are transposes of each other if for all \(i {\lt} N\) and \(j {\lt} M\):
This is the symmetric characterization of the transpose relation between Young diagrams.
If \(\lambda \) and \(\lambda ^t\) are transposes, then there is a bijection between the boxes of the Young diagram of \(\lambda \) (pairs \((i,j)\) with \(j {\lt} \lambda _i\)) and those of \(\lambda ^t\) (pairs \((j,i)\) with \(i {\lt} \lambda ^t_j\)), given by swapping coordinates.
The bijection maps \((i, j)\) to \((j, i)\). The transpose condition \(\lambda _i {\gt} j \iff \lambda ^t_j {\gt} i\) guarantees that this map is well-defined and bijective.
If \(\lambda \) and \(\lambda ^t\) are transposes, then \(\sum _i \lambda _i = \sum _j \lambda ^t_j\). That is, the total number of boxes is preserved by transposition.
Both sums count the cardinality of the respective Young diagram box sets. The bijection from Lemma 6.205 shows these sets have the same cardinality.
6.5.2 Schur and skew Schur polynomials
The Schur polynomial \(s_\lambda \) is defined as \(s_\lambda = \sum _{T \in \mathrm{SSYT}(\lambda )} x_T\), where the sum is over all semistandard Young tableaux of shape \(\lambda \) with entries in \([N]\).
- SymmetricFunctions.schur lam = ∑ T ∈ SymmetricFunctions.ssytFinset lam, T.toMonomial
The Schur polynomial of the zero partition is \(1\): \(s_0 = 1\).
The only SSYT of shape \(0\) is the empty tableau, whose monomial is \(1\).
The skew Schur polynomial \(s_{\lambda /\mu }\) is defined as \(s_{\lambda /\mu } = \sum _{T \in \mathrm{SSYT}(\lambda /\mu )} x_T\), where the sum is over all semistandard Young tableaux of skew shape \(\lambda /\mu \).
For any \(N\)-partition \(\lambda \), the skew Schur polynomial \(s_{\lambda /0}\) equals the Schur polynomial \(s_\lambda \).
A skew partition \(\lambda /0\) is just the partition \(\lambda \), so \(\mathrm{SSYT}(\lambda )\) and \(\mathrm{SSYT}(\lambda /0)\) are in natural bijection preserving monomials.
For any \(N\)-partition \(\lambda \), \(s_\lambda = s_{\lambda /0}\).
This is the reverse direction of Lemma 6.210.
6.5.3 Symmetric polynomials as Schur polynomials
The row partition \((n, 0, 0, \ldots , 0)\) with \(n\) boxes in the first row. This is the partition corresponding to \(h_n\). Requires \(N {\gt} 0\).
The column partition \((1, 1, \ldots , 1, 0, \ldots , 0)\) with \(n\) ones (i.e., \(n\) boxes in the first column). This is the partition corresponding to \(e_n\). Requires \(n \leq N\).
For \(N {\gt} 0\), the complete homogeneous symmetric polynomial \(h_n\) equals the Schur polynomial indexed by the row partition:
Both sides are sums of monomials: \(h_n\) sums over multisets of size \(n\) from \(\mathrm{Fin}\, N\), while \(s_{(n,0,\ldots ,0)}\) sums over SSYT of row partition shape. There is a natural bijection identifying a multiset of size \(n\) with the unique SSYT whose only nonempty row (row \(0\)) contains the sorted multiset entries. Weight preservation follows from the fact that both sides compute the product of \(x_j\) over the entries.
For \(n \leq N\), the elementary symmetric polynomial \(e_n\) equals the Schur polynomial indexed by the column partition:
Both sides are sums of monomials: \(e_n\) sums over subsets of \(\mathrm{Fin}\, N\) of size \(n\), while \(s_{(1^n,0^{N-n})}\) sums over SSYT of column partition shape (single-column tableaux with \(n\) rows). There is a natural bijection identifying a size-\(n\) subset with the SSYT whose column entries are the sorted elements of the subset. Injectivity, surjectivity, and weight preservation are verified explicitly.
Yamanouchi tableaux infrastructure for Pieri rules
A skew tableau \(T\) of shape \(\lambda /\mu \) has all entries zero if every cell \((i, j) \in Y(\lambda /\mu )\) satisfies \(T(i, j) = 0\). This is the key property characterizing Yamanouchi tableaux for the row partition \(\nu = (n, 0, \ldots , 0)\).
If \(T\) is a semistandard tableau with all entries equal to \(0\), then \(T\) is \(\nu \)-Yamanouchi for the row partition \(\nu = (n, 0, \ldots , 0)\) for every \(n\).
This is the reverse direction of the Yamanouchi characterization for row partitions: the content at any position \(k {\gt} 0\) vanishes when all entries are \(0\), so \(\nu + \mathrm{cont}_{\geq j}(T)\) is automatically weakly decreasing.
When all entries are \(0\), the content \(\mathrm{cont}_{\geq j}(T)\) at any position \(k {\gt} 0\) is \(0\) (no cell has entry \(k\)). Therefore \(\nu + \mathrm{cont}_{\geq j}(T) = (n + c_0, 0, \ldots , 0)\) for some \(c_0 \geq 0\), which is weakly decreasing.
Convert a multiset \(s \in \mathrm{Sym}(\mathrm{Fin}\, N, n)\) to an SSYT of row partition shape \((n, 0, \ldots , 0)\): row \(0\) contains the sorted entries of \(s\), and all other rows are empty.
- One or more equations did not get rendered due to their size.
Convert an SSYT of row partition shape \((n, 0, \ldots , 0)\) back to a multiset: extract the entries of row \(0\) (which form a weakly increasing sequence of length \(n\)).
- SymmetricFunctions.rowSSYTToSym hN n T = SymmetricFunctions.weaklyIncreasingToSym n fun (j : Fin n) => T.entries ⟨0, hN⟩ ⟨↑j, ⋯⟩
The forward and inverse maps of the multiset–row SSYT bijection are inverses: converting a multiset to a row SSYT and back gives the original multiset.
Sorting a multiset and extracting it gives back the original multiset.
Convert a subset \(s \subseteq \mathrm{Fin}\, N\) of size \(n\) to an SSYT of column partition shape \((1^n, 0^{N-n})\): column \(0\) contains the sorted elements of \(s\) in strictly increasing order.
The column entries of any SSYT of column partition shape are strictly increasing: if \(k_1 {\lt} k_2 {\lt} n\), then \(T(k_1, 0) {\lt} T(k_2, 0)\). This follows from the column-strict condition of semistandard tableaux.
By induction on \(k_2 - k_1\): the consecutive case uses column-strictness of SSYT directly; the general case follows by transitivity.
6.5.4 The Pieri rules
The finite set of \(N\)-partitions \(\lambda \) such that \(\lambda /\mu \) is a horizontal \(n\)-strip. This is computed by filtering all functions bounded by the horizontal strip constraints for weak decrease, horizontal strip condition, and size difference.
- One or more equations did not get rendered due to their size.
The finite set of \(N\)-partitions \(\lambda \) such that \(\lambda /\mu \) is a vertical \(n\)-strip. This is computed by filtering all functions bounded by the vertical strip constraints.
- One or more equations did not get rendered due to their size.
An \(N\)-partition \(\lambda \) belongs to \(\mathrm{horizontalNStripPartitions}(\mu , n)\) if and only if \(\mu \subseteq \lambda \), \(\lambda /\mu \) is a horizontal strip, and \(|\lambda | - |\mu | = n\).
Unfold the filter conditions and relate them to the strip definitions.
An \(N\)-partition \(\lambda \) belongs to \(\mathrm{verticalNStripPartitions}(\mu , n)\) if and only if \(\mu \subseteq \lambda \), \(\lambda /\mu \) is a vertical strip, and \(|\lambda | - |\mu | = n\).
Unfold the filter conditions and relate them to the strip definitions.
Let \(n\in \mathbb {N}\). Let \(\mu \) be an \(N\)-partition. Then:
(a) We have
(b) We have
(a) The proof follows from the Littlewood–Richardson rule (Theorem 6.196) by specializing to the case where one of the partitions is a single row \((n, 0, 0, \ldots , 0)\).
Alternatively, a direct combinatorial proof uses the RSK row insertion:
Expand \(h_n = \sum _{s \in \mathrm{Sym}(\mathrm{Fin}\, N, n)} \prod _{j \in s} x_j\) and \(s_\mu = \sum _{T \in \mathrm{SSYT}(\mu )} x_T\).
Distribute to get \(h_n \cdot s_\mu = \sum _{s, T} \prod _{j \in s} x_j \cdot x_T\).
Apply the RSK row insertion bijection: \(\{ (s, T) : \mathrm{Sym}(\mathrm{Fin}\, N, n) \times \mathrm{SSYT}(\mu )\} \simeq \bigsqcup _{\lambda /\mu \text{ horiz } n\text{-strip}} \mathrm{SSYT}(\lambda )\). Given a sorted multiset \(s = \{ a_1, \ldots , a_n\} \) and tableau \(T\) of shape \(\mu \), row-insert \(a_1, \ldots , a_n\) into \(T\) to get a tableau \(T'\) of shape \(\lambda \) where \(\lambda /\mu \) is a horizontal \(n\)-strip.
Weight preservation: \(\prod _{j \in s} x_j \cdot x_T = x_{T'}\).
Conclude \(h_n \cdot s_\mu = \sum _\lambda s_\lambda \).
(b) Analogous using RSK column insertion, or via the \(\omega \)-involution.
6.5.5 The Jacobi–Trudi identities
The extended \(h_n\): \(h_n = 0\) for \(n {\lt} 0\), \(h_0 = 1\). This is needed since the Jacobi–Trudi formula may have negative indices.
- SymmetricFunctions.hsymmExt n = if 0 ≤ n then MvPolynomial.hsymm (Fin N) R n.toNat else 0
There is a canonical equivalence
between lattice paths from \((a, 1)\) to \((c, N)\) and multisets of size \((c - a)^+\) from \(\mathrm{Fin}\, N\). The forward map extracts the multiset of east-step heights; the inverse sorts a multiset into a weakly increasing list.
- SymmetricFunctions.latticePathSymEquiv = { toFun := SymmetricFunctions.LatticePath.toSym, invFun := SymmetricFunctions.symToLatticePath, left_inv := ⋯, right_inv := ⋯ }
Roundtrip properties follow from the fact that sorting a weakly increasing list is the identity, and sorting a multiset then extracting gives back the multiset.
A non-intersecting path tuple (nipat) from \(\mathbf{A} = (A_1, \ldots , A_N)\) to \(\mathbf{B} = (B_1, \ldots , B_N)\) is an \(N\)-tuple of lattice paths \((p_1, \ldots , p_N)\) where \(p_i\) goes from \((\mu _i - i, 1)\) to \((\lambda _i - i, N)\), subject to a column-strictness condition: for \(i {\lt} j\), if east steps \(k\) (in path \(i\)) and \(k'\) (in path \(j\)) correspond to the same tableau column (\(\mu _i + k = \mu _j + k'\)), then the height of path \(i\) at step \(k\) is strictly less than the height of path \(j\) at step \(k'\).
The weight of a nipat is \(\prod _{i} w(p_i)\).
- paths (i : Fin N) : LatticePath (↑(mu i) - ↑↑i) (↑(lam i) - ↑↑i)
The tuple of paths, one for each i ∈ [N]
- colStrictPaths (i j : Fin N) : i < j → ∀ (k : ℕ) (hk : k < (self.paths i).eastStepHeights.length) (k' : ℕ) (hk' : k' < (self.paths j).eastStepHeights.length), mu i + k = mu j + k' → (self.paths i).eastStepHeights[k] < (self.paths j).eastStepHeights[k']
The paths satisfy column-strictness: for i < j, if east steps k (in path i) and k' (in path j) correspond to the same tableau column (mu i + k = mu j + k'), then the height of path i at step k is strictly less than the height of path j at step k'. This is the key property that makes the nipat-SSYT bijection work.
Let \(a\) and \(c\) be two integers. Then,
When \(c - a \geq 0\), the bijection between lattice paths and \(\mathrm{Sym}(\mathrm{Fin}\, N, (c-a))\) (via Lemma 6.229) gives:
When \(c - a {\lt} 0\), both sides are \(0\).
Nipat–SSYT bijection infrastructure
The forward map of the nipat–SSYT bijection: given a nipat \(\mathbf{p} = (p_1, \ldots , p_N)\), construct the skew SSYT \(T(\mathbf{p})\) of shape \(\lambda /\mu \) whose \(i\)-th row contains the east-step heights of path \(p_i\).
Row-weakness follows from the weakly increasing property of each path’s east-step heights. Column-strictness follows from the column-strictness condition of the nipat.
- One or more equations did not get rendered due to their size.
The inverse map of the nipat–SSYT bijection: given a skew SSYT \(T\) of shape \(\lambda /\mu \), construct the nipat \(\mathbf{p}(T)\) whose \(i\)-th path has east-step heights given by row \(i\) of \(T\).
The weakly increasing property of each path follows from row-weakness of \(T\). The column-strictness condition follows from column-strictness of non-adjacent rows in \(T\).
- SymmetricFunctions.ssytToNipat T = { paths := fun (i : Fin N) => SymmetricFunctions.mkLatticePathFromEntries (lam i) (mu i) (↑i) (T.entries i) ⋯, colStrictPaths := ⋯ }
Converting a nipat to a tableau and back gives the original nipat.
The entries of each row of the constructed tableau are the east-step heights of the original nipat. Converting back produces the same east-step lists.
Converting a tableau to a nipat and back gives the original tableau.
The proof uses entry specification lemmas to show the entries agree pointwise.
The weight of a nipat equals the monomial of the corresponding tableau: \(w(\mathbf{p}) = x_{T(\mathbf{p})}\) for every nipat \(\mathbf{p}\).
The weight of a nipat is \(\prod _i w(p_i)\) and the monomial of the SSYT is \(\prod _i \prod _k x_{T(i,k)}\). Since the \(k\)-th entry of row \(i\) in the tableau equals the \(k\)-th east-step height of path \(p_i\), these are equal.
The forward and inverse maps of the nipat–SSYT bijection form an equivalence of types:
- SymmetricFunctions.nipatSSYTEquiv lam mu hlam hmu hcontained = { toFun := SymmetricFunctions.nipatToSSYT, invFun := SymmetricFunctions.ssytToNipat, left_inv := ⋯, right_inv := ⋯ }
Combine the two roundtrip lemmas.
The sum of nipat weights equals the sum of SSYT monomials:
Transport the sum along the equivalence with weight preservation.
There is a bijection
where for a nipat \(\mathbf{p} = (p_1, \ldots , p_N)\), the tableau \(T(\mathbf{p})\) has its \(i\)-th row consisting of the heights of the east-steps of \(p_i\).
Moreover, \(w(\mathbf{p}) = x_{T(\mathbf{p})}\) for every nipat \(\mathbf{p}\).
The forward map sends a nipat \(\mathbf{p}\) to the tableau \(T(\mathbf{p})\); the inverse extracts the east-step heights from each row of a skew SSYT. The bijectivity is proved via:
Injectivity: Lemma 6.234 shows that converting a nipat to a tableau and back gives the original nipat.
Surjectivity: Lemma 6.235 shows that converting a tableau to a nipat and back gives the original tableau.
Weight preservation (Lemma 6.236) follows from the fact that the weight of each component path is the product of \(x_j\) over its east-step heights, which are exactly the row entries of the tableau.
The sum of nipat weights equals the skew Schur polynomial:
LGV connection for Jacobi–Trudi
The arc weight function for the Jacobi–Trudi proof on the integer lattice \(\mathbb {Z}^2\): east-steps at height \(y\) (with \(1 \leq y \leq N\)) are weighted by \(x_{y-1}\); north-steps are weighted by \(1\).
Define two \(N\)-vertices \(\mathbf{A} = (A_1, \ldots , A_N)\) and \(\mathbf{B} = (B_1, \ldots , B_N)\) by
The source \(x\)-coordinates are weakly decreasing: \(\mu _i - i \geq \mu _j - j\) when \(i \leq j\). This follows from the partition being weakly decreasing: \(\mu _i \geq \mu _j\) and \(i \leq j\) imply \(\mu _i - i \geq \mu _j - j\).
Direct computation from the weakly decreasing property of partitions.
The target \(x\)-coordinates are weakly decreasing: \(\lambda _i - i \geq \lambda _j - j\) when \(i \leq j\).
Analogous to Lemma 6.243.
Convert an LGV path (in the integer lattice digraph) from \((a, 1)\) to \((c, N)\) into a lattice path by extracting the \(y\)-coordinates at which east-steps occur and converting them to \(\mathrm{Fin}\, N\) values (by subtracting \(1\)).
The number of east-step \(y\)-coordinates extracted from an LGV path vertex list equals the \(x\)-displacement (final \(x\) minus initial \(x\)). This is a key property for the bijection between LGV paths and lattice paths.
By induction on the vertex list: each east-step increases the count by \(1\) and the \(x\)-coordinate by \(1\); north-steps change neither.
The east-step \(y\)-coordinates extracted from an LGV path are weakly increasing: since paths can only go north or east, \(y\)-coordinates can only increase or stay the same along the path.
By induction on the vertex list. For an east-step from \(v_0\) to \(v_1\), the \(y\)-coordinates satisfy \(y(v_0) = y(v_1)\), and the remaining heights are \(\geq y(v_1)\) by the inductive hypothesis and \(y\)-monotonicity.
Each east-step \(y\)-coordinate is bounded between the starting and ending \(y\)-coordinates of the path: if \(y\) is an east-step \(y\)-coordinate of a path from \((a, y_0)\) to \((c, y_1)\), then \(y_0 \leq y \leq y_1\).
Each east-step \(y\)-coordinate is the \(y\)-coordinate of some vertex of the path. The bound follows from \(y\)-monotonicity along the path.
The LGV path weight sum from \((a, 1)\) to \((c, N)\) using the Jacobi–Trudi arc weight equals \(h_{c-a}\):
When \(c - a \geq 0\), this is proved via a weight-preserving bijection between LGV paths and our lattice path type, composed with Theorem 6.231. When \(c - a {\lt} 0\), both sides are \(0\).
The LGV arc-weight product of a path equals the lattice path weight of its conversion. This follows from the fact that the arc weight assigns \(x_{y-1}\) to east-steps at height \(y\), which matches the \(\prod x_j\) formula for lattice path weight.
Reduce to showing that the product of \(x_{y-1}\) over east-step \(y\)-coordinates equals the product of \(x_h\) over the converted \(\mathrm{Fin}\, N\) heights.
The conversion from LGV path to lattice path is injective: two LGV paths with the same east-step \(y\)-coordinates have the same vertex sequence. This is because a path in the integer lattice is uniquely determined by its starting point and the sequence of east-step positions.
Two paths with the same start, end, and east-step \(y\)-coordinates must have identical vertex lists, since at each step the direction (north or east) is determined by the remaining east-step \(y\)-coordinates and the current position.
The Jacobi–Trudi matrix \(H\) equals the transpose of the LGV path weight matrix:
Each entry \(H_{i,j} = h_{\lambda _i - \mu _j - i + j}\) equals the path weight sum from \(A_j\) to \(B_i\) by Theorem 6.249, since the path length is \((\lambda _i - i) - (\mu _j - j) = \lambda _i - \mu _j - i + j\). The transposition accounts for the index swap.
The determinant of the Jacobi–Trudi matrix equals the determinant of the LGV path weight matrix: \(\det (H) = \det (M)\). This follows from \(H = M^T\) and \(\det (M^T) = \det (M)\).
Apply \(\det (H) = \det (M^T) = \det (M)\) using Lemma 6.252 and the transpose-determinant identity.
The LGV non-intersecting path tuple weight sum (using the LGV non-intersection condition) equals the nipat weight sum (using the column-strictness condition):
This requires constructing an explicit weight-preserving bijection between LGV path tuples and nipats. The bijection extracts east-step \(y\)-coordinates from LGV paths and converts them to weakly increasing sequences in \(\mathrm{Fin}\, N\). Non-intersection in the LGV sense corresponds to column-strictness in the nipat sense. Injectivity follows from Lemma 6.251; weight preservation from Lemma 6.250.
If two non-intersecting lattice paths \(p\) and \(p'\) have starting \(y\)-coordinates satisfying \(y_{\mathrm{start}}(p) {\lt} y_{\mathrm{start}}(p')\), and at some column \(x_0\) the path \(p\) is weakly above \(p'\) (in \(y\)-coordinate), then \(p\) stays weakly above \(p'\) at all subsequent columns.
This is the key geometric lemma ensuring that non-intersecting paths with ordered starting positions maintain their relative order.
By the integer lattice topology: if \(p\) is above \(p'\) at column \(x_0\) but \(p'\) rises above \(p\) at some later column, then by the intermediate value property of lattice paths, the paths must share a vertex, contradicting non-intersection.
The determinant of the Jacobi–Trudi matrix equals the sum of nipat weights:
The proof proceeds in steps:
\(\det (H) = \det (M)\) by Lemma 6.253.
Apply the LGV nonpermutable lemma to obtain \(\det (M) = \sum _{\text{LGV-nipats}} w(\mathbf{p})\). The required sorting conditions on \(\mathbf{A}\) and \(\mathbf{B}\) follow from Lemmas 6.243 and 6.244.
Connect LGV non-intersecting path tuples to non-intersecting path tuples (Definition 6.230) via Lemma 6.254.
Let \(M\in \mathbb {N}\). Let \(\lambda =\left( \lambda _{1},\lambda _{2},\ldots ,\lambda _{M}\right) \) and \(\mu =\left( \mu _{1},\mu _{2},\ldots ,\mu _{M}\right) \) be two \(M\)-partitions (i.e., weakly decreasing \(M\)-tuples of nonnegative integers). Then,
Let \(\lambda \) and \(\mu \) be two partitions. Let \(\lambda ^{t}\) and \(\mu ^{t}\) be the transposes of \(\lambda \) and \(\mu \). Let \(M\in \mathbb {N}\) be such that both \(\lambda ^{t}\) and \(\mu ^{t}\) have length \(\leq M\). We extend the partitions \(\lambda ^{t}\) and \(\mu ^{t}\) to \(M\)-tuples (by inserting zeroes at the end). Write these \(M\)-tuples \(\lambda ^{t}\) and \(\mu ^{t}\) as \(\lambda ^{t}=\left( \lambda _{1}^{t},\lambda _{2}^{t},\ldots ,\lambda _{M}^{t}\right) \) and \(\mu ^{t}=\left( \mu _{1}^{t},\mu _{2}^{t},\ldots ,\mu _{M}^{t}\right) \). Then,
From the first Jacobi–Trudi formula (Theorem 6.257) applied to the transpose partitions \(\lambda ^t\) and \(\mu ^t\): \(s_{\lambda ^t/\mu ^t} = \det (h_{(\lambda ^t)_i - (\mu ^t)_j - i + j})\). Applying the \(\omega \)-involution (\(\omega (h_n) = e_n\), \(\omega (s_{\lambda /\mu }) = s_{\lambda ^t/\mu ^t}\)) and using that \(\omega ^2 = \mathrm{id}\) gives \(s_{\lambda /\mu } = \omega (s_{\lambda ^t/\mu ^t}) = \det (\omega (h_{(\lambda ^t)_i - (\mu ^t)_j - i + j})) = \det (e_{(\lambda ^t)_i - (\mu ^t)_j - i + j})\).
6.5.6 Special cases
For non-skew Schur polynomials (\(\mu = 0\)):
6.5.7 Symmetry of Schur polynomials via Jacobi–Trudi
The extended complete homogeneous symmetric polynomial \(h_n\) (for any \(n \in \mathbb {Z}\)) is a symmetric polynomial: for any permutation \(\sigma \) of \(\mathrm{Fin}\, N\), we have \(\sigma (h_n) = h_n\). When \(n \geq 0\), this follows from the symmetry of \(h_n\). When \(n {\lt} 0\), \(h_n = 0\) is trivially symmetric.
By case analysis on \(n\): the non-negative case uses the symmetry of \(h_n\); the negative case is trivial.
If all entries of a matrix \(M\) over \(R[x_1, \ldots , x_N]\) are symmetric polynomials, then \(\det (M)\) is a symmetric polynomial. This is because for any permutation \(\sigma \), \(\sigma (\det (M)) = \det (\sigma (M)) = \det (M)\), where the first equality uses that \(\sigma \) is a ring homomorphism and the second uses that \(\sigma \) fixes each entry.
For any permutation \(\sigma \) of \(\mathrm{Fin}\, N\), the renaming by \(\sigma \) commutes with determinant (as a ring homomorphism preserves sums, products, and signs). Since each entry is fixed by the renaming, the determinant is also fixed.
Every entry of the Jacobi–Trudi matrix \(H\) is a symmetric polynomial. This follows from the fact that each entry is \(h_{\lambda _i - \mu _j - i + j}\), which is symmetric by Lemma 6.260.
Each entry is an extended \(h\)-polynomial, which is symmetric.
The determinant of the Jacobi–Trudi matrix \(\det (H)\) is a symmetric polynomial.
Skew Schur polynomials are symmetric: for any partitions \(\lambda \supseteq \mu \), \(s_{\lambda /\mu }\) is a symmetric polynomial.
This provides a proof of symmetry via the Jacobi–Trudi formula, without relying on the Bender–Knuth involution.
Schur polynomials are symmetric: for any partition \(\lambda \), \(s_\lambda \) is a symmetric polynomial.
This is a corollary of Theorem 6.264 with \(\mu = 0\).
6.5.8 The \(\omega \)-involution
The \(\omega \)-involution is an algebra automorphism of the ring of symmetric functions that swaps the elementary and complete homogeneous symmetric polynomials: \(\omega (e_n) = h_n\) and \(\omega (h_n) = e_n\). It is essential for proving the second Jacobi–Trudi formula from the first.
The \(R\)-algebra homomorphism from \(R[x_1, \ldots , x_n]\) to the symmetric subalgebra sending \(x_i\) to \(h_{i+1}\). This is the analogous construction to the elementary symmetric algebra homomorphism (which sends \(x_i\) to \(e_{i+1}\)), using complete homogeneous instead of elementary symmetric polynomials.
- SymmetricFunctions.hsymmAlgHom σ R n = MvPolynomial.aeval fun (i : Fin n) => ⟨MvPolynomial.hsymm σ R (↑i + 1), ⋯⟩
The \(\omega \)-involution on the symmetric subalgebra, defined as the composition of the complete homogeneous algebra homomorphism with the inverse of the elementary symmetric algebra equivalence. This maps \(e_k \mapsto h_k\) for \(1 \leq k \leq n\) and extends algebraically to all symmetric polynomials.
- SymmetricFunctions.omegaInvolution hn = (SymmetricFunctions.hsymmAlgHom σ R n).comp ↑(MvPolynomial.esymmAlgEquiv σ R hn).symm
The \(\omega \)-involution maps elementary to complete homogeneous: \(\omega (e_{k+1}) = h_{k+1}\) for \(k {\lt} n\).
By definition of \(\omega \): since \(\omega \) is the composition of the \(h\)-algebra homomorphism with the inverse of the \(e\)-algebra equivalence, applying it to \(e_{k+1}\) first sends \(e_{k+1}\) to the generator \(X_k\), then maps \(X_k\) to \(h_{k+1}\).
The symmetric Newton–Girard identity:
This is the “\(h\)-first” version of the Newton–Girard relations, obtained from the standard “\(e\)-first” version by reindexing \(j \mapsto n - j\) and using commutativity and the sign identity \((-1)^{n-j} \cdot (-1)^n = (-1)^j\).
Reindex the standard Newton–Girard identity \(\sum _j (-1)^j e_j h_{n-j} = 0\) via \(j \mapsto n - j\) to obtain \(\sum _j (-1)^{n-j} h_{n-j} e_j = 0\). Then factor out \((-1)^n\) and use the sign identity \((-1)^{n-j} = (-1)^n \cdot (-1)^j\) (up to rearrangement and \((-1)^{2j} = 1\)).
Recurrence for \(h_n\) from Newton–Girard: for \(n {\gt} 0\),
This follows by isolating the \(j = 0\) term in the Newton–Girard identity \(\sum _{j=0}^n (-1)^j e_j h_{n-j} = 0\) and rearranging.
From \(\sum _{j=0}^n (-1)^j e_j h_{n-j} = 0\), isolate \(j = 0\): \(h_n + \sum _{j=1}^n (-1)^j e_j h_{n-j} = 0\), hence \(h_n = -\sum _{j=1}^n (-1)^j e_j h_{n-j} = \sum _{j=1}^n (-1)^{j+1} e_j h_{n-j}\).
Recurrence for \(e_n\) from the symmetric Newton–Girard: for \(n {\gt} 0\),
This follows from \(\sum _{j=0}^n (-1)^j h_j e_{n-j} = 0\) (Theorem 6.269) by isolating \(j = 0\).
Analogous to Lemma 6.270.
The \(\omega \)-involution maps complete homogeneous to elementary: \(\omega (h_{k+1}) = e_{k+1}\) for \(k {\lt} n\).
By strong induction on \(k\):
Base case (\(k = 0\)): \(h_1 = e_1\), so \(\omega (h_1) = \omega (e_1) = h_1 = e_1\).
Inductive step: Use the Newton–Girard recurrence (Lemma 6.270) to write \(h_{k+1} = \sum _{j=1}^{k+1} (-1)^{j+1}\, e_j\, h_{k+1-j}\). Apply \(\omega \): by Theorem 6.268, \(\omega (e_j) = h_j\), and by the IH, \(\omega (h_{k+1-j}) = e_{k+1-j}\) for \(k+1-j \leq k\). Hence \(\omega (h_{k+1}) = \sum _{j=1}^{k+1} (-1)^{j+1}\, h_j\, e_{k+1-j}\), which equals \(e_{k+1}\) by the symmetric Newton–Girard recurrence (Lemma 6.271).
The \(\omega \)-involution is an involution: \(\omega \circ \omega = \mathrm{id}\).
To show \(\omega \circ \omega = \mathrm{id}\), it suffices to check on generators. Every element of the symmetric subalgebra is a polynomial in \(e_1, e_2, \ldots , e_n\) (fundamental theorem of symmetric polynomials). For each generator \(e_k\): \(\omega (\omega (e_k)) = \omega (h_k) = e_k\). Since \(\omega \) is an algebra homomorphism, the identity extends to all elements by linearity and multiplicativity.
The \(\omega \)-involution is bijective.
Both injectivity and surjectivity follow from \(\omega \circ \omega = \mathrm{id}\) (Theorem 6.273).
The \(\omega \)-involution promoted to an algebra equivalence \(\omega : \Lambda _R \xrightarrow {\sim } \Lambda _R\).
The \(\omega \)-involution commutes with determinants: for any matrix \(M\) over the symmetric subalgebra, \(\omega (\det (M)) = \det (\omega (M))\), where \(\omega (M)\) applies \(\omega \) entry-wise. This is because \(\omega \) is an algebra homomorphism, and \(\det \) is a polynomial expression in the entries (involving only addition, multiplication, and negation).
This follows from the fact that any algebra homomorphism commutes with determinant.