mathlib3 documentation

analysis.convex.cone.proper

Proper cones #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

We define a proper cone as a nonempty, closed, convex cone. Proper cones are used in defining conic programs which generalize linear programs. A linear program is a conic program for the positive cone. We then prove Farkas' lemma for conic programs following the proof in the reference below. Farkas' lemma is equivalent to strong duality. So, once have the definitions of conic programs and linear programs, the results from this file can be used to prove duality theorems.

TODO #

The next steps are:

References #

@[protected]
def convex_cone.closure {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [has_continuous_add E] [has_smul 𝕜 E] [has_continuous_const_smul 𝕜 E] (K : convex_cone 𝕜 E) :

The closure of a convex cone inside a topological space as a convex cone. This construction is mainly used for defining maps between proper cones.

Equations
@[simp, norm_cast]
@[protected, simp]
theorem convex_cone.mem_closure {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [has_continuous_add E] [has_smul 𝕜 E] [has_continuous_const_smul 𝕜 E] {K : convex_cone 𝕜 E} {a : E} :
@[simp]
theorem convex_cone.closure_eq {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [has_continuous_add E] [has_smul 𝕜 E] [has_continuous_const_smul 𝕜 E] {K L : convex_cone 𝕜 E} :
structure proper_cone (𝕜 : Type u_1) (E : Type u_2) [ordered_semiring 𝕜] [add_comm_monoid E] [topological_space E] [has_smul 𝕜 E] :
Type u_2

A proper cone is a convex cone K that is nonempty and closed. Proper cones have the nice property that the dual of the dual of a proper cone is itself. This makes them useful for defining cone programs and proving duality theorems.

Instances for proper_cone
@[protected, instance]
def proper_cone.convex_cone.has_coe {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [has_smul 𝕜 E] :
has_coe (proper_cone 𝕜 E) (convex_cone 𝕜 E)
Equations
@[simp]
theorem proper_cone.to_convex_cone_eq_coe {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [has_smul 𝕜 E] (K : proper_cone 𝕜 E) :
@[protected, instance]
def proper_cone.set_like {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [has_smul 𝕜 E] :
Equations
@[ext]
theorem proper_cone.ext {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [has_smul 𝕜 E] {S T : proper_cone 𝕜 E} (h : (x : E), x S x T) :
S = T
@[simp]
theorem proper_cone.mem_coe {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [has_smul 𝕜 E] {x : E} {K : proper_cone 𝕜 E} :
x K x K
@[protected]
theorem proper_cone.nonempty {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [has_smul 𝕜 E] (K : proper_cone 𝕜 E) :
@[protected]
theorem proper_cone.is_closed {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [has_smul 𝕜 E] (K : proper_cone 𝕜 E) :
@[protected, instance]
def proper_cone.has_zero {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [t1_space E] [module 𝕜 E] :
Equations
@[protected, instance]
def proper_cone.inhabited {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [t1_space E] [module 𝕜 E] :
Equations
@[simp]
theorem proper_cone.mem_zero {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [t1_space E] [module 𝕜 E] (x : E) :
x 0 x = 0
@[simp, norm_cast]
theorem proper_cone.coe_zero {𝕜 : Type u_1} [ordered_semiring 𝕜] {E : Type u_2} [add_comm_monoid E] [topological_space E] [t1_space E] [module 𝕜 E] :
0 = 0

The closure of image of a proper cone under a continuous -linear map is a proper cone. We use continuous maps here so that the comap of f is also a map between proper cones.

Equations

The inner dual cone of a proper cone is a proper cone.

Equations
@[simp]
theorem proper_cone.mem_dual {E : Type u_1} [normed_add_comm_group E] [inner_product_space E] {K : proper_cone E} {y : E} :
y K.dual ⦃x : E⦄, x K 0 has_inner.inner x y

The preimage of a proper cone under a continuous -linear map is a proper cone.

Equations
@[simp]

The dual of the dual of a proper cone is itself.

This is a relative version of convex_cone.hyperplane_separation_of_nonempty_of_is_closed_of_nmem, which we recover by setting f to be the identity map. This is a geometric interpretation of the Farkas' lemma stated using proper cones.