Vandermonde's Identity
Statement
For natural numbers , , and :
The right side is a convolution: to select objects from two disjoint groups of sizes and , decide how many () come from the first group.
Visualization
Take , , . Then .
Splitting by how many come from the first group of 2:
| (from group 1) | product | ||
|---|---|---|---|
| 0 | 1 | 3 | 3 |
| 1 | 2 | 3 | 6 |
| 2 | 1 | 1 | 1 |
| sum | 10 |
Check: . The identity holds.
Proof Sketch
- Algebraic proof via polynomials. The generating function for is .
- Coefficient extraction. The coefficient of in is .
- Product of series. The coefficient of in the product of two power series is the convolution: .
- Conclusion. Both expressions equal , so they are equal.
Connections
Vandermonde's identity generalises to multinomials in Chu-Vandermonde IdentityChu-Vandermonde IdentityThe upper negation generalization of Vandermonde's identity to upper complex parameters via rising factorials.Read more →. Combined with Pascal's IdentityPascal's IdentityThe binomial coefficient recurrence: C(n,k) = C(n-1,k-1) + C(n-1,k), the engine of Pascal's triangle.Read more →, it shows the algebraic structure of the binomial coefficient table. The identity also underlies the convolution formula for the Binomial TheoremBinomial TheoremExpanding powers of a sum via binomial coefficientsRead more →.
Lean4 Proof
import Mathlib.Data.Nat.Choose.Vandermonde
/-- Vandermonde's identity: C(m+n, k) equals the convolution
sum_{i+j=k} C(m,i) * C(n,j).
Mathlib's `Nat.add_choose_eq` states this directly. -/
theorem vandermonde_identity (m n k : ℕ) :
Nat.choose (m + n) k =
∑ ij ∈ Finset.Nat.antidiagonal k, Nat.choose m ij.1 * Nat.choose n ij.2 :=
Nat.add_choose_eq m n kReferenced by
- Chu-Vandermonde IdentityCombinatorics