Adapted from k3nfalt/longtails, commit 269cbc764dd36851fd0b64f2f950f329ee127de4. Modified for Lean Pool: module visibility, namespace isolation, and current Mathlib.
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.run_count_self_normalized
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[CompleteSpace E]
{f : E → ℝ}
{g : E → E}
{L0 L1 R : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 < L1)
(hR : 0 ≤ R)
(hc : ConvexOn ℝ Set.univ f)
(hg : ∀ (x : E), HasGradientAt f (g x) x)
(hgd : Differentiable ℝ g)
(hH : ∀ (x : E), ‖fderiv ℝ g x‖ ≤ L0 + L1 * ‖g x‖)
(s : Iterate E)
(u : E)
(hmin : IsMinOn f Set.univ u)
(hA : 0 < s.A)
(hG : 0 < s.guess)
(hE : energy f u s ≤ R ^ 2)
(hfirst : localCurvature L0 L1 (g (coupling s)) = s.guess)
(n : ℕ)
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.run_accuracy_self_normalized
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[CompleteSpace E]
{f : E → ℝ}
{g : E → E}
{L0 L1 R Δ ε : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 ≤ L1)
(hR : 0 < R)
(hΔ : 0 < Δ)
(hε : 0 < ε)
(hc : ConvexOn ℝ Set.univ f)
(hg : ∀ (x : E), HasGradientAt f (g x) x)
(hgd : Differentiable ℝ g)
(hH : ∀ (x : E), ‖fderiv ℝ g x‖ ≤ L0 + L1 * ‖g x‖)
(x0 u : E)
(hmin : IsMinOn f Set.univ u)
(hdist : ‖x0 - u‖ ≤ R)
(hgap : f x0 - f u ≤ Δ)
(N : ℕ)
(hN : 4096 * (1 + √(L0 * R ^ 2 / ε) + Real.log (4 + 4 * Δ / ε) + (L1 * R * Real.log (4 + 4 * Δ / ε)) ^ (2 / 3)) ≤ ↑N)
:
theorem
LongTails.OracleTemplate.GeneralizedAccelerated.run_accuracy_min
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[CompleteSpace E]
{f : E → ℝ}
{g : E → E}
{L0 L1 R Δ ε : ℝ}
(hL0 : 0 < L0)
(hL1 : 0 ≤ L1)
(hR : 0 < R)
(hΔ : 0 < Δ)
(hε : 0 < ε)
(hc : ConvexOn ℝ Set.univ f)
(hg : ∀ (x : E), HasGradientAt f (g x) x)
(hgd : Differentiable ℝ g)
(hH : ∀ (x : E), ‖fderiv ℝ g x‖ ≤ L0 + L1 * ‖g x‖)
(x0 u : E)
(hmin : IsMinOn f Set.univ u)
(hdist : ‖x0 - u‖ ≤ R)
(hgap : f x0 - f u ≤ Δ)
(N : ℕ)
(hN :
4096 * (1 + √(L0 * R ^ 2 / ε) + min (↑⌈(L1 * R) ^ (2 / 3)⌉₊ * Real.log (4 + 4 * Δ / ε))
(Real.log (4 + 4 * Δ / ε) + (L1 * R * Real.log (4 + 4 * Δ / ε)) ^ (2 / 3))) ≤ ↑N)
: