An active half-phase band admits a strict escape
ProvedLonelyRunner.CollectiveSecondFastest.strict_of_half_phase_bandformalizationlonely-runnerlrc-shared-repair-20261007number-theory
Write for distance to the nearest integer. For finite sets , let . A strict time means a real such that for every . Let , , and let contain only positive speeds. Assume , , , , , , , , every member of is less than , and no member of is divisible by . Assume also , , and . Then has a strict time. Membership of in is not required.
Preamble
import Mathlib import Mathlib.Data.ZMod.Units import Mathlib.GroupTheory.Index import Mathlib.RingTheory.Coprime.Lemmas import Mathlib.RingTheory.Int.Basic import Definitions.Def_LRC_SharedRepair_Defs
Formal statement
open LonelyRunner
open LonelyRunner.CollectiveSecondFastest
open BadCover
/-- Once the canonical cover has forced the half-phase resonance, its common
band exit supplies a strict time. This is the geometric half of the theorem. -/
theorem LonelyRunner.CollectiveSecondFastest.strict_of_half_phase_band {n r m Q : ℕ} {R W : Finset ℕ}
(hn : 5 ≤ n) (hr : 0 < r) (hrmax : r+2 ≤ n) (hm : 2 ≤ m)
(hrR : r ∈ R) (hlarge : n ≤ 2*r)
(hfull : n < m*(n-r)) (hpq : m*r < Q)
(hWpos : ∀p ∈ W, 0 < p)
(hslow : ∀p ∈ (W.erase (m*r)).erase Q, p < m*r)
(hunique : ∀p ∈ W.erase (m*r), ¬r ∣ p)
(hQ : Q ∈ W) (hcount : ((W.erase (m*r)).erase Q).card+1 < r.totient)
(hd : r ∣ 2*Q)
(hband : ndist (1/2-((Q:ℝ)/((m:ℝ)*r))/(n:ℝ)) ≤ 1/(n:ℝ)) :
SeparatedMulti.HasStrictTime n R W := by sorry
Source
Wade Hunter, lonely-runner research repository, https://github.com/huntrontrakkr/lonely-runner; local source snapshot 9b5f51aa235e321a3ec794c9bf60358933a8e6dc, lean/LonelyRunner/CollectiveSecondFastest.lean, lines 211–303, declaration LonelyRunner.CollectiveSecondFastest.strict_of_half_phase_band. AI-assisted formalization. The snapshot identifier records the submitted local source; it is not a claim that this commit is publicly hosted.