-- File: optlib/Optlib/Algorithm/Nesterov/NesterovAccelerationSecond.lean
Theorem statement:
theorem extracted_formal_statement_6.{u_1} {E : Type u_1} [inst : NormedAddCommGroup E] [inst_1 : InnerProductSpace ℝ E]
  [inst_2 : CompleteSpace E] {x0 : E} {f h : E → ℝ} {f' : E → E} {alg : Nesterov_second f h f' x0} {xm : E}
  (minφ : IsMinOn (f + h) univ xm) :
  let φ := fun z => f z + h z;
  (∀ (z : E), φ z = f z + h z) →
    ∀ (k : ℕ+),
      prox_prop ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h)
          (Nesterov_second.y f h f' x0 (↑k - 1) -
            (Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • f' (Nesterov_second.z f h f' x0 k))
          (Nesterov_second.y f h f' x0 ↑k) →
        ConvexOn ℝ univ ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h) →
          0 ≤ Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k := sorry

Tactic state before:
case hfun
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
x0 : E
f h : E → ℝ
f' : E → E
alg : Nesterov_second f h f' x0
xm : E
minφ : IsMinOn (f + h) univ xm
φ : E → ℝ := fun z => f z + h z
φdef : ∀ (z : E), φ z = f z + h z
k : ℕ+
h1 :
  prox_prop ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h)
    (Nesterov_second.y f h f' x0 (↑k - 1) -
      (Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • f' (Nesterov_second.z f h f' x0 k))
    (Nesterov_second.y f h f' x0 ↑k)
⊢ ConvexOn ℝ univ ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h)

Tactic: apply ConvexOn.smul

Tactic state after:
[case hfun.hc
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 x0 : E
 f h : E → ℝ
 f' : E → E
 alg : Nesterov_second f h f' x0
 xm : E
 minφ : IsMinOn (f + h) univ xm
 φ : E → ℝ := fun z => f z + h z
 φdef : ∀ (z : E), φ z = f z + h z
 k : ℕ+
 h1 :
   prox_prop ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h)
     (Nesterov_second.y f h f' x0 (↑k - 1) -
       (Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • f' (Nesterov_second.z f h f' x0 k))
     (Nesterov_second.y f h f' x0 ↑k)
 ⊢ 0 ≤ Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k,
 case hfun.hf
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 x0 : E
 f h : E → ℝ
 f' : E → E
 alg : Nesterov_second f h f' x0
 xm : E
 minφ : IsMinOn (f + h) univ xm
 φ : E → ℝ := fun z => f z + h z
 φdef : ∀ (z : E), φ z = f z + h z
 k : ℕ+
 h1 :
   prox_prop ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h)
     (Nesterov_second.y f h f' x0 (↑k - 1) -
       (Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • f' (Nesterov_second.z f h f' x0 k))
     (Nesterov_second.y f h f' x0 ↑k)
 ⊢ ConvexOn ℝ univ h]

Premises used:
ConvexOn.smul : ∀ {𝕜 : Type u_1} {E : Type u_2} {β : Type u_5} [inst : OrderedCommSemiring 𝕜] [inst_3 : AddCommMonoid E]
  [inst_4 : OrderedAddCommMonoid β] [inst_5 : SMul 𝕜 E] [inst_6 : Module 𝕜 β] [inst_7 : OrderedSMul 𝕜 β] {s : Set E}
  {f : E → β} {c : 𝕜}, 0 ≤ c → ConvexOn 𝕜 s f → ConvexOn 𝕜 s fun x => c • f x