Documentation

LeanPool.Erdos132ConvexK3.TerminalColorClosure

Terminal-color closure at the maximal-gap use site #

This file formalizes Sections 6--8 of the project's internal multi-agent proof draft. It closes the three terminal-color obligations left after TailClosure.lean: (1,2)-d₁, (2,1)-d₁, and (2,1)-d₂.

Strict order of squared Euclidean distances is strict order of distances.

Weak order of squared Euclidean distances is weak order of distances.

Strict order of Euclidean distances is strict order of their squares.

theorem LeanPool.Erdos132ConvexK3.cyclic_strict_convex_quad_offsets {n : } [NeZero n] {P : Fin nPoint } (hConvex : CyclicStrictConvex P) (base : Fin n) {a b c d : } (hab : a < b) (hbc : b < c) (hcd : c < d) (hdn : d < n) :
StrictConvexQuad (P (cyclicAdvance base a)) (P (cyclicAdvance base b)) (P (cyclicAdvance base c)) (P (cyclicAdvance base d))

Four increasing offsets, not necessarily starting at zero, form a strict convex quadrilateral.

theorem LeanPool.Erdos132ConvexK3.cyclic_offset_in_consecutive_left_open_half_plane {n : } [NeZero n] {P : Fin nPoint } (hConvex : CyclicStrictConvex P) (base : Fin n) {a k : } (hak : a + 1 < k) (hkn : k < n) :
InLeftOpenHalfPlane (P (cyclicAdvance base a)) (P (cyclicAdvance base (a + 1))) (P (cyclicAdvance base k))

Every later offset lies in the inward open half-plane of any preceding consecutive boundary pair.

theorem LeanPool.Erdos132ConvexK3.equal_radius_arc_strict_order {a b r₁ r₂ : Point } (hquad : StrictConvexQuad a b r₁ r₂) (heq : sqDist a r₁ = sqDist a r₂) :
sqDist b r₁ < sqDist b r₂

Equal radii from the first vertex of a strict convex quadrilateral are strictly ordered from its consecutive second vertex. This is the kernel form of project proof-draft Lemma 3.4.

theorem LeanPool.Erdos132ConvexK3.fixed_radii_offset_card_le_one {n : } [NeZero n] {P : Fin nPoint } (hInjective : Function.Injective P) (base a b : Fin n) (hab : P a P b) {S : Finset (Fin n)} {radiusA radiusB : } (hhalf : kS, InLeftOpenHalfPlane (P a) (P b) (P (cyclicAdvance base k))) (hradii : kS, sqDist (P a) (P (cyclicAdvance base k)) = radiusA sqDist (P b) (P (cyclicAdvance base k)) = radiusB) :
S.card 1

Fixed radii from two centers determine at most one cyclic offset when all candidate points lie in the same open half-plane.

theorem LeanPool.Erdos132ConvexK3.two_fixed_radius_pairs_card_le_two {n : } [NeZero n] {P : Fin nPoint } (hInjective : Function.Injective P) (base a b : Fin n) (hab : P a P b) {S : Finset (Fin n)} {a₁ b₁ a₂ b₂ : } (hhalf : kS, InLeftOpenHalfPlane (P a) (P b) (P (cyclicAdvance base k))) (hpairs : kS, sqDist (P a) (P (cyclicAdvance base k)) = a₁ sqDist (P b) (P (cyclicAdvance base k)) = b₁ sqDist (P a) (P (cyclicAdvance base k)) = a₂ sqDist (P b) (P (cyclicAdvance base k)) = b₂) :
S.card 2

Two allowed fixed-radius pairs give at most two cyclic offsets.

theorem LeanPool.Erdos132ConvexK3.three_fixed_radius_pairs_card_le_three {n : } [NeZero n] {P : Fin nPoint } (hInjective : Function.Injective P) (base a b : Fin n) (hab : P a P b) {S : Finset (Fin n)} {a₁ b₁ a₂ b₂ a₃ b₃ : } (hhalf : kS, InLeftOpenHalfPlane (P a) (P b) (P (cyclicAdvance base k))) (hpairs : kS, sqDist (P a) (P (cyclicAdvance base k)) = a₁ sqDist (P b) (P (cyclicAdvance base k)) = b₁ sqDist (P a) (P (cyclicAdvance base k)) = a₂ sqDist (P b) (P (cyclicAdvance base k)) = b₂ sqDist (P a) (P (cyclicAdvance base k)) = a₃ sqDist (P b) (P (cyclicAdvance base k)) = b₃) :
S.card 3

Three allowed fixed-radius pairs give at most three cyclic offsets.

noncomputable def LeanPool.Erdos132ConvexK3.erlvUOffset {n : } [NeZero n] {P : Fin nPoint } {d₁ d₂ d₃ : } (S : ErLVAtVertexUseSite P d₁ d₂ d₃) :

Offset of the first counterclockwise neighbor of x+3, measured from the selected maximal-gap vertex x.

Equations
Instances For
    noncomputable def LeanPool.Erdos132ConvexK3.erlvZOffset {n : } [NeZero n] {P : Fin nPoint } {d₁ d₂ d₃ : } (S : ErLVAtVertexUseSite P d₁ d₂ d₃) :

    Offset of the first clockwise neighbor of x, measured counterclockwise from x.

    Equations
    Instances For

      The maximal-gap budget locates u and z with three spare boundary sides between them.

      theorem LeanPool.Erdos132ConvexK3.erlv_x_head_card_le {n : } [NeZero n] {P : Fin nPoint } {d₁ d₂ d₃ : } (S : ErLVAtVertexUseSite P d₁ d₂ d₃) (β : ) ( : β 1) :
      {kccwNeighborOffsets P d₁ d₂ d₃ S.x | k erlvUOffset S + β}.card 4 + β

      At most 4+β neighbors of the maximal-gap vertex occur through the offset u+β, for β≤1.

      theorem LeanPool.Erdos132ConvexK3.erlv_x_degree_le_of_tail_card {n : } [NeZero n] {P : Fin nPoint } {d₁ d₂ d₃ : } (S : ErLVAtVertexUseSite P d₁ d₂ d₃) (β tailCap : ) ( : β 1) (htail : {kccwNeighborOffsets P d₁ d₂ d₃ S.x | erlvUOffset S + β < k}.card tailCap) :
      vertexDegree P d₁ d₂ d₃ S.x 4 + β + tailCap

      A bound on the offsets after u+β combines with the maximal-gap head count to bound the degree of x.

      noncomputable def LeanPool.Erdos132ConvexK3.erlvPUOffset {n : } [NeZero n] {P : Fin nPoint } {d₁ d₂ d₃ : } (S : ErLVAtVertexUseSite P d₁ d₂ d₃) :

      The first-neighbor u has offset uoff-1 from p=x+1.

      Equations
      Instances For
        theorem LeanPool.Erdos132ConvexK3.erlv_p_degree_le_of_arc_cards {n : } [NeZero n] {P : Fin nPoint } {d₁ d₂ d₃ : } (S : ErLVAtVertexUseSite P d₁ d₂ d₃) (leftCap tipCap rightCap : ) (hleft : {kccwNeighborOffsets P d₁ d₂ d₃ (cyclicAdvance S.x 1) | k < erlvPUOffset S}.card leftCap) (htip : {kccwNeighborOffsets P d₁ d₂ d₃ (cyclicAdvance S.x 1) | k = erlvPUOffset S}.card tipCap) (hright : {kccwNeighborOffsets P d₁ d₂ d₃ (cyclicAdvance S.x 1) | erlvPUOffset S < k}.card rightCap) :
        vertexDegree P d₁ d₂ d₃ (cyclicAdvance S.x 1) leftCap + tipCap + rightCap

        Splitting all p-neighbor offsets at u converts two open-arc bounds and the single endpoint bound into a degree bound.

        theorem LeanPool.Erdos132ConvexK3.erlv_case12_other_d1_bzero_impossible {n : } [NeZero n] {P : Fin nPoint } {d₁ d₂ d₃ : } (S : ErLVAtVertexUseSite P d₁ d₂ d₃) (h12 : S.Case12) (hOther : sqDist (P (cyclicRetreat (firstClockwiseNeighbor P d₁ d₂ d₃ S.x) S.pair.first.leftMoves)) (P (cyclicAdvance S.x 1)) = d₁) (hBZero : S.pair.first.leftMoves = 0) :

        Section 6.1: the no-outer-move part of terminal color (1,2)-d₁.

        theorem LeanPool.Erdos132ConvexK3.erlv_case12_other_d1_bone_impossible {n : } [NeZero n] {P : Fin nPoint } {d₁ d₂ d₃ : } (S : ErLVAtVertexUseSite P d₁ d₂ d₃) (h12 : S.Case12) (hOther : sqDist (P (cyclicRetreat (firstClockwiseNeighbor P d₁ d₂ d₃ S.x) S.pair.first.leftMoves)) (P (cyclicAdvance S.x 1)) = d₁) (hBOne : S.pair.first.leftMoves = 1) :

        Section 6.2: the one-outer-move part of terminal color (1,2)-d₁.

        Session-9 obligation 3/8: terminal color (2,1)-d₁ (project proof-draft Section 7).

        Session-9 obligation 4/8: terminal color (2,1)-d₂ (project proof-draft Section 8).

        The closed eight-color gate proves the source's strict inner-endpoint order without the formerly postulated coordinated exchange.

        The full source-facing ErLV majorant arc-nesting proposition is now an unconditional kernel theorem.