Documentation

LeanPool.PLAcceleratedNesterovLean.Convergence.Bootstrap.Main

Bootstrap via Total Displacement Control #

Starting from a sufficiently small neighborhood of m⋆ with zero initial velocity, all iterates remain in the controlled region Ω and the Lyapunov function decays geometrically.

theorem PLAcceleratedNesterovLean.bootstrap_total_displacement {d : ℕ} (_hd : 0 < d) (f : E d → ℝ) (L : NNReal) (_hL : 0 < ↑L) (μ' : ℝ) (hμ' : 0 < μ') (θ : ℝ) (hθ_pos : 0 < θ) (hθ_lt1 : θ < 1) (η : ℝ) (_hη : η = 1 / ↑L) (hη_pos : 0 < η) (hμη_lt1 : μ' * η < 1) (ρ : ℝ) (_hρ : ρ = (1 - √(μ' * η)) / (1 + √(μ' * η))) (S : Set (E d)) (hM_argmin : S = argminSet f) (U : Set (E d)) (_hTub : IsTubularNeighborhoodOfSubmanifold S U) (π : E d → E d) (_hπ_in_S : ∀ (x : E d), π x ∈ S) (_hπ_proj : ∀ x ∈ S, π x = x) (hπ_metric : ∀ x ∈ U, dist x (π x) = Metric.infDist x S) (P : E d →L[ℝ] E d) (Ω : Set (E d)) (hΩ_open : IsOpen Ω) (hΩ_sub_U : Ω ⊆ U) (R : ℝ) (hR : 0 < R) (m_star : E d) (hm_star : m_star ∈ S) (hm_star_Ω : m_star ∈ Ω) (hΨ_cont : ContinuousAt (psi f μ' S) m_star) (hΨ_zero : psi f μ' S m_star = 0) (_hQG : ∀ x ∈ Ω, f x - fStar f ≥ μ' / 2 * Metric.infDist x S ^ 2) (hcontract : ∀ (x₁ : E d) (n : ℕ), have s := nesterovSeq f η ρ x₁ n; have Ln := lyapunov P μ' π f η ρ x₁ n; have Ln' := lyapunov P μ' π f η ρ x₁ (n + 1); have a := √(μ' * η); s.x ∈ Ω → s.lookahead η ∈ Ω → Ln ≤ R ^ 2 → Ln' ≤ (1 - (1 - θ) * a) * Ln) (C_h : ℝ) (hC_h : 0 < C_h) (hstep_bound : ∀ (x₁ : E d) (n : ℕ), have s := nesterovSeq f η ρ x₁ n; have Ln := lyapunov P μ' π f η ρ x₁ n; s.x ∈ Ω → s.lookahead η ∈ Ω → Ln ≤ R ^ 2 → ‖nesterovH f η ρ x₁ n‖ ≤ C_h * √η * √Ln) (C_mov : ℝ) (hC_mov : 0 < C_mov) (hvel_bound : ∀ (x₁ : E d) (n : ℕ), have s := nesterovSeq f η ρ x₁ n; have s' := nesterovSeq f η ρ x₁ (n + 1); have Ln := lyapunov P μ' π f η ρ x₁ n; s.x ∈ Ω → s.lookahead η ∈ Ω → Ln ≤ R ^ 2 → ‖√η • s'.v‖ ≤ C_mov * √Ln) :
∃ (α : ℝ), 0 < α ∧ ∀ x₁ ∈ Metric.ball m_star α ∩ U, (∀ (n : ℕ), (nesterovSeq f η ρ x₁ n).x ∈ Ω ∧ (nesterovSeq f η ρ x₁ n).lookahead η ∈ Ω) ∧ (∀ (n : ℕ), (nesterovSeq f η ρ x₁ n).x ∈ U) ∧ ∀ (n : ℕ), have a := √(μ' * η); lyapunov P μ' π f η ρ x₁ (n + 1) ≤ (1 - (1 - θ) * a) ^ (n + 1) * lyapunov P μ' π f η ρ x₁ 0

Public theorem wrapper for bootstrapTotalDisplacementProof.

theorem PLAcceleratedNesterovLean.bootstrap_total_displacement_gen {d : ℕ} (f : E d → ℝ) (μ' : ℝ) (hμ' : 0 < μ') (θ : ℝ) (hθ_pos : 0 < θ) (hθ_lt1 : θ < 1) (η : ℝ) (hη_pos : 0 < η) (hμη_lt1 : μ' * η < 1) (ρ : ℝ) (S : Set (E d)) (hM_argmin : S = argminSet f) (π : E d → E d) (P : E d →L[ℝ] E d) (Ω : Set (E d)) (hΩ_open : IsOpen Ω) (R : ℝ) (hR : 0 < R) (m_star : E d) (hm_star : m_star ∈ S) (hm_star_Ω : m_star ∈ Ω) (hcontract : ∀ (s₀ : NesterovState d) (n : ℕ), have s := nesterovSeqGen f η ρ s₀ n; s.x ∈ Ω → s.lookahead η ∈ Ω → lyapunovOfState P μ' π f η s ≤ R ^ 2 → lyapunovOfState P μ' π f η (nesterovSeqGen f η ρ s₀ (n + 1)) ≤ (1 - (1 - θ) * √(μ' * η)) * lyapunovOfState P μ' π f η s) (C_h : ℝ) (hC_h : 0 < C_h) (hstep_bound : ∀ (s₀ : NesterovState d) (n : ℕ), have s := nesterovSeqGen f η ρ s₀ n; s.x ∈ Ω → s.lookahead η ∈ Ω → lyapunovOfState P μ' π f η s ≤ R ^ 2 → ‖stepDispOfState f η ρ s‖ ≤ C_h * √η * √(lyapunovOfState P μ' π f η s)) (C_mov : ℝ) (hC_mov : 0 < C_mov) (hvel_bound : ∀ (s₀ : NesterovState d) (n : ℕ), have s := nesterovSeqGen f η ρ s₀ n; s.x ∈ Ω → s.lookahead η ∈ Ω → lyapunovOfState P μ' π f η s ≤ R ^ 2 → ‖√η • (nesterovSeqGen f η ρ s₀ (n + 1)).v‖ ≤ C_mov * √(lyapunovOfState P μ' π f η s)) :
∃ (δ : ℝ) (r_ball : ℝ), 0 < δ ∧ 0 < r_ball ∧ Metric.ball m_star r_ball ⊆ Ω ∧ ∀ (s₀ : NesterovState d), s₀.x ∈ Metric.ball m_star δ → s₀.lookahead η ∈ Metric.ball m_star δ → lyapunovOfState P μ' π f η s₀ ≤ δ ^ 2 → (∀ (n : ℕ), (nesterovSeqGen f η ρ s₀ n).x ∈ Ω ∧ (nesterovSeqGen f η ρ s₀ n).lookahead η ∈ Ω) ∧ (∀ (n : ℕ), (nesterovSeqGen f η ρ s₀ n).x ∈ Metric.ball m_star r_ball ∧ (nesterovSeqGen f η ρ s₀ n).lookahead η ∈ Metric.ball m_star r_ball) ∧ ∀ (n : ℕ), have a := √(μ' * η); lyapunovOfState P μ' π f η (nesterovSeqGen f η ρ s₀ (n + 1)) ≤ (1 - (1 - θ) * a) ^ (n + 1) * lyapunovOfState P μ' π f η s₀

Public theorem wrapper for bootstrapTotalDisplacementGenProof.