Skip to content

feat(Analysis/Calculus/LipschitzSmooth): add descent lemma#28

Closed
FordUniver wants to merge 1 commit into
diffbase/lipschitzSmooth-descentfrom
feat/lipschitzSmooth-descent
Closed

feat(Analysis/Calculus/LipschitzSmooth): add descent lemma#28
FordUniver wants to merge 1 commit into
diffbase/lipschitzSmooth-descentfrom
feat/lipschitzSmooth-descent

Conversation

@FordUniver

@FordUniver FordUniver commented May 18, 2026

Copy link
Copy Markdown
Owner

Establishes the descent lemma for LipschitzSmoothWith: a differentiable function f : E → F between real normed spaces (F complete) whose Fréchet derivative is K-Lipschitz is K-smooth. The 1D deriv and Hilbert-space gradient forms follow as corollaries. The proof routes through a segment-pointwise predicate LipschitzSmoothOnSegmentWith and the fundamental theorem of calculus along a line segment. Also adds the identification of Lipschitz constants between the Fréchet derivative and the gradient (via Riesz representation), and its 1D deriv analogue.


This is the substantive descent-lemma layer on top of the foundational LipschitzSmoothWith predicate API (leanprover-community#39574), whose codomain-generality it inherits. The Baillon–Haddad equivalence between cocoercivity and Lipschitz-smoothness under convexity is the final layer, deferred to a follow-up that additionally depends on the Convex first-order package (leanprover-community#41494).

The Fréchet descent lemma proof uses segment-level curve integration (curveIntegral_fderiv_segment) from Mathlib.MeasureTheory.Integral.CurveIntegral. The gradient form uses toDual_comp_gradient to identify fderiv ℝ f and ∇ f as related by a LinearIsometryEquiv; the 1D analogue uses the isometry (ContinuousLinearMap.toSpanSingletonLIE ℝ ℝ).symm (evaluation at 1) in the same way.

Diff: link

@FordUniver FordUniver force-pushed the diffbase/lipschitzSmooth-descent branch from 15c1bf9 to 007e2b2 Compare May 19, 2026 11:36
@FordUniver FordUniver force-pushed the feat/lipschitzSmooth-descent branch 2 times, most recently from 25f1e25 to 02b7618 Compare May 19, 2026 12:11
@FordUniver FordUniver force-pushed the diffbase/lipschitzSmooth-descent branch from 007e2b2 to 4e0cf67 Compare May 19, 2026 12:17
@FordUniver FordUniver force-pushed the feat/lipschitzSmooth-descent branch 2 times, most recently from 176036e to 1b1ce46 Compare May 20, 2026 05:11
@FordUniver FordUniver force-pushed the diffbase/lipschitzSmooth-descent branch from 4e0cf67 to 1fb0d6a Compare May 20, 2026 05:12
@FordUniver FordUniver force-pushed the feat/lipschitzSmooth-descent branch from 1b1ce46 to 6953a56 Compare July 8, 2026 13:04
@FordUniver FordUniver force-pushed the diffbase/lipschitzSmooth-descent branch from 1fb0d6a to 4b144de Compare July 8, 2026 13:04
@FordUniver FordUniver force-pushed the feat/lipschitzSmooth-descent branch from 6953a56 to a49398c Compare July 8, 2026 14:04
Adds the descent lemma in Fréchet / 1D `deriv` / Hilbert gradient form
on top of the foundational `LipschitzSmoothWith` API: a differentiable
function whose derivative (in any form) is `K`-Lipschitz is `K`-smooth.
The proof routes through a segment-pointwise predicate
`LipschitzSmoothOnSegmentWith` and the fundamental theorem of calculus
along a line segment. Includes the Riesz isomorphism between Fréchet
and gradient forms for Lipschitz constants and its 1D analogue.
@FordUniver FordUniver force-pushed the feat/lipschitzSmooth-descent branch from a49398c to 608f5bb Compare July 8, 2026 14:13
@FordUniver FordUniver closed this Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant