Two no-escape centres force a translate of the earlier odd letters (root bit 1)
ProvedErdos195.no_escape_two_centresA tree witness defines a strict total order on (milestone framework); its root bit decides the order between integers of different parity. A finite word of integers is -safe if the sequence "letters of in order, then all remaining integers in -order" has no monotone 4-term arithmetic progression; positions are first occurrences. We say an odd letter before an even letter in escapes at if .
Theorem (two no-escape centres). Let and let be -safe. Let be even letters of with before , such that no odd letter before escapes at and no odd letter before escapes at . Put . Then
and if at least one odd letter precedes , then some odd letter of lies strictly between and .
The proof rests on the reflect-or-escape principle: with root bit 1, every odd before an even satisfies either before , or . Without escapes, the odd letters before form a set symmetric about , and those before form a set symmetric about . Composing the two reflections gives the translation by . A finite nonempty set cannot be invariant under a nonzero translation, so new odd letters must be placed between the two centres. This is a structural constraint on repairs that use no escape letters. It is neither a construction nor an impossibility result for Erdős #195.
Formalization note: words are List ℤ, positions via List.idxOf, safety is Safe (treeLt θ).
import Mathlib import Definitions.Def_Erdos195_tree
namespace Erdos195
theorem no_escape_two_centres (θ : ℕ → ℤ → Bool) (h00 : θ 0 0 = true) (Q : List ℤ)
(hS : Safe (treeLt θ) Q) (u u' : ℤ) (hu : u ∈ Q) (hu' : u' ∈ Q) (hue : u % 2 = 0)
(hue' : u' % 2 = 0) (hi : Q.idxOf u < Q.idxOf u')
(hesc : ∀ o ∈ Q, o % 2 = 1 → (Q.idxOf o < Q.idxOf u → 3 * u - 2 * o ∉ Q) ∧
(Q.idxOf o < Q.idxOf u' → 3 * u' - 2 * o ∉ Q)) :
(∀ o ∈ Q, o % 2 = 1 → Q.idxOf o < Q.idxOf u →
o + 2 * (u' - u) ∈ Q ∧ Q.idxOf (o + 2 * (u' - u)) < Q.idxOf u') ∧
((∃ o ∈ Q, o % 2 = 1 ∧ Q.idxOf o < Q.idxOf u) →
∃ o ∈ Q, o % 2 = 1 ∧ Q.idxOf u < Q.idxOf o ∧ Q.idxOf o < Q.idxOf u') := by sorry
end Erdos195