Catalog/Sparsity/MulticolorRamsey/Contract.lean
1import Mathlib.Combinatorics.SimpleGraph.Clique
2
3namespace Catalog.Sparsity.MulticolorRamsey
4
5/-- Multicolor Ramsey theorem: for any list of natural numbers
6 `sizes = [n₁, …, nₖ]`, there exists `N` such that every `k`-coloring of
7 edges of a complete graph on at least `N` vertices yields a monochromatic
8 clique of size `nᵢ` in color `i`, for some `i`. (Theorem 3.8) -/
9axiom multicolorRamsey (sizes : List ℕ) (hk : sizes ≠ []) :
10 ∃ N : ℕ, ∀ {V : Type} [DecidableEq V] [Fintype V],
11 N ≤ Fintype.card V →
12 ∀ (c : Sym2 V → Fin sizes.length),
13 ∃ (i : Fin sizes.length) (S : Finset V),
14 sizes.get i ≤ S.card ∧
15 (↑S : Set V).Pairwise (fun u v => c s(u, v) = i)
16
17end Catalog.Sparsity.MulticolorRamsey
18