Global ErLV reduction interface #
This file starts the missing global bridge in draft Section 3. It fixes the cyclic notions used by the Erdos--Lovasz--Vesztergombi maximal-gap choice and states cover moves with squared distances, whose strict order agrees with the underlying Euclidean distances.
The primary-source convention is oriented: for an edge ij, a left cover
retreats i by one polygon side and a right cover advances j by one side.
The number of such moves is therefore exactly the side-count convention used
by K3Majorant.leftMoves/rightMoves.
Nonzero counterclockwise offsets from v that lead to a neighbor in
G(S,3). The order on Fin n is the order of representatives
0,1,...,n-1, so its minimum is the first counterclockwise neighbor.
Equations
- LeanPool.Erdos132ConvexK3.ccwNeighborOffsets P d₁ d₂ d₃ v = {k : Fin n | k ≠ 0 ∧ LeanPool.Erdos132ConvexK3.TopThreeAdjacent P d₁ d₂ d₃ v (LeanPool.Erdos132ConvexK3.cyclicAdvance v ↑k)}
Instances For
Nonzero clockwise offsets from v that lead to a graph neighbor.
Equations
- LeanPool.Erdos132ConvexK3.cwNeighborOffsets P d₁ d₂ d₃ v = {k : Fin n | k ≠ 0 ∧ LeanPool.Erdos132ConvexK3.TopThreeAdjacent P d₁ d₂ d₃ v (LeanPool.Erdos132ConvexK3.cyclicRetreat v ↑k)}
Instances For
First counterclockwise neighbor offset; zero is the explicit sentinel when the vertex is isolated.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The first-neighbor gap g(v), measured in polygon sides.
Equations
- LeanPool.Erdos132ConvexK3.firstNeighborGap P d₁ d₂ d₃ v = ↑(LeanPool.Erdos132ConvexK3.firstNeighborOffset P d₁ d₂ d₃ v)
Instances For
Strictly increasing a top-three edge produces another top-three edge. This is the rank fact behind termination of the primary-source cover process.
Positive degree makes the first-neighbor offset set nonempty.
With a nonempty neighbor-offset set, the selected offset is one of its members and therefore is the genuine first counterclockwise graph neighbor.
Positive degree gives a nonzero first-neighbor gap and an actual graph neighbor at that cyclic offset.
Every finite cyclic configuration admits a vertex maximizing the chosen first-neighbor gap (including the isolated-vertex sentinel convention).
A primary-source left cover of the oriented edge ij: retreating the
left endpoint by one side strictly increases the squared distance.
Equations
- LeanPool.Erdos132ConvexK3.IsLeftCover P i j = (LeanPool.Erdos132ConvexK3.sqDist (P i) (P j) < LeanPool.Erdos132ConvexK3.sqDist (P (LeanPool.Erdos132ConvexK3.cyclicRetreat i 1)) (P j))
Instances For
A primary-source right cover of the oriented edge ij: advancing the
right endpoint by one side strictly increases the squared distance.
Equations
- LeanPool.Erdos132ConvexK3.IsRightCover P i j = (LeanPool.Erdos132ConvexK3.sqDist (P i) (P j) < LeanPool.Erdos132ConvexK3.sqDist (P i) (P (LeanPool.Erdos132ConvexK3.cyclicAdvance j 1)))
Instances For
An actual sequence of strict ErLV cover moves. The indices count moves at the left and right endpoints; their order is retained by the proof tree. This prevents a terminal edge with compatible endpoint counts from being mistaken for a majorant reached from the stated starting edge.
- nil {n : ℕ} [NeZero n] {P : Fin n → Point ℝ} (i j : Fin n) : K3CoverSequence P i j 0 0
- left {n : ℕ} [NeZero n] {P : Fin n → Point ℝ} {i j : Fin n} {leftMoves rightMoves : ℕ} (hCover : IsLeftCover P i j) (tail : K3CoverSequence P (cyclicRetreat i 1) j leftMoves rightMoves) : K3CoverSequence P i j (leftMoves + 1) rightMoves
- right {n : ℕ} [NeZero n] {P : Fin n → Point ℝ} {i j : Fin n} {leftMoves rightMoves : ℕ} (hCover : IsRightCover P i j) (tail : K3CoverSequence P i (cyclicAdvance j 1) leftMoves rightMoves) : K3CoverSequence P i j leftMoves (rightMoves + 1)
Instances For
Kernel counterexample to the stronger but non-source claim that every
non-diameter top-three edge admits a cover. In the exact attempt-2 heptagon,
the d₂ edge (0,5) is already a majorant: both permitted endpoint moves
strictly shorten it. ErLV majorant existence therefore uses finite rank
ascent with a terminal case; it does not use such a universal extension
lemma.
Endpoint counts and terminal edge produced by the cover process.
- leftMoves : ℕ
Number of cover moves made at the left endpoint.
- rightMoves : ℕ
Number of cover moves made at the right endpoint.
- path : K3CoverSequence P i j self.leftMoves self.rightMoves
- adjacent : TopThreeAdjacent P d₁ d₂ d₃ (cyclicRetreat i self.leftMoves) (cyclicAdvance j self.rightMoves)
- terminal : IsMajorant P (cyclicRetreat i self.leftMoves) (cyclicAdvance j self.rightMoves)
Instances For
A left cover preserves membership in the top-three graph.
A right cover preserves membership in the top-three graph.
Two strict cover moves among exactly three distance ranks must end in the largest class.
A diameter-class edge is terminal for the cover process because every
interpoint squared distance is at most d₁.
Primary-source majorant existence for G(S,3): strict covers stay in
the top-three graph and at most two such rank raises are possible.
A jointly selected pair of actual majorant paths. The objective is the number of moves made by the two facing endpoints in ErLV Figure 4.
- first : K3MajorantWitness P d₁ d₂ d₃ z x
Majorant path starting from the first oriented edge
zx. - second : K3MajorantWitness P d₁ d₂ d₃ t u
Majorant path starting from the second oriented edge
tu. - minimalInnerMoves (first' : K3MajorantWitness P d₁ d₂ d₃ z x) (second' : K3MajorantWitness P d₁ d₂ d₃ t u) : self.first.rightMoves + self.second.leftMoves ≤ first'.rightMoves + second'.leftMoves
Instances For
The nonempty Cartesian pool of actual majorant paths has a pair minimizing the total number of moves at the two facing endpoints.
In the high-minimum-degree branch, a maximal-gap vertex and both
primary-source majorants exist. The first witness is oriented z ⟶ x, so
its endpoint counts are reversed when compared with the draft's (a,b)
convention.
The high-minimum-degree branch admits a maximal-gap vertex together with a jointly minimal pair of actual cover paths.
Convert a witness without changing endpoint orientation.
Equations
- W.toK3Majorant = { leftMoves := W.leftMoves, rightMoves := W.rightMoves, coverBudget := ⋯ }
Instances For
Convert the first source majorant z ⟶ x to the draft convention:
a counts moves at x, while b counts moves at z.
Equations
- W.toFirstK3Majorant = { leftMoves := W.rightMoves, rightMoves := W.leftMoves, coverBudget := ⋯ }
Instances For
Build the arithmetic record once the source's arc-nesting conclusion
s = u+M, M≤β has been supplied.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Exact first unresolved source fact. If x maximizes the first-neighbor
gap, z is its first clockwise neighbor, t=x+3, and u is the first
counterclockwise neighbor of t, then a jointly minimal pair of actual
majorant paths can be chosen so that the terminal endpoint s of the
majorant of zx lies on the arc from u to the terminal endpoint s' of
the majorant of tu. In side-count form this is precisely
s = cyclicAdvance u M for some M≤β.
The acute-angle/nonavoiding-majorants implication is proved in
MajorantArcNesting.lean. What remains is ErLV's undisplayed strict order of
the two inner majorant endpoints: under the draft's side-count convention it
is first.rightMoves + second.leftMoves < 3.
Equations
- One or more equations did not get rendered due to their size.