Mathlib theorem · Existing formal mathematics

Existing in Mathlib · Combinatorics

Sperner’s Theorem

Take a finite collection of subsets in which no selected set contains another selected set. Sperner’s theorem says that the collection cannot be larger than the family of all subsets having the middle size.

Exact theorem

Exact Mathlib statement

theorem IsAntichain.sperner {α : Type*} [Fintype α] {𝒜 : Finset (Finset α)} (h𝒜 : IsAntichain (fun s t => s ⊆ t) (SetLike.coe 𝒜)) : 𝒜.card ≤ Nat.choose (Fintype.card α) (Fintype.card α / 2)

The theorem at a glance

Sperner’s Theorem at a glance

A visual guide to the theorem's hypotheses, structure, and conclusion; the exact statement gives the formal detail.

Shadows and the LYM density bound force every finite antichain below the size of the Boolean lattice’s middle layer. Explanatory diagram.
Detailed visual description

The poster begins with incomparable subsets, widens the Boolean lattice toward its middle rank, and follows the source route through lower shadows and LYM density before reaching the binomial bound. A scope footer states that the selected declaration does not classify equality.

Statement structure

From hypotheses to conclusion

Statement map for Sperner’s TheoremAn antichain of subsets of an n-element set has at most as many members as a middle layer of the Boolean lattice. The pinned upstream declaration is IsAntichain.sperner. The exact checked statement is theorem IsAntichain.sperner {α : Type*} [Fintype α] {𝒜 : Finset (Finset α)} (h𝒜 : IsAntichain (fun s t => s ⊆ t) (SetLike.coe 𝒜)) : 𝒜.card ≤ Nat.choose (Fintype.card α) (Fintype.card α / 2).Mathematical readingAn antichain of subsetsof an n-element set hasat most as many membersas a middle layer of theBoolean lattice.Pinned declarationmathlib ·IsAntichain.spernerExact checked formtheoremIsAntichain.sperner {α :Type*} [Fintype α] {𝒜 :Finset (Finset α)} (h𝒜 :IsAntichain (fun s t =>s ⊆ t) (SetLike.coe 𝒜)): 𝒜.card ≤ Nat.choose(Fintype.card α)(Fintype.card α / 2)Statement map for Sperner’s TheoremAn antichain of subsets of an n-element set has at most as many members as a middle layer of the Boolean lattice. The pinned upstream declaration is IsAntichain.sperner. The exact checked statement is theorem IsAntichain.sperner {α : Type*} [Fintype α] {𝒜 : Finset (Finset α)} (h𝒜 : IsAntichain (fun s t => s ⊆ t) (SetLike.coe 𝒜)) : 𝒜.card ≤ Nat.choose (Fintype.card α) (Fintype.card α / 2).Mathematical readingAn antichain of subsetsof an n-element set hasat most as many membersas a middle layer of theBoolean lattice.Pinned declarationmathlib ·IsAntichain.spernerExact checked formtheoremIsAntichain.sperner {α :Type*} [Fintype α] {𝒜 :Finset (Finset α)} (h𝒜 :IsAntichain (fun s t =>s ⊆ t) (SetLike.coe 𝒜)): 𝒜.card ≤ Nat.choose(Fintype.card α)(Fintype.card α / 2)

This map summarizes the statement's structure; the exact Mathlib declaration remains authoritative.

No antichain can contain more subsets than a middle rank of the Boolean lattice. Explanatory diagram.
Detailed visual description

A count-exact Boolean lattice on four elements is arranged in layers of sizes one, four, six, four, and one. The six middle-rank subsets form the highlighted extremal layer, while containment edges make their mutual incomparability visible.

Why it matters

A mathematical landmark

Sperner’s theorem is a foundational extremal result about the Boolean lattice. Mathlib’s proof reaches it through shadows and the Lubell–Yamamoto–Meshalkin inequality, giving the page a strong source-anchored proof story.

ProofAtlas record

What has been checked

Upstream indexedPinned source bytes verified locally
Locally reproducedExact upstream declaration replayed
Reviewed pageCurrent public presentation reviewed
Accepted Atlas resultNot recorded for the preferred artifact

Mathlib is the source of the theorem; the local Lean replay and page review are separate.

Claim boundary

No new theorem is claimed

This page indexes Mathlib’s finite-subset-poset form of Sperner’s theorem. The ground type is finite, the family is a Finset of Finsets, and incomparability is under subset inclusion. The selected declaration proves only the sharp numerical upper bound; it does not classify equality cases or say that every antichain is a rank layer.

Source and local evidence

Where the theorem comes from

Existing declaration
IsAntichain.sperner in mathlib
Relationship
The checked artifact is the upstream declaration itself
Local Lean evidence
artifact.library.mathlib.sperner-theorem.v001
Source
Open the pinned upstream reference