theorem extracted_formal_statement_10.{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 : ℕ+),
        Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
            Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k) ∈
          SubderivAt (Nesterov_second.t f h f' x0 ↑k • h) (Nesterov_second.y f h f' x0 ↑k)) →
      (∀ (w : E) (k : ℕ+),
          Nesterov_second.t f h f' x0 ↑k * h w ≥
            Nesterov_second.t f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k) +
              inner
                (Nesterov_second.γ f h f' x0 ↑k •
                    (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
                  Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
                (w - Nesterov_second.y f h f' x0 ↑k)) →
        (∀ (k : ℕ+),
            h (Nesterov_second.x f h f' x0 ↑k) ≤
              (1 - Nesterov_second.γ f h f' x0 ↑k) * h (Nesterov_second.x f h f' x0 (↑k - 1)) +
                Nesterov_second.γ f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k)) →
          (∀ (k : ℕ), Nesterov_second.t f h f' x0 k / Nesterov_second.γ f h f' x0 k > 0) →
            (∀ (w : E) (k : ℕ+),
                Nesterov_second.γ f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k) ≤
                  Nesterov_second.γ f h f' x0 ↑k * h w -
                    Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
                      inner
                        (Nesterov_second.γ f h f' x0 ↑k •
                            (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
                          Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
                        (w - Nesterov_second.y f h f' x0 ↑k)) →
              (∀ (k : ℕ+),
                  f (Nesterov_second.x f h f' x0 ↑k) ≤
                    f (Nesterov_second.z f h f' x0 k) +
                        inner (f' (Nesterov_second.z f h f' x0 k))
                          (Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k) +
                      ↑(Nesterov_second.l f h f' x0) / 2 *
                        ‖Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k‖ ^ 2) →
                (∀ (k : ℕ+),
                    f (Nesterov_second.x f h f' x0 ↑k) ≤
                      f (Nesterov_second.z f h f' x0 k) +
                          inner (f' (Nesterov_second.z f h f' x0 k))
                            (Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k) +
                        1 / (2 * Nesterov_second.t f h f' x0 ↑k) *
                          ‖Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k‖ ^ 2) →
                  (∀ (k : ℕ+),
                      f (Nesterov_second.x f h f' x0 ↑k) ≤
                        f (Nesterov_second.z f h f' x0 k) +
                            inner (f' (Nesterov_second.z f h f' x0 k))
                              ((1 - Nesterov_second.γ f h f' x0 ↑k) • Nesterov_second.x f h f' x0 (↑k - 1) +
                                  Nesterov_second.γ f h f' x0 ↑k • Nesterov_second.y f h f' x0 ↑k -
                                Nesterov_second.z f h f' x0 k) +
                          Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
                            ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2) →
                    ∀ (k : ℕ+),
                      h (Nesterov_second.x f h f' x0 ↑k) ≤
                          (1 - Nesterov_second.γ f h f' x0 ↑k) * h (Nesterov_second.x f h f' x0 (↑k - 1)) +
                              Nesterov_second.γ f h f' x0 ↑k * h xm -
                            Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
                              inner
                                (Nesterov_second.γ f h f' x0 ↑k •
                                    (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
                                  Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
                                (xm - Nesterov_second.y f h f' x0 ↑k) →
                        f (Nesterov_second.x f h f' x0 ↑k) ≤
                            (1 - Nesterov_second.γ f h f' x0 ↑k) * f (Nesterov_second.x f h f' x0 (↑k - 1)) +
                                Nesterov_second.γ f h f' x0 ↑k *
                                  (f (Nesterov_second.z f h f' x0 k) +
                                    inner (f' (Nesterov_second.z f h f' x0 k))
                                      (Nesterov_second.y f h f' x0 ↑k - Nesterov_second.z f h f' x0 k)) +
                              Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
                                ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2 →
                          -Nesterov_second.γ f h f' x0 ↑k *
                                      (f (Nesterov_second.z f h f' x0 k) +
                                        inner (f' (Nesterov_second.z f h f' x0 k))
                                          (xm - Nesterov_second.z f h f' x0 k)) -
                                    Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
                                      inner
                                        (Nesterov_second.γ f h f' x0 ↑k •
                                            (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
                                          Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
                                        (xm - Nesterov_second.y f h f' x0 ↑k) +
                                  Nesterov_second.γ f h f' x0 ↑k *
                                    (f (Nesterov_second.z f h f' x0 k) +
                                      inner (f' (Nesterov_second.z f h f' x0 k))
                                        (Nesterov_second.y f h f' x0 ↑k - Nesterov_second.z f h f' x0 k)) +
                                Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
                                  ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2 =
                              Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
                                (‖Nesterov_second.y f h f' x0 (↑k - 1) - xm‖ ^ 2 -
                                  ‖Nesterov_second.y f h f' x0 ↑k - xm‖ ^ 2) →
                            -(Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
                                    inner
                                      (Nesterov_second.γ f h f' x0 ↑k •
                                        (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k))
                                      (xm - Nesterov_second.y f h f' x0 ↑k)) +
                                Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
                                  ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2 =
                              Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
                                (‖Nesterov_second.y f h f' x0 (↑k - 1) - xm‖ ^ 2 -
                                  ‖Nesterov_second.y f h f' x0 ↑k - xm‖ ^ 2) := sorry

State before:
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
h1 :
  ∀ (k : ℕ+),
    Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
        Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k) ∈
      SubderivAt (Nesterov_second.t f h f' x0 ↑k • h) (Nesterov_second.y f h f' x0 ↑k)
hieq1 :
  ∀ (w : E) (k : ℕ+),
    Nesterov_second.t f h f' x0 ↑k * h w ≥
      Nesterov_second.t f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k) +
        inner
          (Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
            Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
          (w - Nesterov_second.y f h f' x0 ↑k)
cvxineq :
  ∀ (k : ℕ+),
    h (Nesterov_second.x f h f' x0 ↑k) ≤
      (1 - Nesterov_second.γ f h f' x0 ↑k) * h (Nesterov_second.x f h f' x0 (↑k - 1)) +
        Nesterov_second.γ f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k)
bsc1 : ∀ (k : ℕ), Nesterov_second.t f h f' x0 k / Nesterov_second.γ f h f' x0 k > 0
hieq2 :
  ∀ (w : E) (k : ℕ+),
    Nesterov_second.γ f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k) ≤
      Nesterov_second.γ f h f' x0 ↑k * h w -
        Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
          inner
            (Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
              Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
            (w - Nesterov_second.y f h f' x0 ↑k)
hieq4 :
  ∀ (k : ℕ+),
    f (Nesterov_second.x f h f' x0 ↑k) ≤
      f (Nesterov_second.z f h f' x0 k) +
          inner (f' (Nesterov_second.z f h f' x0 k)) (Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k) +
        ↑(Nesterov_second.l f h f' x0) / 2 * ‖Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k‖ ^ 2
hieq5 :
  ∀ (k : ℕ+),
    f (Nesterov_second.x f h f' x0 ↑k) ≤
      f (Nesterov_second.z f h f' x0 k) +
          inner (f' (Nesterov_second.z f h f' x0 k)) (Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k) +
        1 / (2 * Nesterov_second.t f h f' x0 ↑k) * ‖Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k‖ ^ 2
hieq6 :
  ∀ (k : ℕ+),
    f (Nesterov_second.x f h f' x0 ↑k) ≤
      f (Nesterov_second.z f h f' x0 k) +
          inner (f' (Nesterov_second.z f h f' x0 k))
            ((1 - Nesterov_second.γ f h f' x0 ↑k) • Nesterov_second.x f h f' x0 (↑k - 1) +
                Nesterov_second.γ f h f' x0 ↑k • Nesterov_second.y f h f' x0 ↑k -
              Nesterov_second.z f h f' x0 k) +
        Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
          ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2
k : ℕ+
hieq3 :
  h (Nesterov_second.x f h f' x0 ↑k) ≤
    (1 - Nesterov_second.γ f h f' x0 ↑k) * h (Nesterov_second.x f h f' x0 (↑k - 1)) +
        Nesterov_second.γ f h f' x0 ↑k * h xm -
      Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
        inner
          (Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
            Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
          (xm - Nesterov_second.y f h f' x0 ↑k)
hieq7 :
  f (Nesterov_second.x f h f' x0 ↑k) ≤
    (1 - Nesterov_second.γ f h f' x0 ↑k) * f (Nesterov_second.x f h f' x0 (↑k - 1)) +
        Nesterov_second.γ f h f' x0 ↑k *
          (f (Nesterov_second.z f h f' x0 k) +
            inner (f' (Nesterov_second.z f h f' x0 k))
              (Nesterov_second.y f h f' x0 ↑k - Nesterov_second.z f h f' x0 k)) +
      Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
        ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2
⊢ -Nesterov_second.γ f h f' x0 ↑k *
            (f (Nesterov_second.z f h f' x0 k) +
              inner (f' (Nesterov_second.z f h f' x0 k)) (xm - Nesterov_second.z f h f' x0 k)) -
          Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
            inner
              (Nesterov_second.γ f h f' x0 ↑k •
                  (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
                Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
              (xm - Nesterov_second.y f h f' x0 ↑k) +
        Nesterov_second.γ f h f' x0 ↑k *
          (f (Nesterov_second.z f h f' x0 k) +
            inner (f' (Nesterov_second.z f h f' x0 k))
              (Nesterov_second.y f h f' x0 ↑k - Nesterov_second.z f h f' x0 k)) +
      Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
        ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2 =
    Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
      (‖Nesterov_second.y f h f' x0 (↑k - 1) - xm‖ ^ 2 - ‖Nesterov_second.y f h f' x0 ↑k - xm‖ ^ 2)

Tactic: rw [sub_add_eq_add_sub, neg_mul, ← sub_eq_neg_add, ← mul_sub, ← sub_sub, ← sub_add_eq_add_sub, sub_self,
  zero_add]
    rw [← inner_sub_right, ← sub_add, (sub_add_eq_add_sub _ xm _), sub_add_cancel]
    rw [inner_sub_left, mul_sub, ← sub_add, sub_add_eq_add_sub, inner_smul_left, conj_trivial]
    rw [← mul_assoc, div_mul, div_self, div_one, ← mul_add, ← inner_add_right]
    rw [sub_add_sub_cancel, sub_self, inner_zero_right, mul_zero, zero_sub]

State after:
[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
 h1 :
   ∀ (k : ℕ+),
     Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
         Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k) ∈
       SubderivAt (Nesterov_second.t f h f' x0 ↑k • h) (Nesterov_second.y f h f' x0 ↑k)
 hieq1 :
   ∀ (w : E) (k : ℕ+),
     Nesterov_second.t f h f' x0 ↑k * h w ≥
       Nesterov_second.t f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k) +
         inner
           (Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
             Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
           (w - Nesterov_second.y f h f' x0 ↑k)
 cvxineq :
   ∀ (k : ℕ+),
     h (Nesterov_second.x f h f' x0 ↑k) ≤
       (1 - Nesterov_second.γ f h f' x0 ↑k) * h (Nesterov_second.x f h f' x0 (↑k - 1)) +
         Nesterov_second.γ f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k)
 bsc1 : ∀ (k : ℕ), Nesterov_second.t f h f' x0 k / Nesterov_second.γ f h f' x0 k > 0
 hieq2 :
   ∀ (w : E) (k : ℕ+),
     Nesterov_second.γ f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k) ≤
       Nesterov_second.γ f h f' x0 ↑k * h w -
         Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
           inner
             (Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
               Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
             (w - Nesterov_second.y f h f' x0 ↑k)
 hieq4 :
   ∀ (k : ℕ+),
     f (Nesterov_second.x f h f' x0 ↑k) ≤
       f (Nesterov_second.z f h f' x0 k) +
           inner (f' (Nesterov_second.z f h f' x0 k)) (Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k) +
         ↑(Nesterov_second.l f h f' x0) / 2 * ‖Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k‖ ^ 2
 hieq5 :
   ∀ (k : ℕ+),
     f (Nesterov_second.x f h f' x0 ↑k) ≤
       f (Nesterov_second.z f h f' x0 k) +
           inner (f' (Nesterov_second.z f h f' x0 k)) (Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k) +
         1 / (2 * Nesterov_second.t f h f' x0 ↑k) * ‖Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k‖ ^ 2
 hieq6 :
   ∀ (k : ℕ+),
     f (Nesterov_second.x f h f' x0 ↑k) ≤
       f (Nesterov_second.z f h f' x0 k) +
           inner (f' (Nesterov_second.z f h f' x0 k))
             ((1 - Nesterov_second.γ f h f' x0 ↑k) • Nesterov_second.x f h f' x0 (↑k - 1) +
                 Nesterov_second.γ f h f' x0 ↑k • Nesterov_second.y f h f' x0 ↑k -
               Nesterov_second.z f h f' x0 k) +
         Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
           ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2
 k : ℕ+
 hieq3 :
   h (Nesterov_second.x f h f' x0 ↑k) ≤
     (1 - Nesterov_second.γ f h f' x0 ↑k) * h (Nesterov_second.x f h f' x0 (↑k - 1)) +
         Nesterov_second.γ f h f' x0 ↑k * h xm -
       Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
         inner
           (Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
             Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
           (xm - Nesterov_second.y f h f' x0 ↑k)
 hieq7 :
   f (Nesterov_second.x f h f' x0 ↑k) ≤
     (1 - Nesterov_second.γ f h f' x0 ↑k) * f (Nesterov_second.x f h f' x0 (↑k - 1)) +
         Nesterov_second.γ f h f' x0 ↑k *
           (f (Nesterov_second.z f h f' x0 k) +
             inner (f' (Nesterov_second.z f h f' x0 k))
               (Nesterov_second.y f h f' x0 ↑k - Nesterov_second.z f h f' x0 k)) +
       Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
         ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2
 ⊢ -(Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
           inner
             (Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k))
             (xm - Nesterov_second.y f h f' x0 ↑k)) +
       Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
         ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2 =
     Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
       (‖Nesterov_second.y f h f' x0 (↑k - 1) - xm‖ ^ 2 - ‖Nesterov_second.y f h f' x0 ↑k - xm‖ ^ 2),
 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
 h1 :
   ∀ (k : ℕ+),
     Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
         Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k) ∈
       SubderivAt (Nesterov_second.t f h f' x0 ↑k • h) (Nesterov_second.y f h f' x0 ↑k)
 hieq1 :
   ∀ (w : E) (k : ℕ+),
     Nesterov_second.t f h f' x0 ↑k * h w ≥
       Nesterov_second.t f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k) +
         inner
           (Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
             Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
           (w - Nesterov_second.y f h f' x0 ↑k)
 cvxineq :
   ∀ (k : ℕ+),
     h (Nesterov_second.x f h f' x0 ↑k) ≤
       (1 - Nesterov_second.γ f h f' x0 ↑k) * h (Nesterov_second.x f h f' x0 (↑k - 1)) +
         Nesterov_second.γ f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k)
 bsc1 : ∀ (k : ℕ), Nesterov_second.t f h f' x0 k / Nesterov_second.γ f h f' x0 k > 0
 hieq2 :
   ∀ (w : E) (k : ℕ+),
     Nesterov_second.γ f h f' x0 ↑k * h (Nesterov_second.y f h f' x0 ↑k) ≤
       Nesterov_second.γ f h f' x0 ↑k * h w -
         Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
           inner
             (Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
               Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
             (w - Nesterov_second.y f h f' x0 ↑k)
 hieq4 :
   ∀ (k : ℕ+),
     f (Nesterov_second.x f h f' x0 ↑k) ≤
       f (Nesterov_second.z f h f' x0 k) +
           inner (f' (Nesterov_second.z f h f' x0 k)) (Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k) +
         ↑(Nesterov_second.l f h f' x0) / 2 * ‖Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k‖ ^ 2
 hieq5 :
   ∀ (k : ℕ+),
     f (Nesterov_second.x f h f' x0 ↑k) ≤
       f (Nesterov_second.z f h f' x0 k) +
           inner (f' (Nesterov_second.z f h f' x0 k)) (Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k) +
         1 / (2 * Nesterov_second.t f h f' x0 ↑k) * ‖Nesterov_second.x f h f' x0 ↑k - Nesterov_second.z f h f' x0 k‖ ^ 2
 hieq6 :
   ∀ (k : ℕ+),
     f (Nesterov_second.x f h f' x0 ↑k) ≤
       f (Nesterov_second.z f h f' x0 k) +
           inner (f' (Nesterov_second.z f h f' x0 k))
             ((1 - Nesterov_second.γ f h f' x0 ↑k) • Nesterov_second.x f h f' x0 (↑k - 1) +
                 Nesterov_second.γ f h f' x0 ↑k • Nesterov_second.y f h f' x0 ↑k -
               Nesterov_second.z f h f' x0 k) +
         Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
           ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2
 k : ℕ+
 hieq3 :
   h (Nesterov_second.x f h f' x0 ↑k) ≤
     (1 - Nesterov_second.γ f h f' x0 ↑k) * h (Nesterov_second.x f h f' x0 (↑k - 1)) +
         Nesterov_second.γ f h f' x0 ↑k * h xm -
       Nesterov_second.γ f h f' x0 ↑k / Nesterov_second.t f h f' x0 ↑k *
         inner
           (Nesterov_second.γ f h f' x0 ↑k • (Nesterov_second.y f h f' x0 (↑k - 1) - Nesterov_second.y f h f' x0 ↑k) -
             Nesterov_second.t f h f' x0 ↑k • f' (Nesterov_second.z f h f' x0 k))
           (xm - Nesterov_second.y f h f' x0 ↑k)
 hieq7 :
   f (Nesterov_second.x f h f' x0 ↑k) ≤
     (1 - Nesterov_second.γ f h f' x0 ↑k) * f (Nesterov_second.x f h f' x0 (↑k - 1)) +
         Nesterov_second.γ f h f' x0 ↑k *
           (f (Nesterov_second.z f h f' x0 k) +
             inner (f' (Nesterov_second.z f h f' x0 k))
               (Nesterov_second.y f h f' x0 ↑k - Nesterov_second.z f h f' x0 k)) +
       Nesterov_second.γ f h f' x0 ↑k ^ 2 / (2 * Nesterov_second.t f h f' x0 ↑k) *
         ‖Nesterov_second.y f h f' x0 ↑k - Nesterov_second.y f h f' x0 (↑k - 1)‖ ^ 2
 ⊢ Nesterov_second.t f h f' x0 ↑k ≠ 0]

Relevant lemmas:
div_one : ∀ {G : Type u_3} [inst : DivInvOneMonoid G] (a : G), a / 1 = a
sub_add_eq_add_sub : ∀ {α : Type u_1} [inst : SubtractionCommMonoid α] (a b c : α), a - b + c = a + c - b
sub_self : ∀ {G : Type u_1} [inst : AddGroup G] (a : G), a - a = 0
div_self : ∀ {G₀ : Type u_3} [inst : GroupWithZero G₀] {a : G₀}, a ≠ 0 → a / a = 1
sub_eq_neg_add : ∀ {α : Type u_1} [inst : SubtractionCommMonoid α] (a b : α), a - b = -b + a
sub_add_cancel : ∀ {G : Type u_1} [inst : AddGroup G] (a b : G), a - b + b = a
sub_add : ∀ {α : Type u_1} [inst : SubtractionCommMonoid α] (a b c : α), a - b + c = a - (b - c)
zero_sub : ∀ {G : Type u_1} [inst : SubNegMonoid G] (a : G), 0 - a = -a
mul_add : ∀ {R : Type v} [inst : Mul R] [inst_3 : Add R] [inst_4 : LeftDistribClass R] (a b c : R),
  a * (b + c) = a * b + a * c
mul_assoc : ∀ {G : Type u_1} [inst : Semigroup G] (a b c : G), a * b * c = a * (b * c)
MulZeroClass.mul_zero : ∀ {M₀ : Type u} [self : MulZeroClass M₀] (a : M₀), a * 0 = 0
inner_zero_right : ∀ {𝕜 : Type u_1} {E : Type u_2} [inst : RCLike 𝕜] [inst_3 : SeminormedAddCommGroup E]
  [inst_4 : InnerProductSpace 𝕜 E] (x : E), inner x 0 = 0
sub_add_sub_cancel : ∀ {G : Type u_3} [inst : AddGroup G] (a b c : G), a - b + (b - c) = a - c
conj_trivial : ∀ {R : Type u} [inst : CommSemiring R] [inst_3 : StarRing R] [inst_4 : TrivialStar R] (a : R),
  (starRingEnd R) a = a
inner_smul_left : ∀ {𝕜 : Type u_1} {E : Type u_2} [inst : RCLike 𝕜] [inst_3 : SeminormedAddCommGroup E]
  [inst_4 : InnerProductSpace 𝕜 E] (x y : E) (r : 𝕜), inner (r • x) y = (starRingEnd 𝕜) r * inner x y
zero_add : ∀ {M : Type u} [inst : AddZeroClass M] (a : M), 0 + a = a
div_mul : ∀ {α : Type u_1} [inst : DivisionCommMonoid α] (a b c : α), a / b * c = a / (b / c)
neg_mul : ∀ {α : Type u} [inst : Mul α] [inst_3 : HasDistribNeg α] (a b : α), -a * b = -(a * b)
mul_sub : ∀ {α : Type u} [inst : NonUnitalNonAssocRing α] (a b c : α), a * (b - c) = a * b - a * c
sub_sub : ∀ {α : Type u_1} [inst : SubtractionCommMonoid α] (a b c : α), a - b - c = a - (b + c)
inner_sub_right : ∀ {𝕜 : Type u_1} {E : Type u_2} [inst : RCLike 𝕜] [inst_3 : SeminormedAddCommGroup E]
  [inst_4 : InnerProductSpace 𝕜 E] (x y z : E), inner x (y - z) = inner x y - inner x z
inner_add_right : ∀ {𝕜 : Type u_1} {E : Type u_2} [inst : RCLike 𝕜] [inst_3 : SeminormedAddCommGroup E]
  [inst_4 : InnerProductSpace 𝕜 E] (x y z : E), inner x (y + z) = inner x y + inner x z
inner_sub_left : ∀ {𝕜 : Type u_1} {E : Type u_2} [inst : RCLike 𝕜] [inst_3 : SeminormedAddCommGroup E]
  [inst_4 : InnerProductSpace 𝕜 E] (x y z : E), inner (x - y) z = inner x z - inner y z