Documentation

Tdaf.Analysis.Convex.Subgradient.LegendreType

Convex functions of Legendre type #

A closed proper convex function is of Legendre type when it is essentially smooth and strictly convex on the interior C of its effective domain — equivalently, when ∂f is a one-to-one mapping. The property is self-dual: f is of Legendre type exactly when f* is, and then ∇f is a bijection of C onto C* = int (dom f*), continuous in both directions, with ∇f* = (∇f)⁻¹. For an essentially smooth function the domain D of the Legendre conjugate is dom ∂f*, and so is squeezed between ri (dom f*) and dom f*. In general D is not convex, which is why the squeeze cannot be improved to an equality.

Main definitions #

Main results #

Implementation notes #

legendreDom f lives in StrongDual ℝ E, but it has to be compared with dom ∂f*, whose elements are vectors for the self-pairing innerₗ E. gradientRange is legendreDom carried back across the Riesz isometry, so that the comparison is an equality of sets in E.

References #

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

The range of the gradient mapping, in vector form #

The domain D = ∇f(C) of the Legendre conjugate, as a set of vectors: the preimage of legendreDom f under the Riesz isometry.

Equations
Instances For

    Mathlib's gradient of the real trace is ∇f.

    At a point of differentiability, gradient (fun w => (f w).toReal) really is a gradient.

    The domain of the Legendre conjugate #

    For an essentially smooth function, gradients and subgradients coincide. On the interior of the effective domain a lone subgradient is the gradient; off it, both sides are impossible.

    For an essentially smooth closed proper convex function the domain D of the Legendre conjugate is exactly dom ∂f*, the set where f* has a subgradient.

    ri (dom f*) ⊆ D: a closed proper convex function has a subgradient at every point of the relative interior of its effective domain, applied to f*.

    D ⊆ dom f*: a point carrying a subgradient of f* is a point where f* is finite.

    The Legendre conjugate g — which is f* restricted to D — is strictly convex on every convex subset of D.

    Functions of Legendre type #

    A convex function of Legendre type: essentially smooth, and strictly convex on the interior of its effective domain. Classically the property belongs to the pair (C, f), C = int (dom f).

    Equations
    Instances For
      theorem Tdaf.ConvexAnalysis.legendreType_iff_subgradient_injective {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDimensional ℝ E] {f : E → EReal} (hf : ConvexFn f) (hp : Proper f) (hcl : ClosedFn f) :
      LegendreType 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₂)

      A closed proper convex function is of Legendre type exactly when ∂f is a one-to-one mapping: at most one subgradient at each point, and no subgradient shared by two points.

      Being of Legendre type is self-dual: f* is of Legendre type exactly when f is. Both sides become single-valuedness and injectivity of a subdifferential, and inverting the subdifferential swaps those two conditions.

      ∇f* = (∇f)⁻¹: v is the gradient of f at x exactly when x is that of f* at v.

      ∇f maps C = int (dom f) onto C* = int (dom f*).

      theorem Tdaf.ConvexAnalysis.eq_of_hasGradientAt_of_legendreType {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDimensional ℝ E] {f : E → EReal} {v : E} (hf : ConvexFn f) (hp : Proper f) (hcl : ClosedFn f) (hleg : LegendreType f) {x₁ x₂ : E} (h₁ : HasGradientAt f ((InnerProductSpace.toDual ℝ E) v) x₁) (h₂ : HasGradientAt f ((InnerProductSpace.toDual ℝ E) v) x₂) :
      x₁ = x₂

      Two points with the same gradient are equal, when f is of Legendre type: both are gradients of f* at the common value, and a gradient is unique.

      theorem Tdaf.ConvexAnalysis.bijOn_gradient_of_legendreType {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDimensional ℝ E] {f : E → EReal} (hf : ConvexFn f) (hp : Proper f) (hcl : ClosedFn f) (hleg : LegendreType f) :
      Set.BijOn (gradient fun (w : E) => (f w).toReal) (interior (dom f)) (interior (dom (conj (innerₗ E) f)))

      ∇f is a one-to-one mapping of C onto C*.

      theorem Tdaf.ConvexAnalysis.gradient_conj_gradient {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDimensional ℝ E] {f : E → EReal} {x : E} (hf : ConvexFn f) (hp : Proper f) (hcl : ClosedFn f) (hleg : LegendreType f) (hx : x ∈ interior (dom f)) :
      gradient (fun (w : E) => (conj (innerₗ E) f w).toReal) (gradient (fun (w : E) => (f w).toReal) x) = x

      ∇f* undoes ∇f on C.

      theorem Tdaf.ConvexAnalysis.gradient_gradient_conj {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDimensional ℝ E] {f : E → EReal} {v : E} (hf : ConvexFn f) (hp : Proper f) (hcl : ClosedFn f) (hleg : LegendreType f) (hv : v ∈ interior (dom (conj (innerₗ E) f))) :
      gradient (fun (w : E) => (f w).toReal) (gradient (fun (w : E) => (conj (innerₗ E) f w).toReal) v) = v

      ∇f undoes ∇f* on C*.

      Continuity of the gradient mapping #

      ∇f is continuous where f is differentiable, with the gradient read as a vector.

      For an essentially smooth f, ∇f is continuous on int (dom f). Applied to f and to f*, this gives continuity of ∇f and of its inverse ∇f*.

      Finite differentiable convex functions #

      A convex function that is finite and differentiable everywhere is essentially smooth: condition (c) is vacuous, because every point lies in interior (dom f) = E.

      A proper convex function that is finite everywhere is closed.

      For a convex function that is finite and differentiable everywhere, ∇f maps E one-to-one onto E exactly when f is strictly convex and dom f* is all of E. The second condition is co-finiteness; the recession function does not appear here, so the equation is stated directly.

      theorem Tdaf.ConvexAnalysis.conj_finite_of_bijOn_gradient_univ {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDimensional ℝ E] {f : E → EReal} (hf : ConvexFn f) (hp : Proper f) (hdom : dom f = Set.univ) (hdiff : ∀ (z : E), DifferentiableAtFn f z) (hbij : Set.BijOn (gradient fun (w : E) => (f w).toReal) Set.univ Set.univ) :

      When ∇f is a one-to-one mapping of E onto itself, f* is again a finite, differentiable, strictly convex function whose own conjugate domain is everything. The hypotheses are therefore self-dual.