mathlib documentation

analysis.convex.cone

Convex cones #

In a π•œ-module E, we define a convex cone as a set 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 define pointed, blunt, flat and salient cones, and prove the correspondence between convex cones and ordered modules.

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

We define set.inner_dual_cone to be the cone consisting of all points y such that for all points x in a given set 0 ≀ βŸͺ x, y ⟫.

Main statements #

We prove two extension theorems:

Implementation notes #

While convex π•œ is a predicate on sets, convex_cone π•œ E is a bundled convex cone.

References #

Definition of convex_cone and basic properties #

structure convex_cone (π•œ : Type u_1) (E : Type u_2) [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
Type u_2

A convex cone is a subset s of a π•œ-module such that a β€’ x + b β€’ y ∈ s whenever a, b > 0 and x, y ∈ s.

Instances for convex_cone
@[protected, instance]
def convex_cone.set.has_coe {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
has_coe (convex_cone π•œ E) (set E)
Equations
@[protected, instance]
def convex_cone.has_mem {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
has_mem E (convex_cone π•œ E)
Equations
@[protected, instance]
def convex_cone.has_le {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
has_le (convex_cone π•œ E)
Equations
@[protected, instance]
def convex_cone.has_lt {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
has_lt (convex_cone π•œ E)
Equations
@[simp, norm_cast]
theorem convex_cone.mem_coe {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (S : convex_cone π•œ E) {x : E} :
Informal translation

Let $S$ be a convex cone in $E$. Then $x\in S$ if and only if $x\in\operatorname{span}(S)$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[simp]
theorem convex_cone.mem_mk {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ 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
Informal translation

Let $E$ be a commutative monoid with identity and let $s$ be a subset of $E$. Then $s$ is a convex cone if and only if $s$ is closed under scalar multiplication and addition.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.ext' {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] {S T : convex_cone π•œ E} (h : ↑S = ↑T) :
S = T

Two convex_cones are equal if the underlying sets are equal.

Informal translation

Let $S$ and $T$ be convex cones in a vector space $E$ over an ordered field $K$. If $S$ and $T$ are equal as subsets of $E$, then $S$ and $T$ are equal as convex cones.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[protected]
theorem convex_cone.ext'_iff {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] {S T : convex_cone π•œ E} :

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

Informal translation

Two convex cones $S$ and $T$ are equal if and only if their underlying sets are equal.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[ext]
theorem convex_cone.ext {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] {S T : convex_cone π•œ E} (h : βˆ€ (x : E), x ∈ S ↔ x ∈ T) :
S = T

Two convex_cones are equal if they have the same elements.

Informal translation

Two convex cones $S$ and $T$ are equal if and only if $S\subset T$ and $T\subset S$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.smul_mem {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (S : convex_cone π•œ E) {c : π•œ} {x : E} (hc : 0 < c) (hx : x ∈ S) :
Informal translation

Let $S$ be a convex cone in a vector space $E$ over a ordered field $K$. If $c>0$ and $x\in S$, then $cx\in S$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.add_mem {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (S : convex_cone π•œ E) ⦃x : E⦄ (hx : x ∈ S) ⦃y : E⦄ (hy : y ∈ S) :
x + y ∈ S
Informal translation

Let $S$ be a convex cone in a vector space $E$ over a ordered field $K$. If $x,y\in S$, then $x+y\in S$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[protected, instance]
def convex_cone.has_inf {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
has_inf (convex_cone π•œ E)
Equations
theorem convex_cone.coe_inf {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (S T : convex_cone π•œ E) :
Informal translation

Let $S$ and $T$ be convex cones in a vector space $E$ over an ordered field $K$. Then $S\cap T$ is a convex cone and $S\cap T=S\cap T$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.mem_inf {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (S T : convex_cone π•œ E) {x : E} :
Informal translation

Let $S$ and $T$ be convex cones in a vector space $E$ over an ordered field $K$. Then $x\in S\cap T$ if and only if $x\in S$ and $x\in T$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[protected, instance]
def convex_cone.has_Inf {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
has_Inf (convex_cone π•œ E)
Equations
theorem convex_cone.mem_Inf {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] {x : E} {S : set (convex_cone π•œ E)} :
x ∈ has_Inf.Inf S ↔ βˆ€ (s : convex_cone π•œ E), s ∈ S β†’ x ∈ s
Informal translation

Let $S$ be a set of convex cones in a vector space $E$ over an ordered field $K$. Then $x\in\bigcap S$ if and only if $x\in s$ for all $s\in S$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[protected, instance]
def convex_cone.has_bot (π•œ : Type u_1) {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
has_bot (convex_cone π•œ E)
Equations
theorem convex_cone.mem_bot (π•œ : Type u_1) {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (x : E) :
Informal translation

The bottom of a convex cone is empty.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[protected, instance]
def convex_cone.has_top (π•œ : Type u_1) {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
has_top (convex_cone π•œ E)
Equations
theorem convex_cone.mem_top (π•œ : Type u_1) {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (x : E) :
Informal translation

Let $E$ be a vector space over a field $K$ and let $x\in E$. Then $x\in\top$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[protected, instance]
def convex_cone.complete_lattice (π•œ : Type u_1) {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
Equations
@[protected, instance]
def convex_cone.inhabited (π•œ : Type u_1) {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] :
inhabited (convex_cone π•œ E)
Equations
@[protected]
theorem convex_cone.convex {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [module π•œ E] (S : convex_cone π•œ E) :
convex π•œ ↑S
Informal translation

Let $S$ be a convex cone in a vector space $E$ over a ordered field $K$. Then $S$ is a convex set.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.smul_mem_iff {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [add_comm_monoid E] [mul_action π•œ E] (S : convex_cone π•œ E) {c : π•œ} (hc : 0 < c) {x : E} :
Informal translation

Let $S$ be a convex cone in a vector space $E$ over a linearly ordered field $K$. Then $cx\in S$ if and only if $x\in S$ for all $c\in K$ with $c>0$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
def convex_cone.map {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [linear_ordered_field π•œ] [add_comm_monoid E] [add_comm_monoid F] [module π•œ E] [module π•œ F] (f : E β†’β‚—[π•œ] F) (S : convex_cone π•œ E) :
convex_cone π•œ F

The image of a convex cone under a π•œ-linear map is a convex cone.

Equations
theorem convex_cone.map_map {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} {G : Type u_4} [linear_ordered_field π•œ] [add_comm_monoid E] [add_comm_monoid F] [add_comm_monoid G] [module π•œ E] [module π•œ F] [module π•œ G] (g : F β†’β‚—[π•œ] G) (f : E β†’β‚—[π•œ] F) (S : convex_cone π•œ E) :
Informal translation

Let $E, F, G$ be vector spaces over a linear ordered field $\mathbb{K}$. Let $f:E\to F$ and $g:F\to G$ be linear maps. Then $g\circ f$ is a linear map from $E$ to $G$ and $(g\circ f)(S)=g(f(S))$ for any convex cone $S$ in $E$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[simp]
theorem convex_cone.map_id {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [add_comm_monoid E] [module π•œ E] (S : convex_cone π•œ E) :
Informal translation

Let $S$ be a convex cone in a vector space $E$ over a linear ordered field $K$. Then the identity map on $E$ maps $S$ to itself.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
def convex_cone.comap {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [linear_ordered_field π•œ] [add_comm_monoid E] [add_comm_monoid F] [module π•œ E] [module π•œ F] (f : E β†’β‚—[π•œ] F) (S : convex_cone π•œ F) :
convex_cone π•œ E

The preimage of a convex cone under a π•œ-linear map is a convex cone.

Equations
@[simp]
theorem convex_cone.comap_id {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [add_comm_monoid E] [module π•œ E] (S : convex_cone π•œ E) :
Informal translation

Let $E$ be a vector space over a field $\mathbb{K}$ and let $S$ be a convex cone in $E$. Then the convex cone $S$ is equal to the image of $S$ under the identity map.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.comap_comap {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} {G : Type u_4} [linear_ordered_field π•œ] [add_comm_monoid E] [add_comm_monoid F] [add_comm_monoid G] [module π•œ E] [module π•œ F] [module π•œ G] (g : F β†’β‚—[π•œ] G) (f : E β†’β‚—[π•œ] F) (S : convex_cone π•œ G) :
Informal translation

Let $E, F, G$ be vector spaces over a field $\mathbb{K}$ and let $S$ be a convex cone in $G$. Then the composition of the linear maps $g:F\to G$ and $f:E\to F$ induces a linear map $g\circ f:E\to G$. Then the convex cone $S$ is mapped to a convex cone in $E$ by $g\circ f$ if and only if $S$ is mapped to a convex cone in $F$ by $g$ and then to a convex cone in $E$ by $f$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[simp]
theorem convex_cone.mem_comap {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [linear_ordered_field π•œ] [add_comm_monoid E] [add_comm_monoid F] [module π•œ E] [module π•œ F] {f : E β†’β‚—[π•œ] F} {S : convex_cone π•œ F} {x : E} :
Informal translation

Let $f:E\to F$ be a linear map between two vector spaces over a linear ordered field $K$. Let $S$ be a convex cone in $F$. Then $x\in E$ is in the preimage of $S$ under $f$ if and only if $f(x)$ is in $S$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.to_ordered_smul {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [ordered_add_comm_group E] [module π•œ E] (S : convex_cone π•œ E) (h : βˆ€ (x y : E), x ≀ y ↔ y - x ∈ S) :
ordered_smul π•œ E

Constructs an ordered module given an ordered_add_comm_group, a cone, and a proof that the order relation is the one defined by the cone.

Informal translation

Let $S$ be a convex cone in a vector space $E$ over a linear ordered field $K$. Suppose that for all $x,y\in E$, $x\leq y$ if and only if $y-x\in S$. Then $E$ is an ordered $K$-module.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?

Convex cones with extra properties #

def convex_cone.pointed {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (S : convex_cone π•œ E) :
Prop

A convex cone is pointed if it includes 0.

Equations
def convex_cone.blunt {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (S : convex_cone π•œ E) :
Prop

A convex cone is blunt if it doesn't include 0.

Equations
theorem convex_cone.pointed_iff_not_blunt {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (S : convex_cone π•œ E) :
Informal translation

A convex cone $S$ is pointed if and only if it is not blunt.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.blunt_iff_not_pointed {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_monoid E] [has_smul π•œ E] (S : convex_cone π•œ E) :
Informal translation

A convex cone $S$ is blunt if and only if $S$ is not pointed.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
def convex_cone.flat {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_group E] [has_smul π•œ E] (S : convex_cone π•œ E) :
Prop

A convex cone is flat if it contains some nonzero vector x and its opposite -x.

Equations
def convex_cone.salient {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_group E] [has_smul π•œ E] (S : convex_cone π•œ E) :
Prop

A convex cone is salient if it doesn't include x and -x for any nonzero x.

Equations
theorem convex_cone.salient_iff_not_flat {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_group E] [has_smul π•œ E] (S : convex_cone π•œ E) :
Informal translation

A convex cone $S$ is salient if and only if it is not flat.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.flat.pointed {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_group E] [has_smul π•œ E] {S : convex_cone π•œ E} (hS : S.flat) :

A flat cone is always pointed (contains 0).

Informal translation

Let $S$ be a convex cone in a vector space $E$ over an ordered field $K$. If $S$ is flat, then $S$ is pointed.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.blunt.salient {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_group E] [has_smul π•œ E] {S : convex_cone π•œ E} :
S.blunt β†’ S.salient

A blunt cone (one not containing 0) is always salient.

Informal translation

Let $S$ be a convex cone in a vector space $E$ over an ordered field $K$. If $S$ is blunt, then $S$ is salient.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
def convex_cone.to_preorder {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_group E] [has_smul π•œ E] (S : convex_cone π•œ E) (h₁ : S.pointed) :

A pointed convex cone defines a preorder.

Equations
def convex_cone.to_partial_order {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_group E] [has_smul π•œ E] (S : convex_cone π•œ E) (h₁ : S.pointed) (hβ‚‚ : S.salient) :

A pointed and salient cone defines a partial order.

Equations
def convex_cone.to_ordered_add_comm_group {π•œ : Type u_1} {E : Type u_2} [ordered_semiring π•œ] [add_comm_group E] [has_smul π•œ E] (S : convex_cone π•œ E) (h₁ : S.pointed) (hβ‚‚ : S.salient) :

A pointed and salient cone defines an ordered_add_comm_group.

Equations

Positive cone of an ordered module #

def convex_cone.positive_cone (π•œ : Type u_1) (E : Type u_2) [ordered_semiring π•œ] [ordered_add_comm_group E] [module π•œ E] [ordered_smul π•œ E] :
convex_cone π•œ E

The positive cone is the convex cone formed by the set of nonnegative elements in an ordered module.

Equations
theorem convex_cone.salient_positive_cone (π•œ : Type u_1) (E : Type u_2) [ordered_semiring π•œ] [ordered_add_comm_group E] [module π•œ E] [ordered_smul π•œ E] :

The positive cone of an ordered module is always salient.

Informal translation

The positive cone of an ordered vector space is salient.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_cone.pointed_positive_cone (π•œ : Type u_1) (E : Type u_2) [ordered_semiring π•œ] [ordered_add_comm_group E] [module π•œ E] [ordered_smul π•œ E] :

The positive cone of an ordered module is always pointed.

Informal translation

The positive cone of an ordered vector space is pointed.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?

Cone over a convex set #

def convex.to_cone {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [ordered_add_comm_group E] [module π•œ E] (s : set E) (hs : convex π•œ s) :
convex_cone π•œ E

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

Equations
theorem convex.mem_to_cone {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [ordered_add_comm_group E] [module π•œ E] {s : set E} (hs : convex π•œ s) {x : E} :
x ∈ convex.to_cone s hs ↔ βˆƒ (c : π•œ), 0 < c ∧ βˆƒ (y : E) (H : y ∈ s), c β€’ y = x
Informal translation

Let $E$ be a vector space over a linear ordered field $K$ and let $s$ be a convex subset of $E$. Then $x\in\operatorname{cone}(s)$ if and only if there is a $c\in K$ such that $c>0$ and there is a $y\in s$ such that $c\cdot y=x$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex.mem_to_cone' {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [ordered_add_comm_group E] [module π•œ E] {s : set E} (hs : convex π•œ s) {x : E} :
x ∈ convex.to_cone s hs ↔ βˆƒ (c : π•œ), 0 < c ∧ c β€’ x ∈ s
Informal translation

Let $E$ be a vector space over a linear ordered field $K$ and let $s$ be a convex subset of $E$. Then $x\in\operatorname{cone}(s)$ if and only if there is a $c\in K$ such that $0

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex.subset_to_cone {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [ordered_add_comm_group E] [module π•œ E] {s : set E} (hs : convex π•œ s) :
Informal translation

Let $E$ be a vector space over a linear ordered field $K$ and let $s$ be a convex subset of $E$. Then $s$ is contained in the convex cone generated by $s$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex.to_cone_is_least {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [ordered_add_comm_group E] [module π•œ E] {s : set E} (hs : convex π•œ s) :
is_least {t : convex_cone π•œ E | s βŠ† ↑t} (convex.to_cone s hs)

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

Informal translation

Let $E$ be a vector space over a linear ordered field $K$ and let $s$ be a convex subset of $E$. Then the convex cone generated by $s$ is the smallest convex cone containing $s$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex.to_cone_eq_Inf {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [ordered_add_comm_group E] [module π•œ E] {s : set E} (hs : convex π•œ s) :
Informal translation

Let $E$ be a vector space over a linear ordered field $K$ and let $s$ be a convex subset of $E$. Then the convex cone generated by $s$ is the intersection of all convex cones containing $s$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_hull_to_cone_is_least {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [ordered_add_comm_group E] [module π•œ E] (s : set E) :
is_least {t : convex_cone π•œ E | s βŠ† ↑t} (convex.to_cone (⇑(convex_hull π•œ) s) _)
Informal translation

The convex hull of a set $S$ is the smallest convex cone containing $S$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem convex_hull_to_cone_eq_Inf {π•œ : Type u_1} {E : Type u_2} [linear_ordered_field π•œ] [ordered_add_comm_group E] [module π•œ E] (s : set E) :
convex.to_cone (⇑(convex_hull π•œ) s) _ = has_Inf.Inf {t : convex_cone π•œ E | s βŠ† ↑t}
Informal translation

The convex hull of a set $S$ is the smallest convex cone containing $S$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?

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_2} [add_comm_group E] [module ℝ E] (s : convex_cone ℝ E) (f : linear_pmap ℝ E ℝ) (nonneg : βˆ€ (x : β†₯(f.domain)), ↑x ∈ s β†’ 0 ≀ ⇑f x) (dense : βˆ€ (y : E), βˆƒ (x : β†₯(f.domain)), ↑x + y ∈ s) (hdom : 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.

Informal translation

Let $E$ be an additive commutative group and a $\mathbb{R}$-module. Let $s$ be a convex cone in $E$. Let $f:E\to\mathbb{R}$ be a linear map. Suppose that $f$ is nonnegative on $s$, that $s$ is dense in $E$, and that $f$ is not surjective. Then there is a linear map $g:E\to\mathbb{R}$ such that $f

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem riesz_extension.exists_top {E : Type u_2} [add_comm_group E] [module ℝ E] (s : convex_cone ℝ E) (p : linear_pmap ℝ E ℝ) (hp_nonneg : βˆ€ (x : β†₯(p.domain)), ↑x ∈ s β†’ 0 ≀ ⇑p x) (hp_dense : βˆ€ (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
Informal translation

Let $E$ be a real vector space and let $s$ be a convex cone in $E$. Let $p$ be a linear positive map from $E$ to $\mathbb{R}$ such that $p(x)\geq 0$ for all $x\in s$ and such that $s$ is dense in $E$. Then there exists a linear positive map $q$ from $E$ to $\mathbb{R}$ such that $q\geq p$ and $q$ is defined on all of $E$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem riesz_extension {E : Type u_2} [add_comm_group E] [module ℝ E] (s : convex_cone ℝ E) (f : linear_pmap ℝ E ℝ) (nonneg : βˆ€ (x : β†₯(f.domain)), ↑x ∈ s β†’ 0 ≀ ⇑f x) (dense : βˆ€ (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.

Informal translation

Let $E$ be a real vector space and let $s$ be a convex cone in $E$. Let $f:E\to\mathbb{R}$ be a linear map. Suppose that $f$ is nonnegative on $s$ and that $s$ is dense in $E$. Then there is a linear map $g:E\to\mathbb{R}$ such that $g$ agrees with $f$ on $s$ and $g$ is nonnegative on $s$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
theorem exists_extension_of_le_sublinear {E : Type u_2} [add_comm_group E] [module ℝ E] (f : linear_pmap ℝ E ℝ) (N : E β†’ ℝ) (N_hom : βˆ€ (c : ℝ), 0 < c β†’ βˆ€ (x : E), N (c β€’ x) = c * N x) (N_add : βˆ€ (x y : E), N (x + y) ≀ N x + N y) (hf : βˆ€ (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.

Informal translation

Let $E$ be an additive commutative group and a real module. Let $f:E\to\mathbb{R}$ be a linear map. Let $N:E\to\mathbb{R}$ be a function such that $N(cx)=cN(x)$ for all $c>0$ and $N(x+y)\leq N(x)+N(y)$ for all $x,y\in E$. Suppose that $f(x)\leq N(x)$ for all $x\in E$. Then there exists a linear map $g:E\to\mathbb{R}$ such that $g(x

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?

The dual cone #

def set.inner_dual_cone {H : Type u_5} [inner_product_space ℝ H] (s : set H) :

The dual cone is the cone consisting of all points y such that for all points x in a given set 0 ≀ βŸͺ x, y ⟫.

Equations
theorem mem_inner_dual_cone {H : Type u_5} [inner_product_space ℝ H] (y : H) (s : set H) :
y ∈ s.inner_dual_cone ↔ βˆ€ (x : H), x ∈ s β†’ 0 ≀ has_inner.inner x y
Informal translation

Let $H$ be a real inner product space and let $s$ be a subset of $H$. Then $y\in s^\circ$ if and only if $x\in s$ implies $\langle x,y\rangle\geq 0$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
@[simp]
Informal translation

The inner dual cone of the empty set is the whole space.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
Informal translation

Let $H$ be a real inner product space and let $s, t$ be subsets of $H$. If $t\subset s$, then $s^\circ\subset t^\circ$.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?
Informal translation

Let $H$ be a real inner product space and let $s$ be a subset of $H$. Then the dual cone of $s$ is pointed.

This translation to informal mathematics is automatically generated and should NOT be trusted! The translation is a beta feature powered by OpenAI's Codex API.
Does this translation look correct?