Documentation

LeanPool.ErdosGinzburgZiv.EGZ.Convex.VertexWeights

Finite convex combinations of polytope vertices #

This file packages membership in the convex hull of the vertex set as a finite family of real weights. Real weights are necessary for an arbitrary real point of a rational polytope: even an interval with rational endpoints contains points which admit no rational convex coefficients.

The support lemmas record the two properties needed by reductions to finite vertex families. A positive summand of a combination lying on an exposed face lies on that face, and a positive summand of a combination equal to a vertex must be that vertex.

The finite set of actual vertices of a rational polytope.

Equations
Instances For

    A convex combination indexed by the complete finite vertex set of P.

    The weight is stored on the ambient coordinate type because this is the form returned by Finset.mem_convexHull' and is convenient when a later argument supplies coefficients vertex by vertex. Only its values on vertexFinset enter the data.

    Instances For

      Every point of a rational polytope has a finite convex-combination representation using all of its vertices (with zero weights permitted).

      theorem EGZ.RationalPolytope.eq_of_pos_of_eq_convexCombination_of_mem_vertexSet {d : ℕ} {P : RationalPolytope d} {I : Type u_1} [Fintype I] (points : I → RealCoord d) (weight : I → ℝ) (q : RealCoord d) (hpoints : ∀ (i : I), points i ∈ P.carrier) (hweight0 : ∀ (i : I), 0 ≤ weight i) (hweightsum : ∑ i : I, weight i = 1) (hbary : q = ∑ i : I, weight i • points i) (hq : q ∈ P.vertexSet) {i : I} (hi : 0 < weight i) :
      points i = q

      In any finite convex combination equal to an extreme point of P, a strictly positive summand is that extreme point. The inputs need only lie in P; they need not themselves be vertices.

      This indexed form is convenient for zero-sum reductions, whose coefficients are naturally indexed by the original finite family.

      theorem EGZ.RationalPolytope.VertexWeights.mem_face_of_pos {d : ℕ} {P : RationalPolytope d} {q : RealCoord d} (W : P.VertexWeights q) (F : P.Face) (hqF : q ∈ F.carrier) {v : RealCoord d} (hv : v ∈ P.vertexFinset) (hpos : 0 < W.weight v) :

      If the represented point lies in an exposed face, every vertex carrying positive weight lies in that face.

      theorem EGZ.RationalPolytope.VertexWeights.eq_of_pos_of_mem_vertexSet {d : ℕ} {P : RationalPolytope d} {q : RealCoord d} (W : P.VertexWeights q) (hq : q ∈ P.vertexSet) {v : RealCoord d} (hv : v ∈ P.vertexFinset) (hpos : 0 < W.weight v) :
      v = q

      In a convex representation of an extreme point of P, every vertex with positive weight is the represented point itself.

      Equivalently, every vertex different from an extreme represented point has zero weight.