Bench / optimisation
An actual gradient flow: objective decay with the zero-curvature branch
Optimisation · natural-language: L4 / lean: L4 (author-assigned; calibration pending)
Why this difficulty?
Compose genuine gradient/derivative chain rules, a strong-convexity first-order adapter and right-derivative scalar Gronwall on a supplied trajectory. Freeze the later objective gap in the distance estimate, keep endpoint continuity and positive denominators, and separate zero curvature from positive curvature. This is a multi-interface proof, not an assumed decay recurrence.
Editorial review and exact formal-coverage boundary
AI editorial review accepted. This is not canonical theorem publication, full Lean coverage or empirical difficulty calibration.
- The aligned target certifies only the finite, nonnegative objective-gap inequality at 0<t<=T under the exact supplied hypotheses. The auxiliary monotonicity and distance calculations are internal proof steps, not independently exported existence, distance-decay or gradient-norm theorems.
- The prose time-zero counterexample and warnings about totalized APIs, missing Riemannian/Wasserstein adapters, and the distinction between supplied and constructed flow/minimizer are not additional formal conclusions. No flow existence/uniqueness, discrete optimization complexity, sampling convergence, wider chapter completion or source-provenance theorem is established by this Bench review.
Content-bound review status and evidence hashes · Independent reports and frozen inputs. Historical rejected wording is audit material, not training gold.
Assumptions and conventions
- E is a complete real inner-product space. \(f:E\to \mathbb{R}\) is differentiable everywhere and \(α\)-strongly convex on E for \(α\ge 0\), in the chord convention \[f((1-s)x+sy)\le(1-s)f(x)+sf(y)-\frac\alpha2s(1-s)\|y-x\|^2\qquad(0\le s\le1).\] The corresponding first-order inequality is a derived adapter, not an extra premise. A global minimizer z is supplied, not constructed.
- \(T\ge 0\) and \(X:\mathbb{R}\to E\) is continuous on [0,T]. For every u∈[0,T), X has the genuine derivative within the forward ray [u,∞) at u equal to \(-\nabla f(X(u))\). This is the actual trajectory/regularity premise; a scalar gap recurrence is not given.
- The observation t lies in (0,T]. Gradient notation is the Hilbert/Riesz gradient supplied by differentiability, not an arbitrary value of a totalized API. If \(T=0\) there is no such observation.
Natural-language question
Starting from the actual flow, prove the nonnegative objective-gap estimate \[0\le f(X(t))-f(z)\le\begin{cases}\|X(0)-z\|^2/(2t),&\alpha=0,\\\alpha\|X(0)-z\|^2/[2(e^{\alpha t}-1)],&\alpha>0.\end{cases}\] Derive objective monotonicity and the distance inequality needed for the fixed later time t rather than assuming them. Explain the time/curvature/domain conditions, why the theorem constructs no flow, and why directly substituting \(t=0\) in totalized division is invalid; give a valid positive-initial-gap example for that last point.
Reference mathematical proof
The differentiability and actual one-sided flow law give, for \(u<T\), \[\frac{d}{du^+}f(X(u))=\langle\nabla f(X(u)),-\nabla f(X(u))\rangle=-\|\nabla f(X(u))\|^2\le0.\] Continuity on closed subintervals and the right-derivative comparison theorem imply f∘X is nonincreasing on [0,T]. Thus for \(0\le u\le t\), \(f(X(u))-f(z)\ge f(X(t))-f(z)\). The source does not assume this monotonicity as an input.
Write \(D(u)=\|X(u)-z\|^2\) and \(h_t=f(X(t))-f(z)\ge0\), the latter by global minimality of z. The norm-square derivative and first-order strong-convexity bound give \[D'(u^+)=-2\langle\nabla f(X(u)),X(u)-z\rangle\le-\alpha D(u)-2(f(X(u))-f(z))\le-\alpha D(u)-2h_t.\] The last step freezes the objective gap at the later observation time, using the proved monotonicity and the correct negative sign.
On the fixed interval [0,t], scalar Gronwall/comparison with constant forcing \(-2hₜ\) gives for \(α=0\) \[D(t)\le D(0)-2t h_t.\] Since \(D(t)\ge 0\) and \(t>0\), \(h_t\le D(0)/(2t)\). Division by 2t requires the positive observation time, not just \(T\ge 0\).
For \(α>0\), the same comparison gives \[D(t)\le e^{-\alpha t}D(0)-\frac{2h_t}{\alpha}(1-e^{-\alpha t}).\] Multiply its nonnegative upper bound by \(αe^{αt}\)>0 and rearrange: \[2h_t(e^{\alpha t}-1)\le\alpha D(0).\] Because \(αt>0\), \(e^{αt}\)\(-1>0\), and division yields the exact stated coefficient. No extra smoothness, Lipschitz-gradient constant or finite dimension is introduced.
The derivative premise is required only before T; continuity at T supports the closed-endpoint comparison and permits observation \(t=T\). The supplied minimizer and trajectory are never obtained from the rate estimate. If \(T=0\) the observation set is empty. At \(α=0\) the zero-curvature comparison is a separate branch, not evaluating α/(\(e^{αt}\)−1) as 0/0.
For failure at time zero take \(E=\mathbb{R}\), \(f(x)=x^{2}/2\), \(z=0\), \(α=1\) and X(u)=\(e^{-u}\) on [0,1]. This satisfies the actual gradient-flow equation, with \[\begin{gathered}f(X(0))-f(0)=\tfrac12>0,\\ D(0)=1.\end{gathered}\] Direct \(t=0\) substitution in a totalized denominator would return zero and falsely assert a zero initial gap. This refutes only the forbidden endpoint substitution. The positive-time theorem is valid. Transferring it to a curved manifold or a law-valued flow requires new geometric/chain-rule/distance adapters; these data are not automatically present.
How the Lean proof follows these steps
The target is the source's actual trajectory theorem. It derives the objective's one-sided derivative by composing the supplied HasFDerivAt/gradient with hflow, proves monotonicity through a zero-forcing Gronwall comparison, and computes the squared-distance derivative. It calls StrongConvexFirstOrder's existing adapter and a second comparison with \(K=-α\) and \(ε=-2\) times the frozen later gap. The final branches use nonnegative distance, positive t and, when \(α>0\), a positive exponential denominator. The target module is not imported; no decay lemma is supplied as a substitute for the trajectory. The time-zero example and geometric-transfer warning explain the conclusion's boundary, not additional Lean conclusions.
/- SamplingOptimisationGeometryBench public-dev reference.
Reuses the existing project proof; retain LICENSE and NOTICE. -/
import AutoSamplingTheory.TechnicalLemmas.Analysis.StrongConvexFirstOrder
import Mathlib.Analysis.InnerProductSpace.Calculus
import Mathlib.Analysis.ODE.Gronwall
open Set
open scoped RealInnerProductSpace
open AutoSamplingTheory.TechnicalLemmas.Analysis
variable {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [CompleteSpace E]
example {f : E → ℝ} {X : ℝ → E} {z : E} {α T : ℝ}
(hα : 0 ≤ α) (_hT : 0 ≤ T) (hf : Differentiable ℝ f)
(hsc : StrongConvexOn univ α f) (hz : IsMinOn f univ z)
(hX : ContinuousOn X (Icc 0 T))
(hflow : ∀ t ∈ Ico 0 T, HasDerivWithinAt X (-gradient f (X t)) (Ici t) t) :
∀ t ∈ Ioc 0 T, 0 ≤ f (X t) - f z ∧
f (X t) - f z ≤ if α = 0 then ‖X 0 - z‖ ^ 2 / (2 * t)
else α / (2 * (Real.exp (α * t) - 1)) * ‖X 0 - z‖ ^ 2 := by
have hd (u : ℝ) (hu : u ∈ Ico 0 T) :
HasDerivWithinAt (fun s => f (X s)) (-‖gradient f (X u)‖ ^ 2) (Ici u) u := by
have hgrad : HasFDerivAt f (InnerProductSpace.toDual ℝ E (gradient f (X u))) (X u) :=
(hf (X u)).hasGradientAt
simpa only [Function.comp_def, InnerProductSpace.toDual_apply_apply,
inner_neg_right, real_inner_self_eq_norm_sq] using
hgrad.comp_hasDerivWithinAt u (hflow u hu)
have hmono : AntitoneOn (fun s => f (X s)) (Icc 0 T) := by
intro a ha b hb hab
have hc := (hf.continuous.comp_continuousOn hX).mono
(show Icc a b ⊆ Icc 0 T from fun u hu => ⟨ha.1.trans hu.1, hu.2.trans hb.2⟩)
have hg := le_gronwallBound_of_liminf_deriv_right_le
(f' := fun u => -‖gradient f (X u)‖ ^ 2) (δ := f (X a)) (K := 0) (ε := 0) hc
(fun u hu r hr => by
simpa [slope] using (hd u ⟨ha.1.trans hu.1, hu.2.trans_le hb.2⟩).liminf_right_slope_le hr)
le_rfl (fun u _ => by nlinarith [sq_nonneg ‖gradient f (X u)‖]) b ⟨hab, le_rfl⟩
simpa [gronwallBound_K0] using hg
have hdist (u : ℝ) (hu : u ∈ Ico 0 T) :
HasDerivWithinAt (fun s => ‖X s - z‖ ^ 2)
(-2 * inner ℝ (gradient f (X u)) (X u - z)) (Ici u) u := by
have h := ((hflow u hu).sub_const z).norm_sq
simp only [inner_neg_right, real_inner_comm] at h
convert h using 1; ring
intro t ht
refine ⟨sub_nonneg.mpr (hz (mem_univ _)), ?_⟩
have hbound := le_gronwallBound_of_liminf_deriv_right_le
(f := fun s => ‖X s - z‖ ^ 2)
(f' := fun u => -2 * inner ℝ (gradient f (X u)) (X u - z))
(δ := ‖X 0 - z‖ ^ 2) (K := -α) (ε := -2 * (f (X t) - f z))
(((hX.sub continuousOn_const).norm.pow 2).mono
(show Icc 0 t ⊆ Icc 0 T from fun u hu => ⟨hu.1, hu.2.trans ht.2⟩))
(fun u hu r hr => by
simpa [slope] using (hdist u ⟨hu.1, hu.2.trans_le ht.2⟩).liminf_right_slope_le hr)
le_rfl (fun u hu => by
have hs := StrongConvexFirstOrder.firstOrder_lower_bound_of_strongConvexOn
hsc (fun x _ => (hf x).hasGradientAt) (mem_univ (X u)) (mem_univ z)
rw [show z - X u = -(X u - z) by abel, inner_neg_right, norm_neg] at hs
have hm := hmono ⟨hu.1, hu.2.le.trans ht.2⟩ ⟨ht.1.le, ht.2⟩ hu.2.le
nlinarith) t ⟨ht.1.le, le_rfl⟩
have hn := (sq_nonneg ‖X t - z‖).trans hbound
by_cases ha : α = 0
· simp only [ha, neg_zero, gronwallBound_K0, sub_zero] at hn ⊢
apply (le_div_iff₀ (mul_pos (by norm_num) ht.1)).mpr
nlinarith
· rw [if_neg ha]
have hap : 0 < α := lt_of_le_of_ne hα (Ne.symm ha)
rw [gronwallBound_of_K_ne_0 (neg_ne_zero.mpr ha), sub_zero] at hn
have hmul := mul_nonneg hn hap.le
have heq : (‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
(-2 * (f (X t) - f z)) / -α * (Real.exp (-α * t) - 1)) * α =
α * ‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
2 * (f (X t) - f z) * (Real.exp (-α * t) - 1) := by
field_simp
rw [heq] at hmul
have he : Real.exp (-α * t) * Real.exp (α * t) = 1 := by
rw [← Real.exp_add, show -α * t + α * t = 0 by ring, Real.exp_zero]
have hp := mul_nonneg hmul (Real.exp_pos (α * t)).le
have hcancel : (α * ‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
2 * (f (X t) - f z) * (Real.exp (-α * t) - 1)) * Real.exp (α * t) =
α * ‖X 0 - z‖ ^ 2 - 2 * (f (X t) - f z) * (Real.exp (α * t) - 1) := by
calc
_ = α * ‖X 0 - z‖ ^ 2 * (Real.exp (-α * t) * Real.exp (α * t)) +
2 * (f (X t) - f z) * (Real.exp (-α * t) * Real.exp (α * t)) -
2 * (f (X t) - f z) * Real.exp (α * t) := by ring
_ = _ := by rw [he]; ring
rw [hcancel] at hp
rw [div_mul_eq_mul_div]
apply (le_div_iff₀ (mul_pos (by norm_num) (sub_pos.mpr (Real.one_lt_exp_iff.mpr
(mul_pos hap ht.1))))).mpr
nlinarith
Assessment rubric · 4 points
- Derives the true objective derivative and monotonicity from differentiability, forward flow and interval continuity, rather than assuming an energy recurrence. (1 point)
- Derives the squared-distance inequality via first-order strong convexity and correctly freezes the later nonnegative objective gap with the proper sign. (1 point)
- Solves the comparison in both curvature branches and tracks the exact coefficient, positive observation time and denominator signs. (1 point)
- Explains closed-endpoint versus forward-derivative domains, supplied rather than constructed flow/minimizer and missing geometric-transfer adapters; supplies any valid positive-initial-gap gradient-flow example refuting totalized \(t=0\) substitution. (1 point)
Lean question
Keep the target and context fixed; replace the comment slot with your proof. Ancestor libraries are allowed, but the target module is not imported directly.
Show fixed Lean task
/- SamplingOptimisationGeometryBench public-dev reference.
Reuses the existing project proof; retain LICENSE and NOTICE. -/
import AutoSamplingTheory.TechnicalLemmas.Analysis.StrongConvexFirstOrder
import Mathlib.Analysis.InnerProductSpace.Calculus
import Mathlib.Analysis.ODE.Gronwall
open Set
open scoped RealInnerProductSpace
open AutoSamplingTheory.TechnicalLemmas.Analysis
variable {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [CompleteSpace E]
example {f : E → ℝ} {X : ℝ → E} {z : E} {α T : ℝ}
(hα : 0 ≤ α) (_hT : 0 ≤ T) (hf : Differentiable ℝ f)
(hsc : StrongConvexOn univ α f) (hz : IsMinOn f univ z)
(hX : ContinuousOn X (Icc 0 T))
(hflow : ∀ t ∈ Ico 0 T, HasDerivWithinAt X (-gradient f (X t)) (Ici t) t) :
∀ t ∈ Ioc 0 T, 0 ≤ f (X t) - f z ∧
f (X t) - f z ≤ if α = 0 then ‖X 0 - z‖ ^ 2 / (2 * t)
else α / (2 * (Real.exp (α * t) - 1)) * ‖X 0 - z‖ ^ 2 := by
-- Replace this comment with your proof.
Reference Lean and explanation
The target is the source's actual trajectory theorem. It derives the objective's one-sided derivative by composing the supplied HasFDerivAt/gradient with hflow, proves monotonicity through a zero-forcing Gronwall comparison, and computes the squared-distance derivative. It calls StrongConvexFirstOrder's existing adapter and a second comparison with \(K=-α\) and \(ε=-2\) times the frozen later gap. The final branches use nonnegative distance, positive t and, when \(α>0\), a positive exponential denominator. The target module is not imported; no decay lemma is supplied as a substitute for the trajectory. The time-zero example and geometric-transfer warning explain the conclusion's boundary, not additional Lean conclusions.
/- SamplingOptimisationGeometryBench public-dev reference.
Reuses the existing project proof; retain LICENSE and NOTICE. -/
import AutoSamplingTheory.TechnicalLemmas.Analysis.StrongConvexFirstOrder
import Mathlib.Analysis.InnerProductSpace.Calculus
import Mathlib.Analysis.ODE.Gronwall
open Set
open scoped RealInnerProductSpace
open AutoSamplingTheory.TechnicalLemmas.Analysis
variable {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [CompleteSpace E]
example {f : E → ℝ} {X : ℝ → E} {z : E} {α T : ℝ}
(hα : 0 ≤ α) (_hT : 0 ≤ T) (hf : Differentiable ℝ f)
(hsc : StrongConvexOn univ α f) (hz : IsMinOn f univ z)
(hX : ContinuousOn X (Icc 0 T))
(hflow : ∀ t ∈ Ico 0 T, HasDerivWithinAt X (-gradient f (X t)) (Ici t) t) :
∀ t ∈ Ioc 0 T, 0 ≤ f (X t) - f z ∧
f (X t) - f z ≤ if α = 0 then ‖X 0 - z‖ ^ 2 / (2 * t)
else α / (2 * (Real.exp (α * t) - 1)) * ‖X 0 - z‖ ^ 2 := by
have hd (u : ℝ) (hu : u ∈ Ico 0 T) :
HasDerivWithinAt (fun s => f (X s)) (-‖gradient f (X u)‖ ^ 2) (Ici u) u := by
have hgrad : HasFDerivAt f (InnerProductSpace.toDual ℝ E (gradient f (X u))) (X u) :=
(hf (X u)).hasGradientAt
simpa only [Function.comp_def, InnerProductSpace.toDual_apply_apply,
inner_neg_right, real_inner_self_eq_norm_sq] using
hgrad.comp_hasDerivWithinAt u (hflow u hu)
have hmono : AntitoneOn (fun s => f (X s)) (Icc 0 T) := by
intro a ha b hb hab
have hc := (hf.continuous.comp_continuousOn hX).mono
(show Icc a b ⊆ Icc 0 T from fun u hu => ⟨ha.1.trans hu.1, hu.2.trans hb.2⟩)
have hg := le_gronwallBound_of_liminf_deriv_right_le
(f' := fun u => -‖gradient f (X u)‖ ^ 2) (δ := f (X a)) (K := 0) (ε := 0) hc
(fun u hu r hr => by
simpa [slope] using (hd u ⟨ha.1.trans hu.1, hu.2.trans_le hb.2⟩).liminf_right_slope_le hr)
le_rfl (fun u _ => by nlinarith [sq_nonneg ‖gradient f (X u)‖]) b ⟨hab, le_rfl⟩
simpa [gronwallBound_K0] using hg
have hdist (u : ℝ) (hu : u ∈ Ico 0 T) :
HasDerivWithinAt (fun s => ‖X s - z‖ ^ 2)
(-2 * inner ℝ (gradient f (X u)) (X u - z)) (Ici u) u := by
have h := ((hflow u hu).sub_const z).norm_sq
simp only [inner_neg_right, real_inner_comm] at h
convert h using 1; ring
intro t ht
refine ⟨sub_nonneg.mpr (hz (mem_univ _)), ?_⟩
have hbound := le_gronwallBound_of_liminf_deriv_right_le
(f := fun s => ‖X s - z‖ ^ 2)
(f' := fun u => -2 * inner ℝ (gradient f (X u)) (X u - z))
(δ := ‖X 0 - z‖ ^ 2) (K := -α) (ε := -2 * (f (X t) - f z))
(((hX.sub continuousOn_const).norm.pow 2).mono
(show Icc 0 t ⊆ Icc 0 T from fun u hu => ⟨hu.1, hu.2.trans ht.2⟩))
(fun u hu r hr => by
simpa [slope] using (hdist u ⟨hu.1, hu.2.trans_le ht.2⟩).liminf_right_slope_le hr)
le_rfl (fun u hu => by
have hs := StrongConvexFirstOrder.firstOrder_lower_bound_of_strongConvexOn
hsc (fun x _ => (hf x).hasGradientAt) (mem_univ (X u)) (mem_univ z)
rw [show z - X u = -(X u - z) by abel, inner_neg_right, norm_neg] at hs
have hm := hmono ⟨hu.1, hu.2.le.trans ht.2⟩ ⟨ht.1.le, ht.2⟩ hu.2.le
nlinarith) t ⟨ht.1.le, le_rfl⟩
have hn := (sq_nonneg ‖X t - z‖).trans hbound
by_cases ha : α = 0
· simp only [ha, neg_zero, gronwallBound_K0, sub_zero] at hn ⊢
apply (le_div_iff₀ (mul_pos (by norm_num) ht.1)).mpr
nlinarith
· rw [if_neg ha]
have hap : 0 < α := lt_of_le_of_ne hα (Ne.symm ha)
rw [gronwallBound_of_K_ne_0 (neg_ne_zero.mpr ha), sub_zero] at hn
have hmul := mul_nonneg hn hap.le
have heq : (‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
(-2 * (f (X t) - f z)) / -α * (Real.exp (-α * t) - 1)) * α =
α * ‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
2 * (f (X t) - f z) * (Real.exp (-α * t) - 1) := by
field_simp
rw [heq] at hmul
have he : Real.exp (-α * t) * Real.exp (α * t) = 1 := by
rw [← Real.exp_add, show -α * t + α * t = 0 by ring, Real.exp_zero]
have hp := mul_nonneg hmul (Real.exp_pos (α * t)).le
have hcancel : (α * ‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
2 * (f (X t) - f z) * (Real.exp (-α * t) - 1)) * Real.exp (α * t) =
α * ‖X 0 - z‖ ^ 2 - 2 * (f (X t) - f z) * (Real.exp (α * t) - 1) := by
calc
_ = α * ‖X 0 - z‖ ^ 2 * (Real.exp (-α * t) * Real.exp (α * t)) +
2 * (f (X t) - f z) * (Real.exp (-α * t) * Real.exp (α * t)) -
2 * (f (X t) - f z) * Real.exp (α * t) := by ring
_ = _ := by rw [he]; ring
rw [hcancel] at hp
rw [div_mul_eq_mul_div]
apply (le_div_iff₀ (mul_pos (by norm_num) (sub_pos.mpr (Real.one_lt_exp_iff.mpr
(mul_pos hap ht.1))))).mpr
nlinarith
No current trusted-reference compiler receipt recorded in this build.
Structural questions about this proof context (not equivalent mathematical tasks): Which convex-analysis branches reach the curve limit? · Combine a proof path with an exact statement profile
What this does—and does not—verify
The Lean conclusion is the nonnegative finite objective-gap bound at positive observation time for a supplied complete-space trajectory and minimizer. It is not flow existence/uniqueness, discrete gradient-descent complexity, stochastic sampling convergence, Riemannian or Wasserstein gradient flow, or a formalization of the explanatory time-zero counterexample. \(T\ge 0\) is retained from the actual statement; no necessity/minimality claim is made for every source/API premise. This exercise shares a public family with the first-order limiting task, not an independent private split.
Existing library mathematics reused; no new mathematical leaf or paper-completion credit. The editorial panel records the exact current review scope and remaining unformalized explanation.
Sources, graph location and dependencies
Original QA over the existing ASTIS-owned GradientFlowValue.value_le proof and its real first-order/Gronwall adapters. The module cites Chewi arXiv:2605.07006v1, Theorem 2.4; this is ASTIS-authored exposition of the exact local theorem, not copied book prose or a claim that its wider chapter is complete. StrongConvexFirstOrder records its Optlib mathematical provenance; it remains an installed dependency rather than a copied transitive source tree. No external dataset or restricted source is exported.
Exact local source and full context · Locate the existing Lean declaration
AutoSamplingTheory.TechnicalLemmas.Analysis.GradientFlowValue.value_le
ASTIS definitions / proof calls
AutoSamplingTheory.TechnicalLemmas.Analysis.StrongConvexFirstOrder.firstOrder_lower_bound_of_strongConvexOn
Mathlib facts / definitions
DifferentiableAt.hasGradientAtHasFDerivAt.comp_hasDerivWithinAtHasDerivWithinAt.norm_sqle_gronwallBound_of_liminf_deriv_right_legronwallBound_K0gronwallBound_of_K_ne_0Real.one_lt_exp_iff
Binding SHA-256: 4a0607efb0c7bf22a09cc2d1ced0f8033582c57fd04e0225279f2e0782d169dc