mathlib documentation

analysis.​convex.​cone

analysis.​convex.​cone

Convex cones

In a vector space E over ℝ, we define a convex cone as a subset s such that a • x + b • y ∈ s whenever x, y ∈ s and a, b > 0. We prove that convex cones form a complete_lattice, and define their images (convex_cone.map) and preimages (convex_cone.comap) under linear maps.

We also define convex.to_cone to be the minimal cone that includes a given convex set.

Main statements

We prove two extension theorems:

Implementation notes

While convex is a predicate on sets, convex_cone is a bundled convex cone.

TODO

Definition of convex_cone and basic properties

structure convex_cone (E : Type u_1) [add_comm_group E] [vector_space ℝ E] :
Type u_1

A convex cone is a subset s of a vector space over ℝ such that a • x + b • y ∈ s whenever a, b > 0 and x, y ∈ s.

@[instance]

Equations
@[instance]

Equations
@[instance]

Equations
@[instance]

Equations
@[simp]
theorem convex_cone.​mem_coe {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (S : convex_cone E) {x : E} :
x ∈ ↑S ↔ x ∈ S

@[simp]
theorem convex_cone.​mem_mk {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {s : set E} {h₁ : ∀ ⦃c : ℝ⦄, 0 < c → ∀ ⦃x : E⦄, x ∈ s → c • x ∈ s} {h₂ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃y : E⦄, y ∈ s → x + y ∈ s} {x : E} :
x ∈ {carrier := s, smul_mem' := h₁, add_mem' := h₂} ↔ x ∈ s

theorem convex_cone.​ext' {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {S T : convex_cone E} :
↑S = ↑T → S = T

Two convex_cones are equal if the underlying subsets are equal.

theorem convex_cone.​ext'_iff {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {S T : convex_cone E} :
↑S = ↑T ↔ S = T

Two convex_cones are equal if and only if the underlying subsets are equal.

@[ext]
theorem convex_cone.​ext {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {S T : convex_cone E} :
(∀ (x : E), x ∈ S ↔ x ∈ T) → S = T

Two convex_cones are equal if they have the same elements.

theorem convex_cone.​smul_mem {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (S : convex_cone E) {c : ℝ} {x : E} :
0 < c → x ∈ S → c • x ∈ S

theorem convex_cone.​add_mem {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (S : convex_cone E) ⦃x : E⦄ (hx : x ∈ S) ⦃y : E⦄ :
y ∈ S → x + y ∈ S

theorem convex_cone.​smul_mem_iff {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (S : convex_cone E) {c : ℝ} (hc : 0 < c) {x : E} :
c • x ∈ S ↔ x ∈ S

theorem convex_cone.​convex {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (S : convex_cone E) :

@[instance]

Equations
theorem convex_cone.​coe_inf {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (S T : convex_cone E) :
↑(S ⊓ T) = ↑S ∩ ↑T

theorem convex_cone.​mem_inf {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (S T : convex_cone E) {x : E} :
x ∈ S ⊓ T ↔ x ∈ S ∧ x ∈ T

@[instance]

Equations
theorem convex_cone.​mem_Inf {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {x : E} {S : set (convex_cone E)} :
x ∈ has_Inf.Inf S ↔ ∀ (s : convex_cone E), s ∈ S → x ∈ s

@[instance]

Equations
theorem convex_cone.​mem_bot {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (x : E) :

@[instance]

Equations
theorem convex_cone.​mem_top {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (x : E) :

def convex_cone.​map {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {F : Type u_2} [add_comm_group F] [vector_space ℝ F] :

The image of a convex cone under an ℝ-linear map is a convex cone.

Equations
theorem convex_cone.​map_map {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {F : Type u_2} [add_comm_group F] [vector_space ℝ F] {G : Type u_3} [add_comm_group G] [vector_space ℝ G] (g : F →ₗ[ℝ] G) (f : E →ₗ[ℝ] F) (S : convex_cone E) :

@[simp]

def convex_cone.​comap {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {F : Type u_2} [add_comm_group F] [vector_space ℝ F] :

The preimage of a convex cone under an ℝ-linear map is a convex cone.

Equations
theorem convex_cone.​comap_comap {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {F : Type u_2} [add_comm_group F] [vector_space ℝ F] {G : Type u_3} [add_comm_group G] [vector_space ℝ G] (g : F →ₗ[ℝ] G) (f : E →ₗ[ℝ] F) (S : convex_cone G) :

@[simp]
theorem convex_cone.​mem_comap {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {F : Type u_2} [add_comm_group F] [vector_space ℝ F] {f : E →ₗ[ℝ] F} {S : convex_cone F} {x : E} :

Cone over a convex set

def convex.​to_cone {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (s : set E) :

The set of vectors proportional to those in a convex set forms a convex cone.

Equations
theorem convex.​mem_to_cone {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {s : set E} (hs : convex s) {x : E} :
x ∈ convex.to_cone s hs ↔ ∃ (c : ℝ) (H : c > 0) (y : E) (H : y ∈ s), c • y = x

theorem convex.​mem_to_cone' {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {s : set E} (hs : convex s) {x : E} :
x ∈ convex.to_cone s hs ↔ ∃ (c : ℝ) (H : c > 0), c • x ∈ s

theorem convex.​subset_to_cone {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {s : set E} (hs : convex s) :

theorem convex.​to_cone_is_least {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {s : set E} (hs : convex s) :

hs.to_cone s is the least cone that includes s.

theorem convex.​to_cone_eq_Inf {E : Type u_1} [add_comm_group E] [vector_space ℝ E] {s : set E} (hs : convex s) :

M. Riesz extension theorem

Given a convex cone s in a vector space E, a submodule p, and a linear f : p → ℝ, assume that f is nonnegative on p ∩ s and p + s = E. Then there exists a globally defined linear function g : E → ℝ that agrees with f on p, and is nonnegative on s.

We prove this theorem using Zorn's lemma. riesz_extension.step is the main part of the proof. It says that if the domain p of f is not the whole space, then f can be extended to a larger subspace p ⊔ span ℝ {y} without breaking the non-negativity condition.

In riesz_extension.exists_top we use Zorn's lemma to prove that we can extend f to a linear map g on ⊤ : submodule E. Mathematically this is the same as a linear map on E but in Lean ⊤ : submodule E is isomorphic but is not equal to E. In riesz_extension we use this isomorphism to prove the theorem.

theorem riesz_extension.​step {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (s : convex_cone E) (f : linear_pmap ℝ E ℝ) :
(∀ (x : ↥(f.domain)), ↑x ∈ s → 0 ≤ ⇑f x) → (∀ (y : E), ∃ (x : ↥(f.domain)), ↑x + y ∈ s) → f.domain ≠ ⊤ → (∃ (g : linear_pmap ℝ E ℝ), f < g ∧ ∀ (x : ↥(g.domain)), ↑x ∈ s → 0 ≤ ⇑g x)

Induction step in M. Riesz extension theorem. Given a convex cone s in a vector space E, a partially defined linear map f : f.domain → ℝ, assume that f is nonnegative on f.domain ∩ p and p + s = E. If f is not defined on the whole E, then we can extend it to a larger submodule without breaking the non-negativity condition.

theorem riesz_extension.​exists_top {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (s : convex_cone E) (p : linear_pmap ℝ E ℝ) :
(∀ (x : ↥(p.domain)), ↑x ∈ s → 0 ≤ ⇑p x) → (∀ (y : E), ∃ (x : ↥(p.domain)), ↑x + y ∈ s) → (∃ (q : linear_pmap ℝ E ℝ) (H : q ≥ p), q.domain = ⊤ ∧ ∀ (x : ↥(q.domain)), ↑x ∈ s → 0 ≤ ⇑q x)

theorem riesz_extension {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (s : convex_cone E) (f : linear_pmap ℝ E ℝ) :
(∀ (x : ↥(f.domain)), ↑x ∈ s → 0 ≤ ⇑f x) → (∀ (y : E), ∃ (x : ↥(f.domain)), ↑x + y ∈ s) → (∃ (g : E →ₗ[ℝ] ℝ), (∀ (x : ↥(f.domain)), ⇑g ↑x = ⇑f x) ∧ ∀ (x : E), x ∈ s → 0 ≤ ⇑g x)

M. Riesz extension theorem: given a convex cone s in a vector space E, a submodule p, and a linear f : p → ℝ, assume that f is nonnegative on p ∩ s and p + s = E. Then there exists a globally defined linear function g : E → ℝ that agrees with f on p, and is nonnegative on s.

theorem exists_extension_of_le_sublinear {E : Type u_1} [add_comm_group E] [vector_space ℝ E] (f : linear_pmap ℝ E ℝ) (N : E → ℝ) :
(∀ (c : ℝ), 0 < c → ∀ (x : E), N (c • x) = c * N x) → (∀ (x y : E), N (x + y) ≤ N x + N y) → (∀ (x : ↥(f.domain)), ⇑f x ≤ N ↑x) → (∃ (g : E →ₗ[ℝ] ℝ), (∀ (x : ↥(f.domain)), ⇑g ↑x = ⇑f x) ∧ ∀ (x : E), ⇑g x ≤ N x)

Hahn-Banach theorem: if N : E → ℝ is a sublinear map, f is a linear map defined on a subspace of E, and f x ≤ N x for all x in the domain of f, then f can be extended to the whole space to a linear map g such that g x ≤ N x for all x.