Schur colourings of and the colour neighbourhoods of their difference colouring: central and endpoint neighbourhoods
DefinitionClassicalSchurColoringThis bundle defines Schur colourings of an initial interval and three neighbourhood sets of the difference colouring that a Schur colouring induces. All frontier theorems of the mission are stated with them.
Throughout, , , and for the colours are the elements of . The difference colouring of a colouring gives a pair of distinct naturals the colour .
- Let and . The colouring is a Schur colouring of (Lean
SchurColoring N c) if there are no with and . The case is included. - For a finite set , a point and a colour , the colour- neighbourhood of in (Lean
colorNbhd c V v i) is
- For , the central neighbourhood (Lean
centralNbhd c m) is the neighbourhood of the centre of in the colour of its pair with the endpoint :
The endpoint is always in , because .
4. For and a colour , the endpoint neighbourhood (Lean endpointNbhd c m i) is the colour- neighbourhood of the endpoint inside :
For example, the three classes , and form a Schur colouring of with three colours. For , the colour is the colour of , so (the points at distance , or from ). The endpoint neighbourhood of the colour of is (distances and from ), and that of the colour of is (distances and ).
A Schur colouring of with colours gives a cover of by sumfree sets, and for such a cover gives a Schur colouring; the two bridge theorems of the mission state these two directions. The neighbourhoods and are the objects of the frontier analysis of the centred Schur bound: the mission determines , the colour- degrees inside for every colour , and the size and symmetry of for every colour , for a Schur colouring of the largest interval that the centred bound does not exclude.
Formalization Note. (1) A colouring is a function on all of with values in Fin n; SchurColoring N c constrains only its values on . For there is no function . (2) The value never enters a neighbourhood, since gives . (3) Distances are Mathlib's Nat.dist, which is on . (4) Neighbourhoods are Finsets. The ambient set of is range (2 * m + 2), that is , so the point is a candidate member: for , if , and only then. For the point is the centre, and .
-- Generated from lean/ClassicalSchur/Midpoint.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
open Finset
/-- `c` colours `[1, N]` with no monochromatic Schur triple: there are no
`x, y ≥ 1` with `x + y ≤ N` and `c x = c y = c (x + y)`. The case `x = y` is
included. -/
def SchurColoring {n : ℕ} (N : ℕ) (c : ℕ → Fin n) : Prop :=
∀ x y, 0 < x → 0 < y → x + y ≤ N → c x = c y → c (x + y) ≠ c x
/-- The colour-`i` neighbourhood of `v` in `V` for the difference colouring of
`c`: the points `w ≠ v` of `V` with `c |v − w| = i`. -/
def colorNbhd {n : ℕ} (c : ℕ → Fin n) (V : Finset ℕ) (v : ℕ) (i : Fin n) : Finset ℕ :=
(V.erase v).filter fun w => c (Nat.dist v w) = i
/-- The neighbourhood of the centre `m` of `[0, 2m + 1]` in the colour
`c (m + 1)` of its edge to the endpoint `2m + 1`. -/
def centralNbhd {n : ℕ} (c : ℕ → Fin n) (m : ℕ) : Finset ℕ :=
colorNbhd c (range (2 * m + 2)) m (c (m + 1))
/-- The neighbourhood of the endpoint `2m + 1` of colour `i` inside the
central neighbourhood. -/
def endpointNbhd {n : ℕ} (c : ℕ → Fin n) (m : ℕ) (i : Fin n) : Finset ℕ :=
colorNbhd c (centralNbhd c m) (2 * m + 1) i
end ClassicalSchur