mathlib documentation


Carathéodory's convexity theorem #

Convex hull can be regarded as a refinement of affine span. Both are closure operators but whereas convex hull takes values in the lattice of convex subsets, affine span takes values in the much coarser sublattice of affine subspaces.

The cost of this refinement is that one no longer has bases. However Carathéodory's convexity theorem offers some compensation. Given a set s together with a point x in its convex hull, Carathéodory says that one may find an affine-independent family of elements s whose convex hull contains x. Thus the difference from the case of affine span is that the affine-independent family depends on x.

In particular, in finite dimensions Carathéodory's theorem implies that the convex hull of a set s in ℝᵈ is the union of the convex hulls of the (d+1)-tuples in s.

Main results #

Implementation details #

This theorem was formalized as part of the Sphere Eversion project.

Tags #

convex hull, caratheodory

theorem caratheodory.mem_convex_hull_erase {E : Type u} [add_comm_group E] [module E] [decidable_eq E] {t : finset E} (h : ¬affine_independent coe) {x : E} (m : x (convex_hull ) t) :
∃ (y : t), x (convex_hull ) (t.erase y)

If x is in the convex hull of some finset t whose elements are not affine-independent, then it is in the convex hull of a strict subset of t.

def caratheodory.min_card_finset_of_mem_convex_hull {E : Type u} [add_comm_group E] [module E] {s : set E} {x : E} (hx : x (convex_hull ) s) :

Given a point x in the convex hull of a set s, this is a finite subset of s of minimum cardinality, whose convex hull contains x.

theorem convex_hull_eq_union {E : Type u} [add_comm_group E] [module E] {s : set E} :
(convex_hull ) s = ⋃ (t : finset E) (hss : t s) (hai : affine_independent coe), (convex_hull ) t

Carathéodory's convexity theorem

theorem eq_pos_convex_span_of_mem_convex_hull {E : Type u} [add_comm_group E] [module E] {s : set E} {x : E} (hx : x (convex_hull ) s) :
∃ (ι : Type u) (_x : fintype ι) (z : ι → E) (w : ι → ) (hss : set.range z s) (hai : affine_independent z) (hw : ∀ (i : ι), 0 < w i), ∑ (i : ι), w i = 1 ∑ (i : ι), w i z i = x

A more explicit version of convex_hull_eq_union.