Erdos-Ko-Rado Theorem
Statement
Let be positive integers. A family of -element subsets of is intersecting if every two members share at least one element: for all .
The Erdos-Ko-Rado theorem states:
and equality holds for the star family (all -sets containing a fixed element ), which has exactly members.
Visualization
Take , (so , the tight case).
All 2-element subsets of (total: ):
{1,2} {1,3} {1,4} {2,3} {2,4} {3,4}
Star through element 1: , size 3.
Check intersection: any two sets in both contain 1, so they intersect.
EKR bound: . Equality holds.
Can we do better? Try , size 4. But , so this is NOT intersecting. No intersecting family of 2-subsets of has size 4.
Proof Sketch
- Arrange in a cycle. Consider all circular arrangements of .
- Count incidences. A set covers cyclic arrangements (those where its elements appear consecutively).
- Intersecting constraint. In any cyclic arrangement, at most of the consecutive -windows can belong to an intersecting family (since two windows or more apart are disjoint).
- Double-count and bound. Total incidences . Dividing by gives .
- Equality. The star achieves this bound.
Connections
The EKR theorem is a cornerstone of extremal set theory and connects to the shadow/shift technique visible in the Kruskal-Katona theorem. See Inclusion-Exclusion PrincipleInclusion-Exclusion PrincipleThe size of a union is the alternating sum of intersection sizesRead more → for counting arguments on set families, and Pigeonhole PrinciplePigeonhole PrincipleIf n+1 objects are placed into n boxes, some box contains at least two objectsRead more → for the cycle-counting argument. The bound is an instance of 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 →: .
Lean4 Proof
import Mathlib.Combinatorics.SetFamily.KruskalKatona
/-- The Erdos-Ko-Rado theorem is in Mathlib as `erdos_ko_rado`.
We alias it here and also verify the small case n=4, k=2
numerically: the bound is C(3,1) = 3. -/
theorem ekr_bound_n4_k2 : Nat.choose 3 1 = 3 := by decide
/-- The star family through 1 in {0,1,2,3} (as Fin 4) has size
C(3,1) = 3, matching the EKR bound. -/
theorem star_size_n4_k2 :
(({({0,1} : Finset (Fin 4)), ({0,2} : Finset (Fin 4)),
({0,3} : Finset (Fin 4))} : Finset (Finset (Fin 4))).card = 3) := by decide