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 CompleteLattice
, and define their
images (ConvexCone.map
) and preimages (ConvexCone.comap
) under linear maps.
We define pointed, blunt, flat and salient cones, and prove the correspondence between convex cones and ordered modules.
We define Convex.toCone
to be the minimal cone that includes a given convex set.
Main statements #
We prove two extension theorems:
riesz_extension
: M. Riesz extension theorem says that ifs
is a convex cone in a real vector spaceE
,p
is a submodule ofE
such thatp + s = E
, andf
is a linear functionp β β
which is nonnegative onp β© s
, then there exists a globally defined linear functiong : E β β
that agrees withf
onp
, and is nonnegative ons
.exists_extension_of_le_sublinear
: Hahn-Banach theorem: ifN : E β β
is a sublinear map,f
is a linear map defined on a subspace ofE
, andf x β€ N x
for allx
in the domain off
, thenf
can be extended to the whole space to a linear mapg
such thatg x β€ N x
for allx
In Mathlib/Analysis/Convex/Cone/Dual.lean
, we prove the following theorems:
ConvexCone.hyperplane_separation_of_nonempty_of_isClosed_of_nmem
: This variant of the hyperplane separation theorem states that given a nonempty, closed, convex coneK
in a complete, real inner product spaceH
and a pointb
disjoint from it, there is a vectory
which separatesb
fromK
in the sense that for all pointsx
inK
,0 β€ βͺx, yβ«_β
andβͺy, bβ«_β < 0
. This is also a geometric interpretation of the Farkas lemma.ConvexCone.inner_dual_cone_of_inner_dual_cone_eq_self
:
Implementation notes #
While Convex π
is a predicate on sets, ConvexCone π E
is a bundled convex cone.
References #
- https://en.wikipedia.org/wiki/Convex_cone
- [Stephen P. Boyd and Lieven Vandenberghe, Convex Optimization][boydVandenberghe2004]
- [Emo Welzl and Bernd GΓ€rtner, Cone Programming][welzl_garter]
Definition of ConvexCone
and basic properties #
- carrier : Set E
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
Equations
- ConvexCone.instSetLikeConvexCone = { coe := ConvexCone.carrier, coe_injective' := (_ : β (S T : ConvexCone π E), S.carrier = T.carrier β S = T) }
Two ConvexCone
s are equal if they have the same elements.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- ConvexCone.instInhabitedConvexCone π = { default := β₯ }
The image of a convex cone under a π
-linear map is a convex cone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The preimage of a convex cone under a π
-linear map is a convex cone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Constructs an ordered module given an OrderedAddCommGroup
, a cone, and a proof that
the order relation is the one defined by the cone.
Convex cones with extra properties #
A convex cone is pointed if it includes 0
.
Equations
- ConvexCone.Pointed S = (0 β S)
Instances For
A convex cone is blunt if it doesn't include 0
.
Equations
- ConvexCone.Blunt S = Β¬0 β S
Instances For
A convex cone is flat if it contains some nonzero vector x
and its opposite -x
.
Instances For
A convex cone is salient if it doesn't include x
and -x
for any nonzero x
.
Instances For
A flat cone is always pointed (contains 0
).
A blunt cone (one not containing 0
) is always salient.
A pointed convex cone defines a preorder.
Equations
- ConvexCone.toPreorder S hβ = Preorder.mk (_ : β (x : E), x - x β S) (_ : β (x y z : E), x β€ y β y β€ z β x β€ z)
Instances For
A pointed and salient cone defines a partial order.
Equations
- ConvexCone.toPartialOrder S hβ hβ = let src := ConvexCone.toPreorder S hβ; PartialOrder.mk (_ : β (a b : E), a β€ b β b β€ a β a = b)
Instances For
A pointed and salient cone defines an OrderedAddCommGroup
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- ConvexCone.instAddZeroClass = AddZeroClass.mk (_ : β (x : ConvexCone π E), 0 + x = x) (_ : β (x : ConvexCone π E), x + 0 = x)
Equations
- ConvexCone.instAddCommSemigroup = AddCommSemigroup.mk (_ : β (x x_1 : ConvexCone π E), x + x_1 = x_1 + x)
Submodules are cones #
Every submodule is trivially a convex cone.
Equations
Instances For
Positive cone of an ordered module #
The positive cone is the convex cone formed by the set of nonnegative elements in an ordered module.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The positive cone of an ordered module is always salient.
The positive cone of an ordered module is always pointed.
The cone of strictly positive elements.
Note that this naming diverges from the mathlib convention of pos
and nonneg
due to "positive
cone" (ConvexCone.positive
) being established terminology for the non-negative elements.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The strictly positive cone of an ordered module is always salient.
The strictly positive cone of an ordered module is always blunt.
Cone over a convex set #
The set of vectors proportional to those in a convex set forms a convex cone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
hs.toCone s
is the least cone that includes 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. RieszExtension.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 RieszExtension.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.
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.
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
.
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
.