zzhisthebest/LeanBenchmark huggingface dataset:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_9.{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 : ℕ+),
          Convex ℝ univ →
            (∀ ⦃x : E⦄,
                x ∈ univ →
                  ∀ ⦃y : E⦄,
                    y ∈ univ → ∀ ⦃a b : ℝ⦄, 0 < a → 0 < b → a + b = 1 → h (a • x + b • y) ≤ a • h x + b • h y) →
              Nesterov_second.x f h f' x0 (↑k - 1) ∈ univ := sorry

Tactic 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)
k : ℕ+
left✝ : Convex ℝ univ
fall :
  ∀ ⦃x : E⦄,
    x ∈ univ → ∀ ⦃y : E⦄, y ∈ univ → ∀ ⦃a b : ℝ⦄, 0 < a → 0 < b → a + b = 1 → h (a • x + b • y) ≤ a • h x + b • h y
⊢ Nesterov_second.x f h f' x0 (↑k - 1) ∈ univ

Tactic:
simp

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

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 : ℕ+),
          Convex ℝ univ →
            (∀ ⦃x : E⦄,
                x ∈ univ →
                  ∀ ⦃y : E⦄,
                    y ∈ univ → ∀ ⦃a b : ℝ⦄, 0 < a → 0 < b → a + b = 1 → h (a • x + b • y) ≤ a • h x + b • h y) →
              Nesterov_second.x f h f' x0 (↑k - 1) ∈ univ → Nesterov_second.y f h f' x0 ↑k ∈ univ := sorry

Tactic 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)
k : ℕ+
left✝ : Convex ℝ univ
fall :
  ∀ ⦃x : E⦄,
    x ∈ univ → ∀ ⦃y : E⦄, y ∈ univ → ∀ ⦃a b : ℝ⦄, 0 < a → 0 < b → a + b = 1 → h (a • x + b • y) ≤ a • h x + b • h y
mem1 : Nesterov_second.x f h f' x0 (↑k - 1) ∈ univ
⊢ Nesterov_second.y f h f' x0 ↑k ∈ univ

Tactic:
simp

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_115 : 2 / (1 + 1) = 1 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
⊢ Nesterov_second_fix_stepsize.γ f h f' x0 1 = 1

Tactic:
simp [p.γeq 1]

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 ⊢ 2 / (1 + 1) = 1]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_116.{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} [p : Nesterov_second_fix_stepsize f h f' x0] (n : ℕ+)
  (h_original_goal :
    (1 - Nesterov_second_fix_stepsize.γ f h f' x0 (↑n + 1)) * Nesterov_second_fix_stepsize.t f h f' x0 (↑n + 1) /
        Nesterov_second_fix_stepsize.γ f h f' x0 (↑n + 1) ^ 2 ≤
      Nesterov_second_fix_stepsize.t f h f' x0 ↑n / Nesterov_second_fix_stepsize.γ f h f' x0 ↑n ^ 2) :
  (1 - if ↑n + 1 = 0 then 1 / 2 else 2 / (1 + ↑(↑n + 1))) * (1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0)) /
      (if ↑n + 1 = 0 then 1 / 2 else 2 / (1 + ↑(↑n + 1))) ^ 2 ≤
    1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) / (if ↑n = 0 then 1 / 2 else 2 / (1 + ↑↑n)) ^ 2 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
n : ℕ+
⊢ (1 - Nesterov_second_fix_stepsize.γ f h f' x0 (↑n + 1)) * Nesterov_second_fix_stepsize.t f h f' x0 (↑n + 1) /
      Nesterov_second_fix_stepsize.γ f h f' x0 (↑n + 1) ^ 2 ≤
    Nesterov_second_fix_stepsize.t f h f' x0 ↑n / Nesterov_second_fix_stepsize.γ f h f' x0 ↑n ^ 2

Tactic:
rw [p.teq n, p.teq (n + 1), p.γeq n, p.γeq (n + 1)]

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ (1 - if ↑n + 1 = 0 then 1 / 2 else 2 / (1 + ↑(↑n + 1))) * (1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0)) /
       (if ↑n + 1 = 0 then 1 / 2 else 2 / (1 + ↑(↑n + 1))) ^ 2 ≤
     1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) / (if ↑n = 0 then 1 / 2 else 2 / (1 + ↑↑n)) ^ 2]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_117.{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} [p : Nesterov_second_fix_stepsize f h f' x0] (n : ℕ+)
  (h_original_goal :
    (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 /
        ((1 + (↑↑n + 1)) * ↑(Nesterov_second_fix_stepsize.l f h f' x0) * 2 ^ 2) ≤
      (1 + ↑↑n) ^ 2 / (↑(Nesterov_second_fix_stepsize.l f h f' x0) * 2 ^ 2)) :
  (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) / ↑(Nesterov_second_fix_stepsize.l f h f' x0) / 2 ^ 2 ≤
    (1 + ↑↑n) ^ 2 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) / 2 ^ 2 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
n : ℕ+
⊢ (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / ((1 + (↑↑n + 1)) * ↑(Nesterov_second_fix_stepsize.l f h f' x0) * 2 ^ 2) ≤
    (1 + ↑↑n) ^ 2 / (↑(Nesterov_second_fix_stepsize.l f h f' x0) * 2 ^ 2)

Tactic:
rw [← div_div, ← div_div, ← div_div]

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) / ↑(Nesterov_second_fix_stepsize.l f h f' x0) / 2 ^ 2 ≤
     (1 + ↑↑n) ^ 2 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) / 2 ^ 2]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_118.{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} [p : Nesterov_second_fix_stepsize f h f' x0] (n : ℕ+)
  (h_original_goal :
    (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) / ↑(Nesterov_second_fix_stepsize.l f h f' x0) / 2 ^ 2 ≤
      (1 + ↑↑n) ^ 2 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) / 2 ^ 2) :
  (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ≤
    (1 + ↑↑n) ^ 2 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
n : ℕ+
⊢ (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) / ↑(Nesterov_second_fix_stepsize.l f h f' x0) / 2 ^ 2 ≤
    (1 + ↑↑n) ^ 2 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) / 2 ^ 2

Tactic:
apply div_le_div_of_nonneg_right _ (by positivity)

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ≤
     (1 + ↑↑n) ^ 2 / ↑(Nesterov_second_fix_stepsize.l f h f' x0)]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_119.{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} [p : Nesterov_second_fix_stepsize f h f' x0] (n : ℕ+)
  (h_original_goal :
    (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ≤
      (1 + ↑↑n) ^ 2 / ↑(Nesterov_second_fix_stepsize.l f h f' x0)) :
  (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) ≤ (1 + ↑↑n) ^ 2 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
n : ℕ+
⊢ (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ≤
    (1 + ↑↑n) ^ 2 / ↑(Nesterov_second_fix_stepsize.l f h f' x0)

Tactic:
apply div_le_div_of_nonneg_right _ (by positivity)

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) ≤ (1 + ↑↑n) ^ 2]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_120 (n : ℕ+)
  (h_original_goal : (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) ≤ (1 + ↑↑n) ^ 2) :
  (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ≤ (1 + ↑↑n) ^ 2 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
n : ℕ+
⊢ (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) ≤ (1 + ↑↑n) ^ 2

Tactic:
rw [pow_two, ← mul_assoc, mul_div_assoc, div_self, mul_one]

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ≤ (1 + ↑↑n) ^ 2,
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ 1 + (↑↑n + 1) ≠ 0]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_121 (n : ℕ+)
  (h_original_goal : (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) ≤ (1 + ↑↑n) ^ 2) :
  1 + (↑↑n + 1) ≠ 0 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
n : ℕ+
⊢ (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ^ 2 / (1 + (↑↑n + 1)) ≤ (1 + ↑↑n) ^ 2

Tactic:
rw [pow_two, ← mul_assoc, mul_div_assoc, div_self, mul_one]

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ (1 + (↑↑n + 1) - 2) * (1 + (↑↑n + 1)) ≤ (1 + ↑↑n) ^ 2,
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ 1 + (↑↑n + 1) ≠ 0]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_122 (n : ℕ+) (h_original_goal : 1 + 2 * ↑↑n + ↑↑n ^ 2 = (1 + ↑↑n) ^ 2) :
  1 + 2 * ↑↑n + ↑↑n ^ 2 = 1 ^ 2 + 2 * 1 * ↑↑n + ↑↑n ^ 2 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
n : ℕ+
⊢ 1 + 2 * ↑↑n + ↑↑n ^ 2 = (1 + ↑↑n) ^ 2

Tactic:
rw [add_pow_two]

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ 1 + 2 * ↑↑n + ↑↑n ^ 2 = 1 ^ 2 + 2 * 1 * ↑↑n + ↑↑n ^ 2]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_123 (n : ℕ+) : 1 + 2 * ↑↑n + ↑↑n ^ 2 = 1 ^ 2 + 2 * 1 * ↑↑n + ↑↑n ^ 2 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
n : ℕ+
⊢ 1 + 2 * ↑↑n + ↑↑n ^ 2 = 1 ^ 2 + 2 * 1 * ↑↑n + ↑↑n ^ 2

Tactic:
simp

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_124.{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} [p : Nesterov_second_fix_stepsize f h f' x0] (k : ℕ)
  (h_original_goal :
    0 < Nesterov_second_fix_stepsize.t f h f' x0 k ∧
      Nesterov_second_fix_stepsize.t f h f' x0 k ≤ 1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0)) :
  0 < 1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ∧
    1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ≤ 1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
k : ℕ
⊢ 0 < Nesterov_second_fix_stepsize.t f h f' x0 k ∧
    Nesterov_second_fix_stepsize.t f h f' x0 k ≤ 1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0)

Tactic:
rw [p.teq k]

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 k : ℕ
 ⊢ 0 < 1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ∧
     1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ≤ 1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0)]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_125.{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} [p : Nesterov_second_fix_stepsize f h f' x0]
  (h_original_goal :
    0 < 1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ∧
      1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ≤ 1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0)) :
  0 < Nesterov_second_fix_stepsize.l f h f' x0 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
k : ℕ
⊢ 0 < 1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ∧
    1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0) ≤ 1 / ↑(Nesterov_second_fix_stepsize.l f h f' x0)

Tactic:
simp

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 k : ℕ
 ⊢ 0 < Nesterov_second_fix_stepsize.l f h f' x0]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_126.{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} [p : Nesterov_second_fix_stepsize f h f' x0] :
  0 < Nesterov_second_fix_stepsize.l f h f' x0 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
k : ℕ
⊢ 0 < Nesterov_second_fix_stepsize.l f h f' x0

Tactic:
exact p.hl

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_127.{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} [p : Nesterov_second_fix_stepsize f h f' x0] (k : ℕ)
  (h_original_goal : 0 < Nesterov_second_fix_stepsize.γ f h f' x0 k ∧ Nesterov_second_fix_stepsize.γ f h f' x0 k ≤ 1) :
  (0 < if k = 0 then 1 / 2 else 2 / (1 + ↑k)) ∧ (if k = 0 then 1 / 2 else 2 / (1 + ↑k)) ≤ 1 := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
k : ℕ
⊢ 0 < Nesterov_second_fix_stepsize.γ f h f' x0 k ∧ Nesterov_second_fix_stepsize.γ f h f' x0 k ≤ 1

Tactic:
rw [p.γeq]

Tactic state after:
[E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 k : ℕ
 ⊢ (0 < if k = 0 then 1 / 2 else 2 / (1 + ↑k)) ∧ (if k = 0 then 1 / 2 else 2 / (1 + ↑k)) ≤ 1]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_128 : 0 < if 0 = 0 then 1 / 2 else 2 / (1 + ↑0) := sorry

Tactic state before:
case pos
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
k : ℕ
hk : k = 0
⊢ 0 < if k = 0 then 1 / 2 else 2 / (1 + ↑k)

Tactic:
rw [hk]

Tactic state after:
[case pos
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 k : ℕ
 hk : k = 0
 ⊢ 0 < if 0 = 0 then 1 / 2 else 2 / (1 + ↑0)]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_129 : 0 < if 0 = 0 then 1 / 2 else 2 / (1 + ↑0) := sorry

Tactic state before:
case pos
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
k : ℕ
hk : k = 0
⊢ 0 < if 0 = 0 then 1 / 2 else 2 / (1 + ↑0)

Tactic:
simp

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_130 (k : ℕ) (hk : ¬k = 0) (h_original_goal : 0 < if k = 0 then 1 / 2 else 2 / (1 + ↑k)) :
  0 < 1 + ↑k := sorry

Tactic state before:
case neg
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
k : ℕ
hk : ¬k = 0
⊢ 0 < if k = 0 then 1 / 2 else 2 / (1 + ↑k)

Tactic:
simp [hk]

Tactic state after:
[case neg
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 k : ℕ
 hk : ¬k = 0
 ⊢ 0 < 1 + ↑k]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_131 (k : ℕ) (hk : k ≠ 0)
  (h_original_goal : (if k = 0 then 1 / 2 else 2 / (1 + ↑k)) ≤ 1) : 2 / (1 + ↑k) ≤ 1 := sorry

Tactic state before:
case neg
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f✝ h✝ : E → ℝ
f'✝ : E → E
x0✝ : E
f h : E → ℝ
f' : E → E
x0 : E
p : Nesterov_second_fix_stepsize f h f' x0
k : ℕ
hk : k ≠ 0
⊢ (if k = 0 then 1 / 2 else 2 / (1 + ↑k)) ≤ 1

Tactic:
simp [hk]

Tactic state after:
[case neg
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f✝ h✝ : E → ℝ
 f'✝ : E → E
 x0✝ : E
 f h : E → ℝ
 f' : E → E
 x0 : E
 p : Nesterov_second_fix_stepsize f h f' x0
 k : ℕ
 hk : k ≠ 0
 ⊢ 2 / (1 + ↑k) ≤ 1]