Formalizing Polyhedra using Mathlib #
This section formalizes the definitions from Chapter 2 of "Gröbner Bases and Convex Polytopes" by leveraging the existing cone and halfspace theories in Mathlib.
A Polyhedron is a convex set.
Section: Faces and Minkowski Addition (Adapted for new structures) #
Sturmfels, Chapter 2: faceω(P) := {u ∈ P : ω • u ≥ ω • v for all v ∈ P}
The face of a Polyhedron P. The input is a Polyhedron structure, not just a Set.
Instances For
Sturmfels, Chapter 2: "a face of P"
A subset F is a face of a Polyhedron P.
Equations
- PolyhedralGeometry.IsFace F P = (F ⊆ P.toSet ∧ ∃ (ω : ι → ℝ), F = PolyhedralGeometry.face ω P.toSet)
Instances For
A Polyhedron (H-representation) is a finite intersection of closed half-spaces.
This definition directly translates the text: P = {x ∈ ℝⁿ : A • x ≤ b}.
Each row i of the matrix A and the corresponding entry b i defines a
closed half-space {x | (A i) • x ≤ b i}. The polyhedron is the intersection of these.
- b : m → ℝ
The set of points in ℝⁿ satisfying the inequalities A • x ≤ b.
Instances For
A Polyhedral Cone is a finite intersection of closed linear half-spaces. It is a special case of a polyhedron where b = 0. P = {x ∈ ℝⁿ : A • x ≤ 0}.
The set of points in ℝⁿ satisfying the inequalities A • x ≤ 0.
Instances For
- toPolyhedron : Polyhedron m ι
The underlying polyhedron.
The proof that the vector b is zero.