The gradient formulas of Moreau's theorem #
For f closed proper convex on a finite-dimensional inner product space and w z = ½‖z‖², the
Moreau envelope f □ w is finite everywhere and differentiable everywhere, with
∇(f □ w) z = z - prox (z | f), ∇(f* □ w) z = prox (z | f).
So the two halves of Moreau's splitting z = prox (z | f) + prox (z | f*) are the gradients of the
two envelopes. The splitting itself is in Optimization/Prox.lean; what is added here is that
∂(f □ w) z is a single point, and a convex function with a one-point subdifferential at z is
differentiable there.
Main results #
subgradient_infConv_quadFn—∂(f □ w) z = {prox (z | f*)}.hasGradientAt_infConv_quadFn,hasGradientAt_infConv_conj_quadFn,gradient_infConv_quadFn,gradient_infConv_conj_quadFn— the gradient formulas (Theorem 31.5 in [^1]), inHasGradientAtform and in terms of Mathlib'sgradient.closedProperConvexFn_infConv_quadFn— the Moreau envelope is finite everywhere, hence closed proper convex.conj_infConv_quadFn—(f □ w)* = f* + w, since conjugation turns□into+andw* = w.
Implementation notes #
No relative-interior or exactness hypothesis is needed: the conjugate of an infimal convolution is
used in its unconditional direction, and the constraint qualification for the subgradient sum rule
is supplied by w being finite and continuous.
References #
[^1]: R. T. Rockafellar, Convex Analysis, Princeton University Press, 1970, §31.
The Moreau envelope is closed proper convex #
The Moreau envelope is finite everywhere.
Finite everywhere and convex, hence closed.
The gradient formulas #
The subdifferential of a Moreau envelope is a single point: ∂(f □ w) z = {prox (z | f*)}.
Conjugate inversion turns y ∈ ∂(f □ w) z into z ∈ ∂(f* + w) y, the sum rule splits that as
∂f* y + {y}, and what is left, z - y ∈ ∂f* y, characterises prox (z | f*).
The two proximal points add up to z, written here as a formula for the second.
prox (z | f*) = ∇(f □ w) z: the subdifferential is a single point, so the envelope is
differentiable there.
prox (z | f) = ∇(f* □ w) z. The previous statement applied to f*, using
prox (z | f**) = z - prox (z | f*) = prox (z | f).
∇(f □ w) z = z - prox (z | f).
∇(f* □ w) z = prox (z | f).
The Moreau envelope is differentiable everywhere.