Monochromatic triangles and the pigeonhole bound for the Ramsey numbers
DefinitionClassicalSchurRamseyThis bundle states the monochromatic-triangle property of Ramsey theory in the form used with block sums, together with the classical pigeonhole upper bound for the multicolour Ramsey numbers of triangles.
- For , the property (Lean
TriangleRamsey k N) states: for every finite set with , every set of at most colours, and every colouring that gives each pair of elements of a colour , there is a monochromatic triangle, that is, there are in with . - The function (Lean
ramseyBound) is defined by the recursion
Its first values are .
Write for the least such that every colouring of the edges of the complete graph with colours has a monochromatic triangle. For , holds when and fails when ; so it expresses the inequality without naming the Ramsey number. The recursion for is the classical recursive bound , taken with equality at every step and started from .
For the values are the Ramsey numbers . For the value is larger than the upper bound quoted by Eliahou and Revuelta. In the formalization of cited in the source field, takes the place of in Theorem 4.1 and Proposition 5.3 of Eliahou and Revuelta; this gives the upper bound , which is attained, but only . A theorem that needs a smaller bound on can take as a hypothesis, with smaller than .
Formalization Note Colours are natural numbers, and the colouring is a function of which only the values for in are constrained. The vertex set is any finite set of natural numbers, ordered by , in place of the vertex set of . In the subtraction is truncated subtraction on ; it is ordinary subtraction because .
-- Generated from lean/ClassicalSchur/Ramsey.lean by skeleton
-- subtraction: every declaration except the def-material below is deleted,
-- and project imports are rewritten to their platform Definitions bundles.
import Mathlib
namespace ClassicalSchur
/-- Every colouring with at most `k` colours of the pairs `x < y` of a set
of at least `N` naturals has a monochromatic triangle. -/
def TriangleRamsey (k N : ℕ) : Prop :=
∀ (V K : Finset ℕ) (c : ℕ → ℕ → ℕ), K.card ≤ k → N ≤ V.card →
(∀ x ∈ V, ∀ y ∈ V, x < y → c x y ∈ K) →
∃ x ∈ V, ∃ y ∈ V, ∃ z ∈ V, x < y ∧ y < z ∧ c x y = c y z ∧ c x y = c x z
/-- The pigeonhole upper bound for the triangle Ramsey numbers:
`2, 3, 6, 17, 66, …`. -/
def ramseyBound : ℕ → ℕ
| 0 => 2
| k + 1 => (k + 1) * (ramseyBound k - 1) + 2
end ClassicalSchur