-- File: optlib/Optlib/Algorithm/SubgradientMethod.lean
Theorem statement:
theorem extracted_formal_statement_149.{u_1} {E : Type u_1} [inst : NormedAddCommGroup E] [inst_1 : InnerProductSpace ℝ E]
  {f : E → ℝ} (xm x₀ : E) {alg : subgradient_method f x₀} (hm : IsMinOn f Set.univ xm)
  (ha' : Tendsto (subgradient_method.a f x₀) atTop (𝓝 0))
  (ha'' : Tendsto (fun k => (Finset.range (k + 1)).sum (subgradient_method.a f x₀)) atTop atTop)
  (h_original_goal :
    Tendsto (fun k => sInf {x | ∃ i ∈ Finset.range (k + 1), f (subgradient_method.x f x₀ i) = x} - f xm) atTop (𝓝 0))
  (s : Set ℝ) :
  s ∈ 𝓝 0 → ∃ a, ∀ (b : ℕ), a ≤ b → sInf {x | ∃ i < b + 1, f (subgradient_method.x f x₀ i) = x} - f xm ∈ s := sorry

Tactic state before:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
f : E → ℝ
xm x₀ : E
alg : subgradient_method f x₀
hm : IsMinOn f Set.univ xm
ha' : Tendsto (subgradient_method.a f x₀) atTop (𝓝 0)
ha'' : Tendsto (fun k => (Finset.range (k + 1)).sum (subgradient_method.a f x₀)) atTop atTop
⊢ Tendsto (fun k => sInf {x | ∃ i ∈ Finset.range (k + 1), f (subgradient_method.x f x₀ i) = x} - f xm) atTop (𝓝 0)

Tactic: simp [tendsto_def]

Tactic state after:
[E : Type u_1
 inst✝¹ : NormedAddCommGroup E
 inst✝ : InnerProductSpace ℝ E
 f : E → ℝ
 xm x₀ : E
 alg : subgradient_method f x₀
 hm : IsMinOn f Set.univ xm
 ha' : Tendsto (subgradient_method.a f x₀) atTop (𝓝 0)
 ha'' : Tendsto (fun k => (Finset.range (k + 1)).sum (subgradient_method.a f x₀)) atTop atTop
 ⊢ ∀ s ∈ 𝓝 0, ∃ a, ∀ (b : ℕ), a ≤ b → sInf {x | ∃ i < b + 1, f (subgradient_method.x f x₀ i) = x} - f xm ∈ s]

Premises used:
Filter.tendsto_def : ∀ {α : Type u_1} {β : Type u_2} {f : α → β} {l₁ : Filter α} {l₂ : Filter β},
  Tendsto f l₁ l₂ ↔ ∀ s ∈ l₂, f ⁻¹' s ∈ l₁