-- File: optlib/Optlib/Algorithm/SubgradientMethod.lean
Theorem statement:
theorem extracted_formal_statement_82.{u_1} {E : Type u_1} [inst : NormedAddCommGroup E] [inst_1 : InnerProductSpace ℝ E]
  [inst_2 : CompleteSpace E] {f : E → ℝ} (xm x₀ : E) {alg : subgradient_method f x₀} {t : ℝ}
  (ha' : ∀ (n : ℕ), subgradient_method.a f x₀ n = t) (k : ℕ) (ht : t > 0)
  (h₁ :
    ∀ (k : ℕ),
      2 * (Finset.range (k + 1)).sum (subgradient_method.a f x₀) *
          (sInf {x | ∃ i ∈ Finset.range (k + 1), f (subgradient_method.x f x₀ i) = x} - f xm) ≤
        ‖x₀ - xm‖ ^ 2 + ↑(subgradient_method.G f x₀) ^ 2 * ∑ i ∈ Finset.range (k + 1), subgradient_method.a f x₀ i ^ 2)
  (hk :
    2 * ((↑k + 1) * t) * (sInf {x | ∃ i < k + 1, f (subgradient_method.x f x₀ i) = x} - f xm) ≤
      ‖x₀ - xm‖ ^ 2 + ↑(subgradient_method.G f x₀) ^ 2 * ((↑k + 1) * t ^ 2))
  (h_original_goal : 0 < (↑k + 1) * t) : 0 < ↑k + 1 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f : E → ℝ
xm x₀ : E
alg : subgradient_method f x₀
t : ℝ
ha' : ∀ (n : ℕ), subgradient_method.a f x₀ n = t
k : ℕ
ht : t > 0
h₁ :
  ∀ (k : ℕ),
    2 * (Finset.range (k + 1)).sum (subgradient_method.a f x₀) *
        (sInf {x | ∃ i ∈ Finset.range (k + 1), f (subgradient_method.x f x₀ i) = x} - f xm) ≤
      ‖x₀ - xm‖ ^ 2 + ↑(subgradient_method.G f x₀) ^ 2 * ∑ i ∈ Finset.range (k + 1), subgradient_method.a f x₀ i ^ 2
hk :
  2 * ((↑k + 1) * t) * (sInf {x | ∃ i < k + 1, f (subgradient_method.x f x₀ i) = x} - f xm) ≤
    ‖x₀ - xm‖ ^ 2 + ↑(subgradient_method.G f x₀) ^ 2 * ((↑k + 1) * t ^ 2)
⊢ 0 < (↑k + 1) * t

Tactic: apply mul_pos _ ht

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f : E → ℝ
 xm x₀ : E
 alg : subgradient_method f x₀
 t : ℝ
 ha' : ∀ (n : ℕ), subgradient_method.a f x₀ n = t
 k : ℕ
 ht : t > 0
 h₁ :
   ∀ (k : ℕ),
     2 * (Finset.range (k + 1)).sum (subgradient_method.a f x₀) *
         (sInf {x | ∃ i ∈ Finset.range (k + 1), f (subgradient_method.x f x₀ i) = x} - f xm) ≤
       ‖x₀ - xm‖ ^ 2 + ↑(subgradient_method.G f x₀) ^ 2 * ∑ i ∈ Finset.range (k + 1), subgradient_method.a f x₀ i ^ 2
 hk :
   2 * ((↑k + 1) * t) * (sInf {x | ∃ i < k + 1, f (subgradient_method.x f x₀ i) = x} - f xm) ≤
     ‖x₀ - xm‖ ^ 2 + ↑(subgradient_method.G f x₀) ^ 2 * ((↑k + 1) * t ^ 2)
 ⊢ 0 < ↑k + 1]

Premises used:
mul_pos : ∀ {α : Type u_3} {a b : α} [inst : MulZeroClass α] [inst_3 : Preorder α] [inst_4 : PosMulStrictMono α],
  0 < a → 0 < b → 0 < a * b