Pascal's Identity

lean4-proofcombinatoricsvisualization
(nk)=(n1k1)+(n1k)\binom{n}{k} = \binom{n-1}{k-1} + \binom{n-1}{k}

Statement

For any natural numbers nn and kk with knk \le n:

(nk)=(n1k1)+(n1k)\binom{n}{k} = \binom{n-1}{k-1} + \binom{n-1}{k}

This recurrence, together with the boundary conditions (n0)=(nn)=1\binom{n}{0} = \binom{n}{n} = 1, completely determines all binomial coefficients.

Visualization

Pascal's triangle rows 0–6, with each interior entry the sum of the two above it:

Row 0:                 1
Row 1:               1   1
Row 2:             1   2   1
Row 3:           1   3   3   1
Row 4:         1   4   6   4   1
Row 5:       1   5  10  10   5   1
Row 6:     1   6  15  20  15   6   1

The identity says: entry (n,k)(n,k) = entry (n1,k1)(n-1,k-1) + entry (n1,k)(n-1,k).

Example at row 4, column 2: (42)=6=(31)+(32)=3+3\binom{4}{2} = 6 = \binom{3}{1} + \binom{3}{2} = 3 + 3.

Arrow diagram for (42)\binom{4}{2}:

        3   3        <- row 3, positions 1 and 2
         \ /
          6          <- row 4, position 2

Proof Sketch

  1. Combinatorial argument. (nk)\binom{n}{k} counts kk-element subsets of {1,,n}\{1,\ldots,n\}.
  2. Split on element nn. Either nn is in the chosen subset or not.
  3. Case nSn \in S: must choose k1k-1 elements from {1,,n1}\{1,\ldots,n-1\} — gives (n1k1)\binom{n-1}{k-1} choices.
  4. Case nSn \notin S: must choose kk elements from {1,,n1}\{1,\ldots,n-1\} — gives (n1k)\binom{n-1}{k} choices.
  5. Sum: the two cases are disjoint and exhaustive, so (nk)=(n1k1)+(n1k)\binom{n}{k} = \binom{n-1}{k-1} + \binom{n-1}{k}.

Connections

Pascal's identity is the combinatorial core behind Binomial TheoremBinomial Theorem(x+y)n=k=0n(nk)xkynk(x+y)^n = \sum_{k=0}^{n} \binom{n}{k} x^k y^{n-k}Expanding powers of a sum via binomial coefficientsRead more → (the expansion of (x+y)n(x+y)^n sums over rows of Pascal's triangle) and is the key recurrence for Stirling NumbersStirling NumbersS(n,k)=kS(n1,k)+S(n1,k1)S(n,k) = k \cdot S(n-1,k) + S(n-1,k-1)Counting partitions of n elements into k non-empty subsetsRead more →.

Lean4 Proof

import Mathlib.Data.Nat.Choose.Basic

/-- Pascal's identity: C(n+1, k+1) = C(n, k) + C(n, k+1).
    Mathlib's `Nat.choose_succ_succ` states this directly. -/
theorem pascal_identity (n k : ) :
    Nat.choose (n + 1) (k + 1) = Nat.choose n k + Nat.choose n (k + 1) :=
  Nat.choose_succ_succ' n k