Documentation

Tdaf.Analysis.Convex.Separation

Separation theorems #

Separation of convex sets by hyperplanes, over a real topological vector space — locally convex where separation is actually invoked. Almost all of the mathematics is already in Mathlib, as the geometric_hahn_banach_* family and iInter_halfSpaces_eq; what this file supplies is the vocabulary — the three notions of separation, supporting hyperplanes and half-spaces — together with the statements Mathlib does not have.

Two statements of the textbook are false at this generality and are corrected rather than dropped. That a convex set other than the whole space lies in a closed half-space is proved there through ri (cl C) ⊆ C, and fails in infinite dimensions: the kernel of a discontinuous linear functional is a proper convex subset that is dense, so no nonzero continuous functional is bounded above on it. The hypothesis here is closure s ≠ univ, and likewise for the cone version.

Proper separation by relative interiors, and the existence of a supporting hyperplane at every relative boundary point, rest on the line segment principle and on ri C ≠ ∅ for nonempty convex C; they are finite-dimensional and live in Tdaf/Analysis/Convex/RelativeInterior.lean.

Main definitions #

Main results #

Implementation notes #

Strong separation is defined by the gap ⨆_{s} f < c < ⨅_{t} f rather than by the textbook's C₁ + εB: the gap presupposes no topology on E, so its description by the extrema sits one layer below the separation theorems that produce it, and taking the extrema in EReal removes the Nonempty and BddAbove side conditions a real-valued sSup would force. Note that pointwise strict separation — f < c on s and c < f on t — is a genuinely weaker notion and is not among the three. General closed half-spaces are left as a pair (f, c), since the only facts ever needed of {x | f x ≤ c} apply to that description directly; only the homogeneous ones are bundled, as halfSpaceCone.

References #

[^1]: R. T. Rockafellar, Convex Analysis, Princeton University Press, 1970, §11.

The three notions of separation #

structure Tdaf.ConvexAnalysis.Separates {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] (f : E →L[ℝ] ℝ) (c : ℝ) (s t : Set E) :

Separates f c s t : the hyperplane {x | f x = c} separates s and t, in the sense that s lies in the closed half-space {x | f x ≤ c} and t in the opposite one. Rockafellar asks in addition that f ≠ 0; that is not built in here, because it is automatic in the two notions where it matters (SeparatesProperly.ne_zero, SeparatesStrongly.ne_zero).

  • le_of_mem_left ⦃x : E⦄ : x ∈ s → f x ≤ c

    f is at most c on s.

  • le_of_mem_right ⦃x : E⦄ : x ∈ t → c ≤ f x

    f is at least c on t.

Instances For

    SeparatesProperly f c s t : f separates s and t at level c, and s and t are not both contained in the hyperplane {x | f x = c}. One of the two may be.

    Instances For
      structure Tdaf.ConvexAnalysis.SeparatesStrongly {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] (f : E →L[ℝ] ℝ) (c : ℝ) (s t : Set E) :

      SeparatesStrongly f c s t : f separates s and t with a gap, the extrema being taken in EReal so that empty and unbounded sets need no special treatment. Rockafellar's own definition presupposes a norm, and is recovered by separatesStrongly_iff_exists_closedBall.

      • iSup_lt : ⨆ x ∈ s, ↑(f x) < ↑c

        f stays bounded away from c from below on s.

      • lt_iInf : ↑c < ⨅ x ∈ t, ↑(f x)

        f stays bounded away from c from above on t.

      Instances For
        theorem Tdaf.ConvexAnalysis.Separates.symm {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} (h : Separates f c s t) :
        Separates (-f) (-c) t s

        Separation is symmetric under exchanging the two sets and negating the functional.

        theorem Tdaf.ConvexAnalysis.Separates.mono {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t s' t' : Set E} (h : Separates f c s t) (hs : s' ⊆ s) (ht : t' ⊆ t) :
        Separates f c s' t'

        Separation passes to subsets.

        Separation passes to closures: closed half-spaces are closed.

        Separation passes to convex hulls: closed half-spaces are convex.

        theorem Tdaf.ConvexAnalysis.SeparatesProperly.symm {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} (h : SeparatesProperly f c s t) :

        Proper separation is symmetric under exchanging the two sets and negating the functional.

        theorem Tdaf.ConvexAnalysis.SeparatesProperly.ne_zero {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} (h : SeparatesProperly f c s t) (hs : s.Nonempty) (ht : t.Nonempty) :
        f ≠ 0

        A properly separating functional is nonzero, so that {x | f x = c} really is a hyperplane.

        Separation and the extrema of a linear function #

        theorem Tdaf.ConvexAnalysis.coe_apply_le_iSup₂ {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {s : Set E} {x : E} (hx : x ∈ s) :
        ↑(f x) ≤ ⨆ y ∈ s, ↑(f y)

        The value of f at a point of s is at most the supremum of f over s. Spelling out the indexed family is what keeps le_iSup₂ from having to guess it through a coercion.

        theorem Tdaf.ConvexAnalysis.iInf₂_le_coe_apply {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {t : Set E} {x : E} (hx : x ∈ t) :
        ⨅ y ∈ t, ↑(f y) ≤ ↑(f x)

        The infimum of f over t is at most the value of f at a point of t.

        theorem Tdaf.ConvexAnalysis.SeparatesStrongly.mono {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t s' t' : Set E} (h : SeparatesStrongly f c s t) (hs : s' ⊆ s) (ht : t' ⊆ t) :

        Strong separation passes to subsets, exactly as ordinary separation does: shrinking the sets only shrinks the two extrema.

        theorem Tdaf.ConvexAnalysis.separates_iff_iSup_le_iInf {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} :
        Separates f c s t ↔ ⨆ x ∈ s, ↑(f x) ≤ ↑c ∧ ↑c ≤ ⨅ x ∈ t, ↑(f x)

        f separates s and t at level c exactly when c lies between the supremum of f over s and its infimum over t.

        theorem Tdaf.ConvexAnalysis.bot_lt_iSup₂_of_nonempty {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {s : Set E} (hs : s.Nonempty) :
        ⊥ < ⨆ x ∈ s, ↑(f x)

        The supremum of a real-valued function over a nonempty set is not ⊥.

        theorem Tdaf.ConvexAnalysis.iInf₂_lt_top_of_nonempty {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {t : Set E} (ht : t.Nonempty) :
        ⨅ x ∈ t, ↑(f x) < ⊤

        The infimum of a real-valued function over a nonempty set is not ⊤.

        theorem Tdaf.ConvexAnalysis.iInf₂_le_iSup₂_of_nonempty {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {s : Set E} (hs : s.Nonempty) :
        ⨅ x ∈ s, ↑(f x) ≤ ⨆ x ∈ s, ↑(f x)

        Over a nonempty set the infimum is at most the supremum.

        theorem Tdaf.ConvexAnalysis.exists_separates_iff_iSup_le_iInf {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {s t : Set E} (hs : s.Nonempty) (ht : t.Nonempty) :
        (∃ (c : ℝ), Separates f c s t) ↔ ⨆ x ∈ s, ↑(f x) ≤ ⨅ x ∈ t, ↑(f x)

        Some hyperplane orthogonal to f separates two nonempty sets exactly when f never exceeds on s what it attains on t.

        theorem Tdaf.ConvexAnalysis.separatesProperly_iff_iInf_lt_or_lt_iSup {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} :
        SeparatesProperly f c s t ↔ Separates f c s t ∧ (⨅ x ∈ s, ↑(f x) < ↑c ∨ ↑c < ⨆ x ∈ t, ↑(f x))

        Proper separation is separation in which f dips strictly below c somewhere on s, or rises strictly above it somewhere on t.

        theorem Tdaf.ConvexAnalysis.exists_separatesProperly_iff_iSup_le_iInf {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {s t : Set E} (hs : s.Nonempty) (ht : t.Nonempty) :
        (∃ (c : ℝ), SeparatesProperly f c s t) ↔ ⨆ x ∈ s, ↑(f x) ≤ ⨅ x ∈ t, ↑(f x) ∧ ⨅ x ∈ s, ↑(f x) < ⨆ x ∈ t, ↑(f x)

        Two nonempty sets are properly separated by some hyperplane orthogonal to f exactly when f never exceeds on s what it attains on t, and is not constant with one and the same value on both.

        theorem Tdaf.ConvexAnalysis.exists_separatesStrongly_iff_iSup_lt_iInf {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {s t : Set E} :
        (∃ (c : ℝ), SeparatesStrongly f c s t) ↔ ⨆ x ∈ s, ↑(f x) < ⨅ x ∈ t, ↑(f x)

        Strong separation by some hyperplane orthogonal to f is exactly a gap between the two extrema. No nonemptiness is needed here: for empty sets the extrema are ⊥ and ⊤.

        theorem Tdaf.ConvexAnalysis.SeparatesStrongly.separates {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} (h : SeparatesStrongly f c s t) :
        Separates f c s t

        Strong separation is separation.

        theorem Tdaf.ConvexAnalysis.SeparatesStrongly.lt_of_mem_left {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} (h : SeparatesStrongly f c s t) {x : E} (hx : x ∈ s) :
        f x < c

        On s, a strongly separating functional stays strictly below the level.

        theorem Tdaf.ConvexAnalysis.SeparatesStrongly.lt_of_mem_right {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} (h : SeparatesStrongly f c s t) {x : E} (hx : x ∈ t) :
        c < f x

        On t, a strongly separating functional stays strictly above the level.

        theorem Tdaf.ConvexAnalysis.separatesStrongly_iff_exists_gap {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} :
        SeparatesStrongly f c s t ↔ ∃ δ > 0, (∀ x ∈ s, f x ≤ c - δ) ∧ ∀ x ∈ t, c + δ ≤ f x

        Strong separation as a uniform gap. This is the form of Rockafellar's condition (c) that proofs actually consume.

        theorem Tdaf.ConvexAnalysis.separatesStrongly_of_forall_lt {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {s t : Set E} {u v : ℝ} (hs : ∀ x ∈ s, f x < u) (huv : u < v) (ht : ∀ x ∈ t, v < f x) :
        SeparatesStrongly f ((u + v) / 2) s t

        The workhorse constructor for strong separation out of Mathlib's separation theorems, which produce two levels u < v with f < u on s and v < f on t.

        theorem Tdaf.ConvexAnalysis.SeparatesStrongly.ne_zero {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} (h : SeparatesStrongly f c s t) (hs : s.Nonempty) (ht : t.Nonempty) :
        f ≠ 0

        A strongly separating functional is nonzero, provided both sets are nonempty.

        theorem Tdaf.ConvexAnalysis.SeparatesStrongly.symm {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} (h : SeparatesStrongly f c s t) :

        Strong separation is symmetric under exchanging the two sets and negating the functional.

        Strong separation is proper, provided at least one of the two sets is nonempty.

        Strong separation by a neighbourhood of the origin #

        theorem Tdaf.ConvexAnalysis.exists_mem_pos_of_ne_zero {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [ContinuousSMul ℝ E] {f : E →L[ℝ] ℝ} (hf : f ≠ 0) {V : Set E} (hV : V ∈ nhds 0) :
        ∃ v ∈ V, 0 < f v

        A nonzero continuous linear functional is strictly positive somewhere on every neighbourhood of the origin. This is the substitute, in a space with no norm, for "|⟨y, b⟩| < δ for y small enough".

        theorem Tdaf.ConvexAnalysis.eq_zero_of_forall_le_zero {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [ContinuousSMul ℝ E] {f : E →L[ℝ] ℝ} {V : Set E} (hV : V ∈ nhds 0) (h : ∀ v ∈ V, f v ≤ 0) :
        f = 0

        A continuous linear functional that is nonpositive on a neighbourhood of the origin is zero.

        theorem Tdaf.ConvexAnalysis.eq_zero_of_mem_interior_of_isMaxOn {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] {f : E →L[ℝ] ℝ} {c : ℝ} {C : Set E} {x : E} (hx : x ∈ interior C) (hfx : f x = c) (h : ∀ y ∈ C, f y ≤ c) :
        f = 0

        A continuous linear functional attaining its maximum over a set at an interior point of that set is zero. This is what makes a supporting hyperplane at an interior point impossible.

        theorem Tdaf.ConvexAnalysis.separatesStrongly_iff_exists_nhds {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [ContinuousSMul ℝ E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} :
        SeparatesStrongly f c s t ↔ ∃ V ∈ nhds 0, (∀ x ∈ s + V, f x < c) ∧ ∀ x ∈ t + V, c < f x

        Strong separation by a neighbourhood of the origin: the phrasing of Rockafellar's definition that survives the loss of a norm. s + V and t + V lie in opposite open half-spaces for some neighbourhood V of the origin.

        A hyperplane through a disjoint affine set #

        theorem Tdaf.ConvexAnalysis.eq_of_le_on_affineSubspace {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {M : AffineSubspace ℝ E} {u : ℝ} (h : ∀ x ∈ M, u ≤ f x) {p q : E} (hp : p ∈ M) (hq : q ∈ M) :
        f p = f q

        A continuous linear functional bounded below on an affine set is constant on it: along a direction in which f decreases, an affine set is unbounded below for f.

        theorem Tdaf.ConvexAnalysis.exists_separates_of_isOpen_of_disjoint_affine {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] {C : Set E} {M : AffineSubspace ℝ E} (hC₁ : Convex ℝ C) (hC₂ : IsOpen C) (hC₃ : C.Nonempty) {p : E} (hp : p ∈ M) (hdisj : Disjoint C ↑M) :
        ∃ (g : E →L[ℝ] ℝ), g ≠ 0 ∧ (∀ x ∈ M, g x = g p) ∧ ∀ x ∈ C, g x < g p

        An open convex set and a disjoint affine set can be separated by a hyperplane containing the affine set, with the convex set inside one of the open half-spaces. Rockafellar's hypothesis is that C be relatively open, which in ℝⁿ covers every nonempty convex set through ri C; outside finite dimensions the relative interior is not available and openness is the right hypothesis. The relatively open version is exists_lt_of_notMem_relint.

        theorem Tdaf.ConvexAnalysis.exists_separatesProperly_of_isOpen_of_disjoint_affine {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] {C : Set E} {M : AffineSubspace ℝ E} (hC₁ : Convex ℝ C) (hC₂ : IsOpen C) (hC₃ : C.Nonempty) {p : E} (hp : p ∈ M) (hdisj : Disjoint C ↑M) :
        ∃ (g : E →L[ℝ] ℝ) (b : ℝ), SeparatesProperly g b C ↑M

        The same in the vocabulary of this file: an open convex set and a disjoint affine set are separated properly, by a hyperplane containing the affine set.

        Supporting hyperplanes and half-spaces #

        structure Tdaf.ConvexAnalysis.IsSupporting {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] (f : E →L[ℝ] ℝ) (c : ℝ) (s : Set E) :

        IsSupporting f c s : the closed half-space {x | f x ≤ c} is a supporting half-space to s, and its boundary {x | f x = c} a supporting hyperplane — a closed half-space containing s with a point of s in its boundary, f ≠ 0 making the boundary a hyperplane rather than the whole space. A supporting hyperplane is non-trivial when ∃ x ∈ s, f x ≠ c, written inline.

        • ne_zero : f ≠ 0

          A supporting hyperplane is a genuine hyperplane.

        • le_of_mem ⦃x : E⦄ : x ∈ s → f x ≤ c

          The half-space contains s.

        • exists_eq : ∃ x ∈ s, f x = c

          The hyperplane touches s.

        Instances For

          A supporting hyperplane misses the interior of the set it supports.

          theorem Tdaf.ConvexAnalysis.exists_isSupporting_iff_disjoint_interior {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] {C D : Set E} (hC : Convex ℝ C) (hD : Convex ℝ D) (hDC : D ⊆ C) (hD' : D.Nonempty) (hCi : (interior C).Nonempty) :
          (∃ (g : E →L[ℝ] ℝ) (b : ℝ), IsSupporting g b C ∧ (∀ x ∈ D, g x = b) ∧ ∃ x ∈ C, g x ≠ b) ↔ Disjoint (interior C) D

          A nonempty convex subset D of a convex set C with nonempty interior lies in a non-trivial supporting hyperplane to C exactly when D misses the interior of C. Rockafellar's statement is about ri C and needs no interior hypothesis, because in ℝⁿ a nonempty convex set has nonempty relative interior; outside finite dimensions that fails. The relative-interior consequences are in Tdaf/Analysis/Convex/RelativeInterior.lean.

          Strong separation by ε-balls #

          theorem Tdaf.ConvexAnalysis.separatesStrongly_iff_exists_closedBall {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} :
          SeparatesStrongly f c s t ↔ ∃ ε > 0, (∀ x ∈ s + Metric.closedBall 0 ε, f x < c) ∧ ∀ x ∈ t + Metric.closedBall 0 ε, c < f x

          Rockafellar's own definition of strong separation, available once there is a norm: s + εB and t + εB lie in opposite open half-spaces for some ε > 0. With separatesStrongly_iff_exists_nhds this shows nothing is lost by taking the gap as the definition.

          Cones, and half-spaces through the origin #

          The homogeneous closed half-space {x | f x ≤ 0}, bundled as a PointedCone ℝ E. The homogeneous closed half-spaces — those with the origin on their boundary — are exactly these, and bundling them makes Submodule.span_le available, which is what turns the cone representations below into two lines.

          Equations
          Instances For
            @[simp]

            Membership in the homogeneous half-space cone is the inequality defining it.

            @[simp]

            The underlying set of halfSpaceCone f is the homogeneous half-space {x | f x ≤ 0}.

            theorem Tdaf.ConvexAnalysis.le_zero_of_isCone_of_forall_le {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {K : Set E} {u : ℝ} (hcone : ∀ ⦃a : ℝ⦄, 0 < a → ∀ ⦃x : E⦄, x ∈ K → a • x ∈ K) (h : ∀ x ∈ K, f x ≤ u) {x : E} (hx : x ∈ K) :
            f x ≤ 0

            A linear functional bounded above on a cone is nonpositive on it: otherwise scaling up a point where it is positive breaks the bound.

            theorem Tdaf.ConvexAnalysis.nonneg_of_isCone_of_forall_le {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {K : Set E} {u : ℝ} (hcone : ∀ ⦃a : ℝ⦄, 0 < a → ∀ ⦃x : E⦄, x ∈ K → a • x ∈ K) (h : ∀ x ∈ K, f x ≤ u) (hK : K.Nonempty) :
            0 ≤ u

            A bound above for a linear functional on a nonempty cone is nonnegative: the functional comes arbitrarily close to 0 along any ray of the cone.

            theorem Tdaf.ConvexAnalysis.SeparatesProperly.zero_of_isCone_left {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} (h : SeparatesProperly f c s t) (hcone : ∀ ⦃a : ℝ⦄, 0 < a → ∀ ⦃x : E⦄, x ∈ s → a • x ∈ s) (hs : s.Nonempty) (ht : t.Nonempty) :

            If two nonempty sets are properly separated and the first is a cone, then they are properly separated by a hyperplane through the origin. Both sets must be nonempty: on the line, the cone {0} and the empty set are properly separated at level 1 but not at level 0.

            theorem Tdaf.ConvexAnalysis.SeparatesProperly.zero_of_isCone_right {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] {f : E →L[ℝ] ℝ} {c : ℝ} {s t : Set E} (h : SeparatesProperly f c s t) (hcone : ∀ ⦃a : ℝ⦄, 0 < a → ∀ ⦃x : E⦄, x ∈ t → a • x ∈ t) (hs : s.Nonempty) (ht : t.Nonempty) :

            The same with the cone on the right.

            Strong separation, half-space representations, and separation from a point #

            Two convex sets can be separated strongly exactly when the origin is not in the closure of their difference — in a normed space, exactly when the distance between them is positive. Rockafellar assumes both sets nonempty; that is not needed, the empty set being strongly separated from anything by the zero functional.

            A compact convex set and a disjoint closed convex set can be separated strongly. The book deduces this from a criterion phrased with recession cones, which is not available yet; the proof here goes through Mathlib's compact/closed geometric Hahn–Banach theorem.

            The other order: a closed convex set and a disjoint compact convex set can be separated strongly.

            Separation of a point from a closed convex set, in the form the conjugacy module consumes: a point outside a closed convex set is separated from it strongly. This is the workhorse instance of the compact/closed case, and the only separation the Fenchel–Moreau theorem needs.

            theorem Tdaf.ConvexAnalysis.mem_iff_forall_le_halfSpace {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] [LocallyConvexSpace ℝ E] {s : Set E} (hs₁ : Convex ℝ s) (hs₂ : IsClosed s) {x : E} :
            x ∈ s ↔ ∀ (f : E →L[ℝ] ℝ) (c : ℝ), (∀ y ∈ s, f y ≤ c) → f x ≤ c

            A point belongs to a closed convex set as soon as it satisfies every weak linear inequality that the set satisfies.

            theorem Tdaf.ConvexAnalysis.isClosed_convex_eq_iInter_halfspaces {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] [LocallyConvexSpace ℝ E] {s : Set E} (hs₁ : Convex ℝ s) (hs₂ : IsClosed s) :
            ⋂ (f : E →L[ℝ] ℝ), ⋂ (c : ℝ), ⋂ (_ : ∀ y ∈ s, f y ≤ c), {x : E | f x ≤ c} = s

            A closed convex set is the intersection of the closed half-spaces containing it.

            theorem Tdaf.ConvexAnalysis.closure_convexHull_eq_iInter_halfspaces {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] [LocallyConvexSpace ℝ E] (s : Set E) :
            ⋂ (f : E →L[ℝ] ℝ), ⋂ (c : ℝ), ⋂ (_ : ∀ y ∈ s, f y ≤ c), {x : E | f x ≤ c} = closure ((convexHull ℝ) s)

            The closed convex hull of an arbitrary set is the intersection of the closed half-spaces containing that set.

            A nonempty convex set whose closure is not everything lies in a closed half-space, the statement corrected for infinite dimensions. The book's hypothesis is C ≠ ℝⁿ, enough there because ri (cl C) ⊆ C, but not here: the kernel of a discontinuous linear functional is a proper convex subset which is dense, and no nonzero continuous functional is bounded above on it.

            Corollaries 11.7.1 to 11.7.3 #

            theorem Tdaf.ConvexAnalysis.smul_mem_closure_of_isCone {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [ContinuousSMul ℝ E] {K : Set E} (hcone : ∀ ⦃a : ℝ⦄, 0 < a → ∀ ⦃x : E⦄, x ∈ K → a • x ∈ K) ⦃a : ℝ⦄ :
            0 < a → ∀ ⦃x : E⦄, x ∈ closure K → a • x ∈ closure K

            The closure of a cone is a cone.

            theorem Tdaf.ConvexAnalysis.isClosed_convex_isCone_eq_iInter_halfSpaceCone {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] [LocallyConvexSpace ℝ E] {K : Set E} (hconv : Convex ℝ K) (hcone : ∀ ⦃a : ℝ⦄, 0 < a → ∀ ⦃x : E⦄, x ∈ K → a • x ∈ K) (hcl : IsClosed K) (hne : K.Nonempty) :
            ⋂ (f : E →L[ℝ] ℝ), ⋂ (_ : ∀ y ∈ K, f y ≤ 0), ↑(halfSpaceCone f) = K

            A nonempty closed convex cone is the intersection of the homogeneous closed half-spaces containing it.

            For an arbitrary set S, the closure of the convex cone generated by S is the intersection of the homogeneous closed half-spaces containing S.

            theorem Tdaf.ConvexAnalysis.exists_ne_zero_forall_le_zero_of_closure_ne_univ {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] [LocallyConvexSpace ℝ E] {K : Set E} (hconv : Convex ℝ K) (hcone : ∀ ⦃a : ℝ⦄, 0 < a → ∀ ⦃x : E⦄, x ∈ K → a • x ∈ K) (hne : K.Nonempty) (h : closure K ≠ Set.univ) :
            ∃ (f : E →L[ℝ] ℝ), f ≠ 0 ∧ ∀ x ∈ K, f x ≤ 0

            A nonempty convex cone whose closure is not everything is contained in a homogeneous closed half-space, corrected for infinite dimensions exactly as exists_ne_zero_forall_le_of_closure_ne_univ is.

            The E × ℝ specialisation: non-vertical separation of an epigraph #

            theorem Tdaf.ConvexAnalysis.exists_affine_lt_of_notMem {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] [LocallyConvexSpace ℝ E] {F : Set (E × ℝ)} (hF₁ : Convex ℝ F) (hF₂ : IsClosed F) {x₀ : E} {μ ν : ℝ} (hμν : μ < ν) (hν : (x₀, ν) ∈ F) (hμ : (x₀, μ) ∉ F) :
            ∃ (y : E →L[ℝ] ℝ) (b : ℝ), (∀ (x : E) (r : ℝ), (x, r) ∈ F → y x - b < r) ∧ μ < y x₀ - b

            Separation in E × ℝ by a non-vertical functional. If (x₀, μ) ∉ F while (x₀, ν) ∈ F for some ν > μ, the functional separating (x₀, μ) from the closed convex set F cannot be vertical: a functional of the form (y, 0) takes the same value at (x₀, μ) and at (x₀, ν). Normalising the vertical component to -1 turns it into a continuous affine function of E that stays strictly below F and strictly above μ at x₀.

            theorem Tdaf.ConvexAnalysis.exists_affine_le_of_isClosed_epi {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [IsTopologicalAddGroup E] [ContinuousSMul ℝ E] [LocallyConvexSpace ℝ E] {g : E → EReal} (hg : ConvexFn g) (hcl : IsClosed (epi g)) {x₀ : E} {μ ν : ℝ} (hν : g x₀ ≤ ↑ν) (hμ : ↑μ < g x₀) :
            ∃ (y : E →L[ℝ] ℝ) (b : ℝ), (∀ (x : E), ↑(y x - b) ≤ g x) ∧ μ < y x₀ - b

            The epigraph form. A convex function with a closed epigraph has, at every point of its domain and below every value it takes there, a continuous affine minorant passing above that value. exists_affine_le_of_closed_proper is this lemma with μ := f x₀ - 1.