theorem extracted_formal_statement_0.{u_1} {E : Type u_1} [inst : NormedAddCommGroup E] [inst_1 : InnerProductSpace ℝ E]
  [inst_2 : CompleteSpace E] {f h : E → ℝ} {f' : E → E} {x0 : E} {alg : Nesterov_first f h f' x0} {xm : E}
  (minφ : IsMinOn (f + h) univ xm) (k : ℕ) :
  let update2 := Nesterov_first.update2 k;
  Nesterov_first.y f h f' x0 k - Nesterov_first.x f h f' x0 (k + 1) -
        Nesterov_first.t f h f' x0 k • f' (Nesterov_first.y f h f' x0 k) ∈
      SubderivAt (Nesterov_first.t f h f' x0 k • h) (Nesterov_first.x f h f' x0 (k + 1)) →
    0 ≤ Nesterov_first.t f h f' x0 k := sorry

State before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f h : E → ℝ
f' : E → E
x0 : E
alg : Nesterov_first f h f' x0
xm : E
minφ : IsMinOn (f + h) univ xm
k : ℕ
update2 : prox_prop (Nesterov_first.t f h f' x0 k • h)
  (Nesterov_first.y f h f' x0 k - Nesterov_first.t f h f' x0 k • f' (Nesterov_first.y f h f' x0 k))
  (Nesterov_first.x f h f' x0 (k + 1)) :=
  Nesterov_first.update2 k
⊢ Nesterov_first.y f h f' x0 k - Nesterov_first.x f h f' x0 (k + 1) -
      Nesterov_first.t f h f' x0 k • f' (Nesterov_first.y f h f' x0 k) ∈
    SubderivAt (Nesterov_first.t f h f' x0 k • h) (Nesterov_first.x f h f' x0 (k + 1))

Tactic: rw [prox_iff_subderiv, sub_right_comm] at update2
    exact update2
    apply ConvexOn.smul

State after:
[case hfun.hc
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f h : E → ℝ
 f' : E → E
 x0 : E
 alg : Nesterov_first f h f' x0
 xm : E
 minφ : IsMinOn (f + h) univ xm
 k : ℕ
 update2 : prox_prop (Nesterov_first.t f h f' x0 k • h)
   (Nesterov_first.y f h f' x0 k - Nesterov_first.t f h f' x0 k • f' (Nesterov_first.y f h f' x0 k))
   (Nesterov_first.x f h f' x0 (k + 1)) :=
   Nesterov_first.update2 k
 ⊢ 0 ≤ Nesterov_first.t f h f' x0 k,
 case hfun.hf
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f h : E → ℝ
 f' : E → E
 x0 : E
 alg : Nesterov_first f h f' x0
 xm : E
 minφ : IsMinOn (f + h) univ xm
 k : ℕ
 update2 : prox_prop (Nesterov_first.t f h f' x0 k • h)
   (Nesterov_first.y f h f' x0 k - Nesterov_first.t f h f' x0 k • f' (Nesterov_first.y f h f' x0 k))
   (Nesterov_first.x f h f' x0 (k + 1)) :=
   Nesterov_first.update2 k
 ⊢ ConvexOn ℝ univ h]

Relevant lemmas:
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
sub_right_comm : ∀ {α : Type u_1} [inst : SubtractionCommMonoid α] (a b c : α), a - b - c = a - c - b
prox_iff_subderiv : ∀ {E : Type u_2} [inst : NormedAddCommGroup E] [inst_3 : InnerProductSpace ℝ E]
  [inst_4 : CompleteSpace E] {x : E} (f : E → ℝ),
  ConvexOn ℝ univ f → ∀ (u : E), prox_prop f x u ↔ x - u ∈ SubderivAt f u