Documentation

Tdaf.Analysis.Convex.Subgradient.StrictlyConvex

Essential strict convexity #

A closed proper convex function is essentially strictly convex — strictly convex on every convex subset of dom ∂f — exactly when its conjugate is essentially smooth. Together with the matching characterisation of essential smoothness this is the duality that makes the Legendre transformation an involution: strict convexity on one side is smoothness on the other. Since ∂f* is the inverse of ∂f, single-valuedness of ∂f* is the statement that distinct points never share a subgradient of f, and essentiallyStrictlyConvex_iff_pairwise_disjoint identifies that with essential strict convexity.

Main definitions #

Main results #

Implementation notes #

Every value in sight is finite, so the arithmetic is real: points of dom ∂f lie in dom f and f is proper. The only EReal case split is on f z at the test point of the subgradient inequality, where f z = ⊤ makes it trivial. The definitions need only a real vector space; The duality needs an inner-product space, because EssentiallySmooth does.

References #

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

def Tdaf.ConvexAnalysis.StrictConvexOnFn {E : Type u_1} [AddCommGroup E] [Module ℝ E] (f : E → EReal) (C : Set E) :

Strict convexity on a set. Between two distinct points of C the convexity inequality is strict. Nothing is asked off C, and nothing is asked about the finiteness of f.

Equations
Instances For
    theorem Tdaf.ConvexAnalysis.StrictConvexOnFn.mono {E : Type u_1} [AddCommGroup E] [Module ℝ E] {f : E → EReal} {C D : Set E} (h : StrictConvexOnFn f C) (hDC : D ⊆ C) :

    Strict convexity is inherited by subsets.

    theorem Tdaf.ConvexAnalysis.strictConvexOnFn_iff_strictConvexOn {E : Type u_1} [AddCommGroup E] [Module ℝ E] {f : E → EReal} {C : Set E} (hC : Convex ℝ C) (hbot : ∀ x ∈ C, f x ≠ ⊥) (htop : ∀ x ∈ C, f x ≠ ⊤) :
    StrictConvexOnFn f C ↔ StrictConvexOn ℝ C fun (x : E) => (f x).toReal

    The bridge to Mathlib's StrictConvexOn. On a convex set where f is finite, strict convexity of the EReal-valued f and of its real trace are the same condition — and so the only way in for a concrete function, since Mathlib's strict-convexity API and its second-derivative criteria are stated for real-valued functions. Finiteness is needed in both directions: where f x = ⊤ the EReal inequality is vacuous and the real one is not, and where f x = ⊥ the real one is vacuous and the EReal one is not.

    Essential strict convexity: f is strictly convex on every convex subset of dom ∂f. This is weaker than strict convexity on dom f and stronger than strict convexity on ri (dom f), and examples separate it from both.

    Equations
    Instances For
      theorem Tdaf.ConvexAnalysis.sub_le_of_mem_subgradient {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f : E → EReal} (hp : Proper f) {v : F} {x z : E} (h : v ∈ subgradient B f x) (hz : z ∈ dom f) :
      (f x).toReal + (B (z - x)) v ≤ (f z).toReal

      The subgradient inequality between real numbers. Both values are finite — f x because a subgradient exists there, f z by hypothesis — so the EReal inequality is a real one.

      theorem Tdaf.ConvexAnalysis.mem_subgradient_of_forall_sub_le {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f : E → EReal} (hp : Proper f) {v : F} {x : E} (hx : x ∈ dom f) (h : ∀ z ∈ dom f, (f x).toReal + (B (z - x)) v ≤ (f z).toReal) :

      The subgradient inequality, in the direction that has to be proved: a real bound at every point of dom f is the EReal subgradient inequality everywhere, since off dom f it reads ≤ ⊤.

      theorem Tdaf.ConvexAnalysis.pairing_sub_combo {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {v : F} {x₁ x₂ : E} {a b : ℝ} (hab : a + b = 1) (z : E) :
      (B (z - (a • x₁ + b • x₂))) v = a * (B (z - x₁)) v + b * (B (z - x₂)) v

      The pairing at a convex combination splits, because z - (a x₁ + b x₂) is the same combination of z - x₁ and z - x₂.

      theorem Tdaf.ConvexAnalysis.pairing_combo_sub_left {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {v : F} {x₁ x₂ : E} {a b : ℝ} (hab : a + b = 1) :
      (B (a • x₁ + b • x₂ - x₁)) v = b * (B (x₂ - x₁)) v

      The pairing from a convex combination back to the first endpoint.

      theorem Tdaf.ConvexAnalysis.pairing_combo_sub_right {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {v : F} {x₁ x₂ : E} {a b : ℝ} (hab : a + b = 1) :
      (B (a • x₁ + b • x₂ - x₂)) v = -(a * (B (x₂ - x₁)) v)

      The pairing from a convex combination back to the second endpoint.

      theorem Tdaf.ConvexAnalysis.mem_subgradient_of_combo {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f : E → EReal} {v : F} {x₁ x₂ : E} {a b : ℝ} (hf : ConvexFn f) (hp : Proper f) (h₁ : v ∈ subgradient B f x₁) (h₂ : v ∈ subgradient B f x₂) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) :
      v ∈ subgradient B f (a • x₁ + b • x₂)

      A subgradient shared by two points is a subgradient all along the segment between them. The graph of ⟨·, v⟩ - f*(v) is a supporting hyperplane touching epi f at both endpoints, so it touches it along the whole segment.

      theorem Tdaf.ConvexAnalysis.le_combo_of_mem_subgradient {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f : E → EReal} {v : F} {x₁ x₂ : E} {a b : ℝ} (hp : Proper f) (h₁ : v ∈ subgradient B f x₁) (h₂ : v ∈ subgradient B f x₂) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hcomb : a • x₁ + b • x₂ ∈ dom f) :
      ↑a * f x₁ + ↑b * f x₂ ≤ f (a • x₁ + b • x₂)

      A shared subgradient makes f affine along the segment, so the convexity inequality there is an equality and strict convexity fails.

      theorem Tdaf.ConvexAnalysis.mem_subgradient_endpoints_of_le_combo {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f : E → EReal} {v : F} {x₁ x₂ : E} {a b : ℝ} (hp : Proper f) (hx₁ : x₁ ∈ dom f) (hx₂ : x₂ ∈ dom f) (hv : v ∈ subgradient B f (a • x₁ + b • x₂)) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hle : a * (f x₁).toReal + b * (f x₂).toReal ≤ (f (a • x₁ + b • x₂)).toReal) :
      v ∈ subgradient B f x₁ ∧ v ∈ subgradient B f x₂

      The converse computation: if f fails to be strictly convex between x₁ and x₂ and has a subgradient at the point between them, that subgradient serves at both endpoints.

      The two endpoint inequalities add up to the failed strict inequality, so neither can be strict.

      theorem Tdaf.ConvexAnalysis.essentiallyStrictlyConvex_iff_pairwise_disjoint {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [AddCommGroup F] [Module ℝ F] {B : E →ₗ[ℝ] F →ₗ[ℝ] ℝ} {f : E → EReal} (hf : ConvexFn f) (hp : Proper f) :
      EssentiallyStrictlyConvex f ↔ ∀ (x₁ x₂ : E), x₁ ≠ x₂ → Disjoint (subgradient B f x₁) (subgradient B f x₂)

      The reformulation the duality runs on: a proper convex function is essentially strictly convex exactly when two distinct points never share a subgradient. Forwards, a shared subgradient makes the whole segment lie in dom ∂f and f affine on it, so strict convexity fails there. Backwards, a failure of strict convexity on a convex C ⊆ dom ∂f puts a subgradient at a point between two points of C, and the failed inequality forces it to serve at both of them.

      ∂f* is the inverse of ∂f, for the self-pairing of an inner-product space. The flip of innerₗ E is discharged once here so that no later rewrite has to reach inside conj.

      theorem Tdaf.ConvexAnalysis.subsingleton_subgradient_conj_iff {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDimensional ℝ E] {f : E → EReal} (hf : ConvexFn f) (hcl : ClosedFn f) :
      (∀ (w : E), (subgradient (innerₗ E) (conj (innerₗ E) f) w).Subsingleton) ↔ ∀ (x₁ x₂ : E), x₁ ≠ x₂ → Disjoint (subgradient (innerₗ E) f x₁) (subgradient (innerₗ E) f x₂)

      Single-valuedness of ∂f* is injectivity of ∂f.

      theorem Tdaf.ConvexAnalysis.pairwise_disjoint_subgradient_conj_iff {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDimensional ℝ E] {f : E → EReal} (hf : ConvexFn f) (hcl : ClosedFn f) :
      (∀ (y₁ y₂ : E), y₁ ≠ y₂ → Disjoint (subgradient (innerₗ E) (conj (innerₗ E) f) y₁) (subgradient (innerₗ E) (conj (innerₗ E) f) y₂)) ↔ ∀ (z : E), (subgradient (innerₗ E) f z).Subsingleton

      Injectivity of ∂f* is single-valuedness of ∂f — the mirror of subsingleton_subgradient_conj_iff.

      A closed proper convex function is essentially strictly convex exactly when its conjugate is essentially smooth.

      f** = f for the self-pairing of an inner-product space, with the flip of innerₗ E discharged so that the equation is stated in terms of conj (innerₗ E) twice.

      The same duality read in the other direction: the conjugate of a closed proper convex function is essentially strictly convex exactly when the function itself is essentially smooth. This is the previous theorem applied to f*, together with f** = f.

      theorem Tdaf.ConvexAnalysis.subgradient_injective_iff {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDimensional ℝ E] {f : E → EReal} (hf : ConvexFn f) (hp : Proper f) (hcl : ClosedFn f) :
      ((∀ (z : E), (subgradient (innerₗ E) f z).Subsingleton) ∧ ∀ (x₁ x₂ : E), x₁ ≠ x₂ → Disjoint (subgradient (innerₗ E) f x₁) (subgradient (innerₗ E) f x₂)) ↔ EssentiallySmooth f ∧ StrictConvexOnFn f (interior (dom f))

      ∂f is a one-to-one mapping — single-valued and injective — exactly when f is essentially smooth and strictly convex on int (dom f). Under essential smoothness dom ∂f is int (dom f), so essential strict convexity, which quantifies over all convex subsets of dom ∂f, collapses to strict convexity on that one set.