Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Common affine-height fibers, endpoint walks, and finite vertex/edge covers

Definition
Hirsch_scalar_fiber_model

by jjosh · Sep 8, 2026 · Mathlib c5ea003 (Lean v4.30.0)

convex-geometrypolytopes

Definitions for common scalar-height fibers of finitely many Euclidean factor sets; fixed-endpoint padded graph walks; strictly height-decreasing edge walks; and explicit finite covers witnessing upper bounds on the number of vertices and undirected edges.

Definition code
import Definitions.Def_Hirsch_model

set_option autoImplicit false
open scoped RealInnerProductSpace BigOperators

namespace Hirsch

/-- A fixed-endpoint padded walk in the vertex-edge graph of `P`.  Unlike
`DiamLE`, the endpoints are supplied explicitly. -/
def EndpointWalkLE {E : Type*} [AddCommGroup E] [Module ℝ E]
    (P : Set E) (B : ℕ) (u v : E) : Prop :=
  ∃ w : ℕ → E, w 0 = u ∧ w B = v ∧
    ∀ j < B, w j = w (j + 1) ∨ Adj P (w j) (w (j + 1))

/-- The common-scalar-height fiber of finitely many factor sets. -/
def ScalarHeightFiber {k d : ℕ}
    (P : Fin k → Set (EuclideanSpace ℝ (Fin d)))
    (h : Fin k → EuclideanSpace ℝ (Fin d) →ᵃ[ℝ] ℝ) :
    Set (Fin k → EuclideanSpace ℝ (Fin d)) :=
  {x | (∀ i, x i ∈ P i) ∧ ∀ i j, h i (x i) = h j (x j)}

/-- A genuine edge walk on which an affine height strictly decreases at every
step.  The `Fin (L+1)` indexing makes `L` the number of edges. -/
def StrictHeightEdgeWalk {E : Type*} [AddCommGroup E] [Module ℝ E]
    (P : Set E) (h : E →ᵃ[ℝ] ℝ) (L : ℕ) (u v : E) : Prop :=
  ∃ w : Fin (L + 1) → E,
    w ⟨0, Nat.zero_lt_succ L⟩ = u ∧
    w ⟨L, Nat.lt_succ_self L⟩ = v ∧
    (∀ j, w j ∈ P) ∧
    ∀ j : Fin L,
      Adj P (w (Fin.castSucc j)) (w (Fin.succ j)) ∧
      h (w (Fin.castSucc j)) > h (w (Fin.succ j))

/-- `VertexCover P m` means the extreme points of `P` can be listed using at
most `m` slots.  Duplicates are allowed, so this is convenient for upper bounds. -/
def VertexCover {E : Type*} [AddCommGroup E] [Module ℝ E]
    (P : Set E) (m : ℕ) : Prop :=
  ∃ vertices : Fin m → E,
    ∀ x ∈ Set.extremePoints ℝ P, ∃ j, vertices j = x

/-- `EdgeCover P m` means the undirected edges of `P` can be represented using
at most `m` oriented pairs.  Each representative itself must be a genuine edge;
either orientation may cover a requested edge. -/
def EdgeCover {E : Type*} [AddCommGroup E] [Module ℝ E]
    (P : Set E) (m : ℕ) : Prop :=
  ∃ edges : Fin m → E × E,
    (∀ j, Adj P (edges j).1 (edges j).2) ∧
    ∀ x y, Adj P x y → ∃ j, edges j = (x, y) ∨ edges j = (y, x)

end Hirsch
Source
Definitions introduced to formalize the scalar-fiber obstruction arguments in jjoshua2/prove2me-work PR #11 (2026-09-08).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactJoin Slack© 2026 Prove2Me