Truncating a vertex turns vertex distance into facet access
ProvedHirsch.truncation_access_eq_distLet be a bounded H-polytope with rows and two vertices. There is a nonzero normal and a level with for every vertex , such that in the truncated polytope , described by rows, is still a vertex and for every ,
So access to a genuine facet is exactly as hard as vertex-to-vertex distance: a polynomial bound on given-facet access (even to a facet that is a simplex, when is simple) implies a polynomial bound on the diameter with the same constants, and conversely. In particular the mission leaves polynomial_access_to_given_supporting_face, polynomial_target_face_access and polynomial_hirsch_conjecture are equivalent as polynomial existence statements.
Proof idea. Only is cut off; the new vertices are the points of the cut on the old edges at , all other vertices and the edges not at survive, and edges at are shortened. A walk to is rerouted to the cut point on its last edge, and a walk to the cut is stopped at its first arrival.
Formalization Note c is the sum of the normals tight at v (which exposes v), and γ separates the finitely many vertex values.
import Mathlib import Definitions.Def_Hirsch_model import Definitions.Def_Hirsch_walk open scoped RealInnerProductSpace
namespace Hirsch
theorem truncation_access_eq_dist (d n : ℕ) (a : Fin n → EuclideanSpace ℝ (Fin d)) (b : Fin n → ℝ)
(hbd : Bornology.IsBounded (Hpoly a b))
(u v : EuclideanSpace ℝ (Fin d))
(hu : u ∈ Set.extremePoints ℝ (Hpoly a b)) (hv : v ∈ Set.extremePoints ℝ (Hpoly a b))
(huv : u ≠ v) :
∃ (c : EuclideanSpace ℝ (Fin d)) (γ : ℝ),
c ≠ 0 ∧ γ < ⟪c, v⟫ ∧ ⟪c, u⟫ < γ ∧
(∀ x ∈ Set.extremePoints ℝ (Hpoly a b), x ≠ v → ⟪c, x⟫ < γ) ∧
let a' : Fin (n + 1) → EuclideanSpace ℝ (Fin d) := Fin.snoc a c
let b' : Fin (n + 1) → ℝ := Fin.snoc b γ
u ∈ Set.extremePoints ℝ (Hpoly a' b') ∧
(∀ L : ℕ, (∃ z ∈ Set.extremePoints ℝ (Hpoly a' b'), ⟪c, z⟫ = γ ∧ Reach (Hpoly a' b') L u z) ↔
Reach (Hpoly a b) L u v) := by sorry
end Hirsch