Separation Hahn-Banach theorem #
In this file we prove the geometric Hahn-Banach theorem. For any two disjoint convex sets, there exists a continuous linear functional separating them, geometrically meaning that we can intercalate a plane between them.
We provide many variations to stricten the result under more assumptions on the convex sets:
geometric_hahn_banach_open: One set is open. Weak separation.geometric_hahn_banach_open_point,geometric_hahn_banach_point_open: One set is open, the other is a singleton. Weak separation.geometric_hahn_banach_open_open: Both sets are open. Semistrict separation.geometric_hahn_banach_compact_closed,geometric_hahn_banach_closed_compact: One set is closed, the other one is compact. Strict separation.geometric_hahn_banach_point_closed,geometric_hahn_banach_closed_point: One set is closed, the other one is a singleton. Strict separation.geometric_hahn_banach_point_point: Both sets are singletons. Strict separation.
TODO #
Given a set s which is a convex neighbourhood of 0 and a point xβ outside of it, there is
a continuous linear functional f separating xβ and s, in the sense that it sends xβ to 1 and
all of s to values strictly below 1.
A version of the Hahn-Banach theorem: given disjoint convex sets s, t where s is open,
there is a continuous linear functional which separates them.
A version of the Hahn-Banach theorem: given disjoint convex sets s, t where s is
compact and t is closed, there is a continuous linear functional which strongly separates them.
A version of the Hahn-Banach theorem: given disjoint convex sets s, t where s is
closed, and t is compact, there is a continuous linear functional which strongly separates them.
See also NormedSpace.eq_iff_forall_dual_eq.
A closed convex set is the intersection of the half-spaces containing it.
Real linear extension of continuous extension of LinearMap.extendToπ'
Equations
- RCLike.extendToπ'β = { toFun := fun (fr : StrongDual β E) => let __LinearMap := (βfr).extendToπ'; { toLinearMap := __LinearMap, cont := β― }, map_add' := β―, map_smul' := β― }