Documentation

LeanPool.NashWilliams.Combinatorics.Front.NashWilliams

The Nash-Williams theorem #

The Nash-Williams theorem: a 2-coloring (equivalently, a subset S) of a front F on M admits a monochromatic sub-front, i.e. an infinite X ⊆ M with F | XS or F | XS = ∅. Here F | X is shrink F (M ∘ e) for the increasing enumeration M ∘ e of X.

This file stages the development:

Supporting lemmas:

Two proofs of infinite Ramsey #

Front.ramsey_seq_of_nashWilliams re-derives infinite_ramsey_seq from the Nash-Williams theorem. It is deliberately kept alongside the direct iterated-pigeonhole proof in NashWilliams.Combinatorics.Ramsey.Infinite, and the two are independent: this file does not import that one. The only lemmas the two developments share are the generic helpers in NashWilliams.Data.

Stage 1: the base 2-color / subset theorem #

theorem Front.IsFront.nash_williams {F : Set (List )} {M : } (hF : IsFront F M) (S : Set (List )) :
XSet.range M, X.Infinite (shrinkOn F XS Disjoint (shrinkOn F X) S)

The Nash-Williams theorem (subset form). For a front F on M and any subset S, there is an infinite subset X ⊆ range M on which the restricted front shrinkOn F X (the survey's F ↾ X) is entirely inside S or entirely outside S.

The carrier is stated as a set X; its strictly monotone enumeration N (with Set.range N = X, so that shrinkOn F X = shrink F N) is recovered through Set.Infinite.exists_strictMono_range.

Proved by transfinite recursion on hF.rank (the ray recursion).

Stage 2: the finite-color version #

theorem Front.IsFront.nash_williams_fin {F : Set (List )} {M : } (hF : IsFront F M) {κ : Type u_1} [Finite κ] (c : List κ) :
∃ (e : ), StrictMono e ∃ (col : κ), sshrink F (M e), c s = col

Finite-color Nash-Williams. For a front F on M and a coloring c of finite lists by a finite palette κ, there is an infinite subset M ∘ e ⊆ M on which c is constant over the restricted front.

Obtained from IsFront.nash_williams by induction on the palette with color-blurring: split off one color as a subset S, apply the base theorem, and recurse into the smaller palette on the disjoint side (a front via shrink_isFront), composing restrictions with shrink_shrink.

Stage 3: the finite-arity infinite Ramsey theorem #

theorem Front.ramsey_seq_of_nashWilliams {κ : Type u_1} [Finite κ] (k : ) (c : Finset κ) :
∃ (e : ), StrictMono e ∃ (col : κ), ∀ (t : Finset ), tSet.range et.card = kc t = col

Infinite Ramsey at arbitrary finite arity, via Nash-Williams. A finite coloring c of the size-k subsets of admits a strictly monotone e and a color col such that every size-k subset of range e has color col.

Obtained by applying IsFront.nash_williams_fin to the uniform front [ℕ]^k (powK id k) with the list-coloring s ↦ c s.toFinset, rewriting the restricted front via shrink_powK, and bridging the size-k Finsets with their sorted lists. This matches infinite_ramsey_seq and re-derives it from the Nash-Williams theorem.