Dilworth's Theorem

lean4-proofgraph-theoryvisualization
width(P)=min{k:P=C1Ck}\text{width}(P) = \min\{k : P = C_1 \cup \cdots \cup C_k\}

Statement

Let PP be a finite partially ordered set. Then:

(minimum number of chains covering P)=(maximum size of an antichain in P)\text{(minimum number of chains covering } P) = \text{(maximum size of an antichain in } P)

A chain is a totally ordered subset; an antichain is a set of pairwise incomparable elements. The minimum chain cover equals the width w(P)w(P).

Visualization

Poset P={1,2,3,4,5,6}P = \{1,2,3,4,5,6\} ordered by divisibility (aba \le b iff aba \mid b):

Hasse diagram:

        6
       / \
      2   3
       \ /
        1      4      5

Full divisibility relations: 12,13,14,15,16,24,26,361|2, 1|3, 1|4, 1|5, 1|6, 2|4, 2|6, 3|6.

Antichain {4,5,6}\{4, 5, 6\}: none divides another (454\nmid 5, 464\nmid 6, 545\nmid 4, 565\nmid 6, 646\nmid 4, 656\nmid 5). Size 3.

Is there an antichain of size 4? The elements {2,3,4,5,6}\{2,3,4,5,6\} contain 242|4, 262|6, 363|6, so every 4-element subset contains a comparable pair. Maximum antichain = 3.

Chain cover with 3 chains:

  • C1={1,2,4}C_1 = \{1, 2, 4\} (chain: 1241|2|4)
  • C2={3,6}C_2 = \{3, 6\} (chain: 363|6)
  • C3={5}C_3 = \{5\} (singleton)
ChainElementsOrdered?
C1C_11,2,41, 2, 41241 \mid 2 \mid 4 — yes
C2C_23,63, 6363 \mid 6 — yes
C3C_355trivially

Minimum cover uses 3 chains = maximum antichain size 3. Dilworth's theorem holds.

Proof Sketch

  1. Lower bound: Each chain can contain at most one element from any antichain AA, so any chain cover needs A\ge |A| chains; thus min cover \ge max antichain.
  2. Upper bound (by induction on P|P|): Take a maximal element mm.
    • If every maximum antichain contains mm: remove mm; by induction find a min chain cover of P{m}P\setminus\{m\} with w(P{m})=w(P)w(P\setminus\{m\}) = w(P) chains (the antichain not involving mm has the same width); extend one chain to include mm.
    • Otherwise: there exists a maximum antichain AA not containing mm. Split PP into the set DD of elements \le some member of AA and the set UU of elements \ge some member of AA. Each has smaller width; combine chain covers by matching along AA.

Connections

Dilworth's theorem is the poset analogue of König's Theorem (Bipartite)König's Theorem (Bipartite)ν(G)=τ(G) for bipartite G\nu(G) = \tau(G) \text{ for bipartite } GIn any bipartite graph, the size of a maximum matching equals the size of a minimum vertex cover.Read more → — both express a min-cover/max-packing duality. The dual result (Mirsky's theorem: minimum antichain cover = length of longest chain) is proved by the same strategy. Both connect to Hall's Marriage TheoremHall's Marriage TheoremSX,  SN(S)     perfect matching\forall S \subseteq X,\; |S| \le |N(S)| \iff \exists \text{ perfect matching}A bipartite graph has a perfect matching from X to Y iff every subset of X has at least as many neighbors in Y.Read more → via the bipartite matching on poset elements. The width of the divisibility poset also relates to the structure counted by <a class="concept-link" data-concept="Cayley's Formula (nn2n^{n-2} trees)">Cayley's Formula (nn2n^{n-2} trees).

Lean4 Proof

-- Dilworth's theorem is not in Mathlib v4.28.0.
-- We verify the concrete instance: divisibility poset on {1,2,3,4,5,6}
-- has width 3 (antichain {4,5,6}) and a 3-chain cover.

-- Check that {4,5,6} is an antichain under divisibility:
example : ¬ (4 : )  5 := by decide
example : ¬ (4 : )  6 := by decide
example : ¬ (5 : )  4 := by decide
example : ¬ (5 : )  6 := by decide
example : ¬ (6 : )  4 := by decide
example : ¬ (6 : )  5 := by decide

-- Check that the three chains cover {1,2,3,4,5,6}:
-- C1 = {1,2,4}, C2 = {3,6}, C3 = {5}; union = {1,2,3,4,5,6}
example : ({1,2,4} ∪ {3,6} ∪ {5} : Finset ) = {1,2,3,4,5,6} := by decide