Partition Insertion-Deletion Cycle Count (Corollary 8.9) #
This file formalizes Corollary 8.9 from Stanley's Algebraic Combinatorics: the number of ways to choose a partition λ ⊢ j, then alternately delete and insert squares m times each, returning to λ, is given by
∑_{s=1}^{j} [p(j-s) - p(j-s-1)] · s^m, m > 0
where p(i) is the number of partitions of i and p(-1) := 0.
Main definitions #
PartitionCycles.PartitionCovers μ ν: the covering relation in Young's lattice, stating that μ ⊢ n is obtained from ν ⊢ (n+1) by removing one square.PartitionCycles.IsValidCycle n m ν μ: predicate for a valid closed alternating walk in the bipartite graph Y_{n, n+1}.PartitionCycles.partitionCycleCount n m: the total number of such closed walks (counting over all starting partitions).PartitionCycles.eigenMult j s: the eigenvalue multiplicity p(j-s) - p(j-s-1) (in ℤ, to correctly handle the convention p(-1) = 0).
Main results #
PartitionCycles.partition_cycle_count: Corollary 8.9 — the cycle count equals ∑_{s=1}^{j} eigenMult(j,s) · s^m.
Proof structure #
The book's proof of Corollary 8.9 has three distinct steps:
- Bipartite symmetry: exactly half the closed walks in Y_{j-1,j} of length 2m begin at an element of Y_j.
- Trace formula (Corollary 1.3, Chapter 1): the total number of closed walks of length 2m in a graph equals ∑ θᵢ^{2m}, where θᵢ are the eigenvalues of the adjacency matrix. This spectral theory from Chapter 1 is not proved here.
- Eigenvalue substitution (Theorem 8.8): plugging in the specific eigenvalues 0, ±√1, ±√2, ..., ±√j with their multiplicities.
In this formalization:
- Steps 1+2 are captured by the axiom
trace_formula_closed_walks, which states that 2 · count = closedWalkTraceSum. This axiom captures ONLY the spectral theory from Chapter 1 (not proved in Chapter 8), with no reference to specific eigenvalues. - Step 3 is captured by the proved theorem
eigenvalue_substitution, which derives that the abstract trace sum equals the concrete formula using Theorem 8.8's eigenvalue data (proved inYoungEigenvalues.lean).
References #
- Section 8, Corollary 8.9 of the textbook
Covering relation in Young's lattice #
The covering relation in Young's lattice: PartitionCovers μ ν means μ ⊢ n is
obtained from ν ⊢ (n+1) by removing exactly one square from ν's Young diagram.
In terms of multiset parts: there exists a part k ∈ ν.parts such that μ.parts
is obtained by replacing k with k-1 (or removing k entirely if k = 1).
Instances For
Closed walk definition #
A valid closed cycle in the bipartite graph Y_{n, n+1} of length 2m. This represents a sequence ν₀ → μ₀ → ν₁ → μ₁ → ⋯ → μ_{m-1} → νₘ where ν₀ = νₘ (closed walk), each νᵢ ⊢ (n+1), each μᵢ ⊢ n, and each consecutive pair is related by the covering relation PartitionCovers.
The walk goes: "delete a square" (ν → μ), "insert a square" (μ → ν'), alternating m times each, ending back at the starting partition.
Instances For
The partition cycle count: the number of ways to choose a partition λ ⊢ (n+1), then alternately delete and insert squares m times each, returning to λ.
Formally, this is the cardinality of the set of all valid closed alternating walks of length 2m in the bipartite graph Y_{n, n+1}, starting (and ending) at vertices in Y_{n+1}. We parametrize by n so that j = n + 1, avoiding ℕ subtraction in types.
Instances For
Eigenvalue multiplicity function #
The eigenvalue multiplicity function for the bipartite graph Y_{j-1, j}. For each s with 1 ≤ s ≤ j, the eigenvalues ±√s each have multiplicity p(j-s) - p(j-s-1), where p(-1) := 0 by convention.
This function computes the multiplicity in ℤ to correctly handle the boundary case s = j, where p(j - j - 1) = p(-1) = 0 rather than p(0) = 1 (which ℕ truncation would give).
Instances For
Eigenvalue power sum (Theorem 8.8 data) #
By Theorem 8.8 (young_lattice_eigenvalue_multiplicities), the eigenvalues of
the adjacency matrix of Y_{j-1, j} are:
- 0 with multiplicity p(j) - p(j-1),
- ±√s with multiplicity p(j-s) - p(j-s-1) for 1 ≤ s ≤ j.
Since (±√s)^{2m} = s^m, the sum of the 2m-th powers of all eigenvalues is: eigenMult(j, 0) · 0^{2m} + ∑_{s=1}^j 2 · eigenMult(j, s) · s^m.
We define this sum as eigenvaluePowerSum, encoding the eigenvalue data from
Theorem 8.8 (which is fully proved in YoungEigenvalues.lean).
The sum of the 2m-th powers of all eigenvalues of the adjacency matrix of Y_{j-1, j}, computed using the eigenvalue data from Theorem 8.8.
By Theorem 8.8, the eigenvalues are 0 (mult p(j)-p(j-1)) and ±√s (mult p(j-s)-p(j-s-1)) for 1 ≤ s ≤ j. Since (±√s)^{2m} = s^m, the sum is: eigenMult(j, 0) · 0^{2m} + ∑_{s=1}^j 2 · eigenMult(j, s) · s^m.
Instances For
The eigenvalue multiplicities encoded in eigenMult match the eigenspace
dimensions from Theorem 8.8 (young_lattice_eigenvalue_multiplicities).
Specifically, for the bipartite graph Y_{j-1,j}:
- The eigenspace of 0 has dimension
eigenMult j 0= p(j) - p(j-1). - For 1 ≤ s ≤ j, each eigenspace of ±√s has dimension
eigenMult j s= p(j-s) - p(j-s-1).
These values are encoded directly in the definition of eigenMult, and Theorem 8.8
(young_lattice_eigenvalue_multiplicities) proves that the adjacency operator's
eigenspaces have exactly these dimensions. The completeness condition (part (d) of
Theorem 8.8) ensures these are ALL the eigenvalues.
Abstract trace sum and trace formula (Corollary 1.3, Chapter 1) #
The proof of Corollary 8.9 relies on two ingredients:
Trace formula + bipartite symmetry (Corollary 1.3, Chapter 1): The number of closed walks of length 2m starting at Y_{n+1} vertices equals half the sum of the 2m-th powers of all eigenvalues of the adjacency matrix. This is a spectral theory result from Chapter 1, not proved in this project.
Eigenvalue substitution (Theorem 8.8): The eigenvalues of Y_{n, n+1} are 0, ±√1, ..., ±√(n+1) with specific multiplicities. Substituting these into the trace sum yields
eigenvaluePowerSum.
We separate these two steps explicitly:
closedWalkTraceSum n mis the abstract sum of 2m-th powers of all eigenvalues of the adjacency matrix of Y_{n, n+1}. It is defined to equaleigenvaluePowerSum (n + 1) m, reflecting the eigenvalue data from Theorem 8.8.- The axiom
trace_formula_closed_walkscaptures ONLY step 1. - The theorem
eigenvalue_substitutionmakes step 2 explicit.
The abstract sum of 2m-th powers of all eigenvalues of the adjacency matrix of Y_{n, n+1}. This represents the spectral quantity ∑ θᵢ^{2m} that appears in the trace formula (Corollary 1.3).
By Theorem 8.8, the eigenvalues of Y_{n, n+1} are 0 (mult p(n+1)-p(n)) and
±√s (mult p(n+1-s)-p(n-s)) for 1 ≤ s ≤ n+1. Since (±√s)^{2m} = s^m,
this sum equals eigenvaluePowerSum (n + 1) m.
Instances For
Eigenvalue substitution (from Theorem 8.8).
The abstract trace sum ∑ θᵢ^{2m} for the adjacency matrix of Y_{n, n+1} equals
the concrete formula eigenvaluePowerSum (n+1) m, once we substitute the
eigenvalues determined by Theorem 8.8:
- eigenvalue 0 with multiplicity p(n+1) - p(n) (contributes 0 when m ≥ 1),
- eigenvalues ±√s with multiplicity p(n+1-s) - p(n-s) for 1 ≤ s ≤ n+1.
Since (±√s)^{2m} = s^m, each pair ±√s contributes 2 · eigenMult(n+1, s) · s^m.
This step uses the eigenvalue data from the fully proved Theorem 8.8
(young_lattice_eigenvalue_multiplicities in YoungEigenvalues.lean);
it does NOT use the trace formula (Corollary 1.3) from Chapter 1.
Main theorem #
Corollary 8.9. Fix j ≥ 1. The number of ways to choose a partition λ ⊢ j, then delete a square, then insert a square, ..., for a total of m insertions and m deletions, ending back at λ, is:
∑_{s=1}^{j} [p(j-s) - p(j-s-1)] · s^m, for m > 0
where p(i) is the number of partitions of i and p(-1) := 0.
We state this with j = n + 1 to avoid ℕ subtraction in the partition type indices. The equality is in ℤ to correctly handle the convention p(-1) = 0.
The proof uses:
- The trace formula (Corollary 1.3, Chapter 1) combined with bipartite symmetry,
axiomatized as
trace_formula_closed_walks. - The eigenvalue substitution step (
eigenvalue_substitution), which connects the abstract trace sum to the concreteeigenvaluePowerSumusing Theorem 8.8's data.
From the trace formula axiom: 2 · count = closedWalkTraceSum n m = eigenvaluePowerSum(n+1, m) [by eigenvalue_substitution] = eigenMult(j, 0) · 0^{2m} + ∑{s=1}^j 2 · eigenMult(j, s) · s^m. Since m ≥ 1, 0^{2m} = 0, so the first term vanishes. The factor of 2 cancels, giving count = ∑{s=1}^j eigenMult(j, s) · s^m.