At the frontier with colours the central neighbourhood has points
ProvedClassicalSchur.card_centralNbhd_of_frontierThis is the size of the central neighbourhood at the frontier with colours.
Let with
and suppose that holds (Lean TriangleRamsey k (u + 1)): every colouring with at most colours of the pairs of a finite set of at least naturals has a monochromatic triangle, that is, . Let be a Schur colouring of with colours, and let be the central neighbourhood, the set of neighbours of the centre of in the colour for the difference colouring :
Then
By the pigeonhole step ClassicalSchur.triangleRamsey_succ, the hypothesis gives , so is the frontier interval of the centred bound for colours. The theorem fixes the size of ; the saturation theorem then fixes the colour degrees inside it. For six colours under (, , , ) it gives .
Formalization Note. The colouring is a function on all of , and SchurColoring (2 * m + 1) c constrains only its values on ; the case is included, so for . In TriangleRamsey k (u + 1) the colours are natural numbers from any Finset of at most elements, and the pair colouring is a function that is constrained only on the pairs of the vertex set; for the statement is . For the hypotheses force and , and has no Schur colouring with two colours, so the statement is vacuous there; the case is not vacuous. is the Finset centralNbhd c m, whose ambient set is range (2 * m + 2) , so the point is a candidate member ( when ); the endpoint is always a member. Distances are Nat.dist. Edge cases: is false, so (and hence ) makes the statement vacuous. The hypotheses are met for , , , (): for the Schur colouring of with classes , , , the colour is that of and has points.
import Definitions.Def_ClassicalSchurColoring import Definitions.Def_ClassicalSchurRamsey import Mathlib open ClassicalSchur open Finset
theorem ClassicalSchur.card_centralNbhd_of_frontier {k u t m : ℕ} (hR : TriangleRamsey k (u + 1))
(h2t : 2 * t = (k + 1) * u) (hm : m = (k + 2) * t) {c : ℕ → Fin (k + 2)}
(hc : SchurColoring (2 * m + 1) c) : (centralNbhd c m).card = 2 * t + 1 := by sorry