Order theory · formal theorem

Dilworth’s Theorem

Every finite poset in which each antichain has at most k elements admits a cover of all elements by k chains.

Lean proofpassed
Unfinished proof stepsNone
Formal resultAccepted
Dilworth theorem statement mapA finite poset whose antichains have size at most k can be covered by k chains.
Exact scope: For every finite partially ordered type, width at most k implies that k chains cover all elements.

Line counts exclude blank lines; comments and documentation count. The total is the commit-pinned first-party Lean import closure; Mathlib and other third-party dependencies are excluded.

The theorem at a glance

Dilworth’s theorem at a glance

Editorial order-theory poster explaining how a finite poset of width at most k is covered by k chains and summarizing the inductive proof.
A finite poset whose antichains have size at most k admits a cover by k chains.

Accessible transcript

antichain size ≤ k ⇒ k-chain cover

The proof uses a maximum antichain to split and rejoin recursive chain covers when possible. In the remaining case it removes a comparable minimal–maximal pair, lowers the width, recurses, and adds the pair as one chain.

Read the complete poster transcript

ORDER THEORY · FINITE POSETS

DILWORTH’S THEOREM

EVERY ANTICHAIN HAS AT MOST k ELEMENTS

THE POSET IS COVERED BY k CHAINS

CHAIN · every pair is comparable

ANTICHAIN · distinct pairs are incomparable

HOW THE PROOF MOVES

1 CHOOSE A MAXIMUM ANTICHAIN

Its size is at most k.

2 SPLIT INTO LOWER AND UPPER CLOSURES

When both are proper, recurse on each side.

3 JOIN CHAINS THROUGH COMMON ANCHORS

Corresponding lower and upper chains meet at the antichain.

4 USE THE NO-SPLIT FALLBACK

Remove a comparable minimal–maximal pair, lower the width, then add one chain.

EXACT SCOPE

Finite posets and a cover by k chains. The checked statement does not assert a disjoint partition, uniqueness, an algorithm, or an infinite-poset extension.

Theorem schematic

Width at most k, covered by k chains

A finite poset with a highlighted antichain crossing several vertical chains, followed by the same elements covered by k color-coded chains.
If every antichain has at most k elements, the finite poset can be covered by k chains.

width(P) ≤ k ⇒ P is covered by k chains

The width bound limits every pairwise-incomparable family to k elements. Dilworth’s theorem converts that obstruction into a cover of the whole finite poset by k chains.

Proof architecture

How bounded width becomes a chain cover

5 curated stages

The checked proof inducts on the finite poset. A maximum antichain either splits the order into proper lower and upper closures whose recursive chain covers can be joined through common anchors, or forces a fallback that removes a comparable minimal–maximal pair and lowers the width.

These source-anchored stages explain the retained proof route. They are not an extracted Lean proof-term dependency graph.

  1. A finite poset with one widest horizontal family of mutually incomparable elements highlighted in gold.
    Choose an antichain of maximum cardinality; the width hypothesis bounds its size by k.
    01

    Choose a maximum antichain

    |A| = width(P) ≤ k

    Finiteness supplies a maximum antichain A. Its cardinality records the poset width and is at most k, so A can index the chains that will be assembled recursively.

    Lean lemmas for this step
    • exists_max_card_antichain_of_widthAtMost
    • WidthAtMost
    • widthAtMost_max_card_antichain
  2. The selected antichain separates a finite poset into a lower closure and an upper closure with shared gold anchors.
    When both closures are proper, each is a smaller finite poset with the same width bound.
    02

    Split below and above the antichain

    P = ↓A ∪ ↑A

    Take the elements lying below A and those lying above A. If both closures are proper, strong induction applies to each while every anchor in A remains present on both sides.

    Lean lemmas for this step
    • lowerClosure
    • upperClosure
    • widthAtMost_lowerClosure_of_max_card_antichain
    • widthAtMost_upperClosure_of_max_card_antichain
  3. Lower and upper chain covers meet at corresponding gold antichain anchors to form full chains.
    Reindex the recursive covers by A and unite the lower and upper chain through each common anchor.
    03

    Join recursive chains through their anchors

    Cₐ = Cₐ⁻ ∪ Cₐ⁺

    Each recursive cover can be indexed so that its chain contains a designated anchor of A. The lower and upper chains sharing that anchor unite to a chain, and the resulting family covers the original poset.

    Lean lemmas for this step
    • exists_anchorIndexed_split_cover
    • IsChain.union_of_lower_upper_anchor
    • exists_strongCoversByChains_card_of_split
  4. A finite poset with a highlighted minimal element below a highlighted maximal element when the closure split does not reduce both sides.
    If the proper-closure split fails, choose a comparable minimal x and maximal y.
    04

    Enter the no-split fallback

    x minimal, y maximal, x ≤ y

    The failed split yields a minimal element x and a maximal element y with x ≤ y. Removing the pair leaves a smaller poset whose antichains are strictly smaller than the original maximum.

    Lean lemmas for this step
    • exists_minimal_le_maximal
    • exists_minimal_le_maximal
    • widthAtMost_erase_pair_of_no_proper_max_antichain
  5. A smaller poset is covered by k minus one chains and the removed comparable pair returns as a final gold chain.
    Cover the remainder by k−1 chains, add {x,y}, and pad if the original bound k is larger.
    05

    Recurse at width k−1 and add one chain

    (k−1)-cover of P∖{x,y} + chain {x,y}

    The width drop gives a cover of the remaining elements by k−1 chains. Since x≤y, the removed pair is itself a chain; adjoining it and padding empty chains when necessary completes the k-chain cover.

    Lean lemmas for this step
    • exists_strongCoversByChains_of_widthAtMost
    • isChain_pair_of_le
    • StrongCoversByChains.extend
    • dilworthTheorem

Exact formal proposition

Hypotheses and conclusion

theorem dilworthTheorem : DilworthTheoremStatement

Result boundary

What this page does—and does not—establish

For every finite partially ordered type, width at most k implies that k chains cover all elements.

About these visual explanations

These AI-generated visuals explain the theorem and proof route; they are not proof evidence. Their publication review was completed separately from review of the formal result. The exact Lean proposition and checked source remain authoritative.

Continue the mathematics

Start from the complete checked source

The pinned theorem and its complete local import closure let internal and external agents inspect the proof, compare an alternate route, isolate reusable lemmas, or formulate a stronger exact statement. Lean checks every proposed extension against its exact formal statement.

The ZIP contains the checked first-party Lean import closure, exact statements and boundaries, license, notice, evidence, source-footprint manifest, and an agent continuation file. Mathlib and other third-party dependencies are not bundled.

Formal-result publication and review details

Independent publication review

The formal theorem's publication gates are accepted

Lean checks the proof. Independent AI review separately accepted evidence completeness, statement alignment, result boundary, and the retained theorem wording. Those gates apply to the formal result; generated media is reviewed and promoted separately. Neither review replaces Lean's proof check or broadens the theorem.

01

Formal evidence

Independent review accepted the recorded build, exact declarations, unfinished-step scan, and axiom evidence.

02

Statement alignment

The formal declaration was accepted against the named theorem and its exact variant.

03

Result boundary

The accepted boundary keeps nearby stronger or commonly confused claims out of scope.

04

Public wording

Independent review accepted the retained theorem explanation and source presentation. Generated media follows a separate review and promotion gate.

05

Canonical source

The first-party source link is pinned to the checked package commit and exact Lean file.

06

Accepted result

A validated accepted-result record binds the four reviews to the checked formalization.

Expanded visual

Open original image in a new tab