# mathlibdocumentation

analysis.convex.topology

# Topological and metric properties of convex sets #

We prove the following facts:

• convex.interior : interior of a convex set is convex;
• convex.closure : closure of a convex set is convex;
• set.finite.compact_convex_hull : convex hull of a finite set is compact;
• set.finite.is_closed_convex_hull : convex hull of a finite set is closed;
• convex_on_norm, convex_on_dist : norm and distance to a fixed point is convex on any convex set;
• convex_on_univ_norm, convex_on_univ_dist : norm and distance to a fixed point is convex on the whole space;
• convex_hull_ediam, convex_hull_diam : convex hull of a set has the same (e)metric diameter as the original set;
• bounded_convex_hull : convex hull of a set is bounded if and only if the original set is bounded.
• bounded_std_simplex, is_closed_std_simplex, compact_std_simplex: topological properties of the standard simplex;
theorem is_preconnected.convex {s : set } :
s

Alias of the reverse direction of real.convex_iff_is_preconnected.

### Standard simplex #

theorem std_simplex_subset_closed_ball {ι : Type u_1} [fintype ι] :

Every vector in std_simplex 𝕜 ι has max-norm at most 1.

theorem bounded_std_simplex (ι : Type u_1) [fintype ι] :

std_simplex ℝ ι is bounded.

theorem is_closed_std_simplex (ι : Type u_1) [fintype ι] :

std_simplex ℝ ι is closed.

theorem compact_std_simplex (ι : Type u_1) [fintype ι] :

std_simplex ℝ ι is compact.

### Topological vector space #

theorem convex.combo_interior_closure_subset_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {a b : 𝕜} (ha : 0 < a) (hb : 0 b) (hab : a + b = 1) :
a + b

If s is a convex set, then a • interior s + b • closure s ⊆ interior s for all 0 < a, 0 ≤ b, a + b = 1. See also convex.combo_interior_self_subset_interior for a weaker version.

theorem convex.combo_interior_self_subset_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {a b : 𝕜} (ha : 0 < a) (hb : 0 b) (hab : a + b = 1) :
a + b s

If s is a convex set, then a • interior s + b • s ⊆ interior s for all 0 < a, 0 ≤ b, a + b = 1. See also convex.combo_interior_closure_subset_interior for a stronger version.

theorem convex.combo_closure_interior_subset_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {a b : 𝕜} (ha : 0 a) (hb : 0 < b) (hab : a + b = 1) :
a + b

If s is a convex set, then a • closure s + b • interior s ⊆ interior s for all 0 ≤ a, 0 < b, a + b = 1. See also convex.combo_self_interior_subset_interior for a weaker version.

theorem convex.combo_self_interior_subset_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {a b : 𝕜} (ha : 0 a) (hb : 0 < b) (hab : a + b = 1) :
a s + b

If s is a convex set, then a • s + b • interior s ⊆ interior s for all 0 ≤ a, 0 < b, a + b = 1. See also convex.combo_closure_interior_subset_interior for a stronger version.

theorem convex.combo_interior_closure_mem_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x ) (hy : y ) {a b : 𝕜} (ha : 0 < a) (hb : 0 b) (hab : a + b = 1) :
a x + b y
theorem convex.combo_interior_self_mem_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x ) (hy : y s) {a b : 𝕜} (ha : 0 < a) (hb : 0 b) (hab : a + b = 1) :
a x + b y
theorem convex.combo_closure_interior_mem_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x ) (hy : y ) {a b : 𝕜} (ha : 0 a) (hb : 0 < b) (hab : a + b = 1) :
a x + b y
theorem convex.combo_self_interior_mem_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x s) (hy : y ) {a b : 𝕜} (ha : 0 a) (hb : 0 < b) (hab : a + b = 1) :
a x + b y
theorem convex.open_segment_interior_closure_subset_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x ) (hy : y ) :
x y
theorem convex.open_segment_interior_self_subset_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x ) (hy : y s) :
x y
theorem convex.open_segment_closure_interior_subset_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x ) (hy : y ) :
x y
theorem convex.open_segment_self_interior_subset_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x s) (hy : y ) :
x y
theorem convex.add_smul_sub_mem_interior' {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x ) (hy : y ) {t : 𝕜} (ht : t 1) :
x + t (y - x)

If x ∈ closure s and y ∈ interior s, then the segment (x, y] is included in interior s.

theorem convex.add_smul_sub_mem_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x s) (hy : y ) {t : 𝕜} (ht : t 1) :
x + t (y - x)

If x ∈ s and y ∈ interior s, then the segment (x, y] is included in interior s.

theorem convex.add_smul_mem_interior' {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x ) (hy : x + y ) {t : 𝕜} (ht : t 1) :
x + t y

If x ∈ closure s and x + y ∈ interior s, then x + t y ∈ interior s for t ∈ (0, 1].

theorem convex.add_smul_mem_interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) {x y : E} (hx : x s) (hy : x + y ) {t : 𝕜} (ht : t 1) :
x + t y

If x ∈ s and x + y ∈ interior s, then x + t y ∈ interior s for t ∈ (0, 1].

@[protected]
theorem convex.interior {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) :

In a topological vector space, the interior of a convex set is convex.

@[protected]
theorem convex.closure {E : Type u_2} {𝕜 : Type u_3} [ E] {s : set E} (hs : s) :
(closure s)

In a topological vector space, the closure of a convex set is convex.

theorem set.finite.compact_convex_hull {E : Type u_2} [ E] {s : set E} (hs : s.finite) :

Convex hull of a finite set is compact.

theorem set.finite.is_closed_convex_hull {E : Type u_2} [ E] [t2_space E] {s : set E} (hs : s.finite) :

Convex hull of a finite set is closed.

theorem convex.closure_subset_image_homothety_interior_of_one_lt {E : Type u_2} [ E] {s : set E} (hs : s) {x : E} (hx : x ) (t : ) (ht : 1 < t) :
t) ''

If we dilate the interior of a convex set about a point in its interior by a scale t > 1, the result includes the closure of the original set.

TODO Generalise this from convex sets to sets that are balanced / star-shaped about x.

theorem convex.closure_subset_interior_image_homothety_of_one_lt {E : Type u_2} [ E] {s : set E} (hs : s) {x : E} (hx : x ) (t : ) (ht : 1 < t) :
interior ( t) '' s)

If we dilate a convex set about a point in its interior by a scale t > 1, the interior of the result includes the closure of the original set.

TODO Generalise this from convex sets to sets that are balanced / star-shaped about x.

theorem convex.subset_interior_image_homothety_of_one_lt {E : Type u_2} [ E] {s : set E} (hs : s) {x : E} (hx : x ) (t : ) (ht : 1 < t) :
s interior ( t) '' s)

If we dilate a convex set about a point in its interior by a scale t > 1, the interior of the result includes the closure of the original set.

TODO Generalise this from convex sets to sets that are balanced / star-shaped about x.

@[protected]
theorem convex.is_path_connected {E : Type u_2} [ E] {s : set E} (hconv : s) (hne : s.nonempty) :

A nonempty convex set is path connected.

@[protected]
theorem convex.is_connected {E : Type u_2} [ E] {s : set E} (h : s) (hne : s.nonempty) :

A nonempty convex set is connected.

@[protected]
theorem convex.is_preconnected {E : Type u_2} [ E] {s : set E} (h : s) :

A convex set is preconnected.

@[protected]
theorem topological_add_group.path_connected {E : Type u_2} [ E]  :

Every topological vector space over ℝ is path connected.

Not an instance, because it creates enormous TC subproblems (turn on pp.all).

### Normed vector space #

theorem convex_on_norm {E : Type u_2} [ E] {s : set E} (hs : s) :

The norm on a real normed space is convex on any convex set. See also seminorm.convex_on and convex_on_univ_norm.

theorem convex_on_univ_norm {E : Type u_2} [ E] :

The norm on a real normed space is convex on the whole space. See also seminorm.convex_on and convex_on_norm.

theorem convex_on_dist {E : Type u_2} [ E] {s : set E} (z : E) (hs : s) :
(λ (z' : E), z)
theorem convex_on_univ_dist {E : Type u_2} [ E] (z : E) :
(λ (z' : E), z)
theorem convex_ball {E : Type u_2} [ E] (a : E) (r : ) :
r)
theorem convex_closed_ball {E : Type u_2} [ E] (a : E) (r : ) :
r)
theorem convex.thickening {E : Type u_2} [ E] {s : set E} (hs : s) (δ : ) :
s)
theorem convex.cthickening {E : Type u_2} [ E] {s : set E} (hs : s) (δ : ) :
s)
theorem disjoint.exists_open_convexes {E : Type u_2} [ E] {s t : set E} (disj : t) (hs₁ : s) (hs₂ : is_compact s) (ht₁ : t) (ht₂ : is_closed t) :
∃ (u v : set E), u v s u t v v

If s, t are disjoint convex sets, s is compact and t is closed then we can find open disjoint convex sets containing them.

theorem convex_hull_exists_dist_ge {E : Type u_2} [ E] {s : set E} {x : E} (hx : x s) (y : E) :
∃ (x' : E) (H : x' s), y

Given a point x in the convex hull of s and a point y, there exists a point of s at distance at least dist x y from y.

theorem convex_hull_exists_dist_ge2 {E : Type u_2} [ E] {s t : set E} {x y : E} (hx : x s) (hy : y t) :
∃ (x' : E) (H : x' s) (y' : E) (H : y' t), y'

Given a point x in the convex hull of s and a point y in the convex hull of t, there exist points x' ∈ s and y' ∈ t at distance at least dist x y.

@[simp]
theorem convex_hull_ediam {E : Type u_2} [ E] (s : set E) :

Emetric diameter of the convex hull of a set s equals the emetric diameter of s.

@[simp]
theorem convex_hull_diam {E : Type u_2} [ E] (s : set E) :

Diameter of the convex hull of a set s equals the emetric diameter of s.

@[simp]
theorem bounded_convex_hull {E : Type u_2} [ E] {s : set E} :

Convex hull of s is bounded if and only if s is bounded.

@[protected, instance]
def normed_space.path_connected {E : Type u_2} [ E] :
@[protected, instance]
def normed_space.loc_path_connected {E : Type u_2} [ E] :
theorem dist_add_dist_of_mem_segment {E : Type u_2} [ E] {x y z : E} (h : y x z) :
+ =