zzhisthebest/LeanBenchmark huggingface dataset:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_2.{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;
  ConvexOn ℝ univ (Nesterov_first.t f h f' x0 k • h) → ConvexOn ℝ univ h := sorry

Tactic state before:
case hfun
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 (Nesterov_first.t 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
 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]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_3.{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;
  ConvexOn ℝ univ h := sorry

Tactic state before:
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

Tactic:
exact alg.convh

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_8.{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)
  (h1 :
    ∀ (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)))
  (hieq1 :
    ∀ (z : E) (k : ℕ),
      Nesterov_first.t f h f' x0 k * h (Nesterov_first.x f h f' x0 (k + 1)) +
          inner
            (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))
            (z - Nesterov_first.x f h f' x0 (k + 1)) ≤
        Nesterov_first.t f h f' x0 k * h z)
  (k : ℕ) (h_original_goal : 0 < 1 / Nesterov_first.t f h f' x0 k) : 0 < Nesterov_first.t f h f' x0 k := 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
alg : Nesterov_first f h f' x0
xm : E
minφ : IsMinOn (f + h) univ xm
h1 :
  ∀ (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))
hieq1 :
  ∀ (z : E) (k : ℕ),
    Nesterov_first.t f h f' x0 k * h (Nesterov_first.x f h f' x0 (k + 1)) +
        inner
          (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))
          (z - Nesterov_first.x f h f' x0 (k + 1)) ≤
      Nesterov_first.t f h f' x0 k * h z
z : E
k : ℕ
⊢ 0 < 1 / Nesterov_first.t f h f' x0 k

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
 alg : Nesterov_first f h f' x0
 xm : E
 minφ : IsMinOn (f + h) univ xm
 h1 :
   ∀ (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))
 hieq1 :
   ∀ (z : E) (k : ℕ),
     Nesterov_first.t f h f' x0 k * h (Nesterov_first.x f h f' x0 (k + 1)) +
         inner
           (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))
           (z - Nesterov_first.x f h f' x0 (k + 1)) ≤
       Nesterov_first.t f h f' x0 k * h z
 z : E
 k : ℕ
 ⊢ 0 < Nesterov_first.t f h f' x0 k]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_11.{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)
  (h1 :
    ∀ (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)))
  (hieq1 :
    ∀ (z : E) (k : ℕ),
      Nesterov_first.t f h f' x0 k * h (Nesterov_first.x f h f' x0 (k + 1)) +
          inner
            (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))
            (z - Nesterov_first.x f h f' x0 (k + 1)) ≤
        Nesterov_first.t f h f' x0 k * h z)
  (hieq2 :
    ∀ (z : E) (k : ℕ),
      h (Nesterov_first.x f h f' x0 (k + 1)) ≤
        h z +
          inner
            (f' (Nesterov_first.y f h f' x0 k) +
              (1 / Nesterov_first.t f h f' x0 k) • (Nesterov_first.x f h f' x0 (k + 1) - Nesterov_first.y f h f' x0 k))
            (z - Nesterov_first.x f h f' x0 (k + 1)))
  (x y : E) : f x ≤ f y + inner (f' y) (x - y) + ↑(Nesterov_first.l f h f' x0) / 2 * ‖x - y‖ ^ 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
alg : Nesterov_first f h f' x0
xm : E
minφ : IsMinOn (f + h) univ xm
h1 :
  ∀ (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))
hieq1 :
  ∀ (z : E) (k : ℕ),
    Nesterov_first.t f h f' x0 k * h (Nesterov_first.x f h f' x0 (k + 1)) +
        inner
          (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))
          (z - Nesterov_first.x f h f' x0 (k + 1)) ≤
      Nesterov_first.t f h f' x0 k * h z
hieq2 :
  ∀ (z : E) (k : ℕ),
    h (Nesterov_first.x f h f' x0 (k + 1)) ≤
      h z +
        inner
          (f' (Nesterov_first.y f h f' x0 k) +
            (1 / Nesterov_first.t f h f' x0 k) • (Nesterov_first.x f h f' x0 (k + 1) - Nesterov_first.y f h f' x0 k))
          (z - Nesterov_first.x f h f' x0 (k + 1))
k : ℕ
x y : E
⊢ f x ≤ f y + inner (f' y) (x - y) + ↑(Nesterov_first.l f h f' x0) / 2 * ‖x - y‖ ^ 2

Tactic:
apply lipschitz_continuos_upper_bound' alg.h₁ alg.h₂ y x

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_15.{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)
  (h1 :
    ∀ (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)))
  (hieq1 :
    ∀ (z : E) (k : ℕ),
      Nesterov_first.t f h f' x0 k * h (Nesterov_first.x f h f' x0 (k + 1)) +
          inner
            (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))
            (z - Nesterov_first.x f h f' x0 (k + 1)) ≤
        Nesterov_first.t f h f' x0 k * h z)
  (hieq2 :
    ∀ (z : E) (k : ℕ),
      h (Nesterov_first.x f h f' x0 (k + 1)) ≤
        h z +
          inner
            (f' (Nesterov_first.y f h f' x0 k) +
              (1 / Nesterov_first.t f h f' x0 k) • (Nesterov_first.x f h f' x0 (k + 1) - Nesterov_first.y f h f' x0 k))
            (z - Nesterov_first.x f h f' x0 (k + 1)))
  (x y : E) : 0 ≤ ‖x - y‖ ^ 2 := sorry

Tactic state before:
case bc.a0
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
h1 :
  ∀ (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))
hieq1 :
  ∀ (z : E) (k : ℕ),
    Nesterov_first.t f h f' x0 k * h (Nesterov_first.x f h f' x0 (k + 1)) +
        inner
          (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))
          (z - Nesterov_first.x f h f' x0 (k + 1)) ≤
      Nesterov_first.t f h f' x0 k * h z
hieq2 :
  ∀ (z : E) (k : ℕ),
    h (Nesterov_first.x f h f' x0 (k + 1)) ≤
      h z +
        inner
          (f' (Nesterov_first.y f h f' x0 k) +
            (1 / Nesterov_first.t f h f' x0 k) • (Nesterov_first.x f h f' x0 (k + 1) - Nesterov_first.y f h f' x0 k))
          (z - Nesterov_first.x f h f' x0 (k + 1))
k : ℕ
x y : E
⊢ 0 ≤ ‖x - y‖ ^ 2

Tactic:
apply sq_nonneg

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_36.{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)
  (h1 :
    ∀ (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)))
  (hieq1 :
    ∀ (z : E) (k : ℕ),
      Nesterov_first.t f h f' x0 k * h (Nesterov_first.x f h f' x0 (k + 1)) +
          inner
            (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))
            (z - Nesterov_first.x f h f' x0 (k + 1)) ≤
        Nesterov_first.t f h f' x0 k * h z)
  (hieq2 :
    ∀ (z : E) (k : ℕ),
      h (Nesterov_first.x f h f' x0 (k + 1)) ≤
        h z +
          inner
            (f' (Nesterov_first.y f h f' x0 k) +
              (1 / Nesterov_first.t f h f' x0 k) • (Nesterov_first.x f h f' x0 (k + 1) - Nesterov_first.y f h f' x0 k))
            (z - Nesterov_first.x f h f' x0 (k + 1)))
  (fieq1 : ∀ (k : ℕ) (x y : E), f x ≤ f y + inner (f' y) (x - y) + 1 / (2 * Nesterov_first.t f h f' x0 k) * ‖x - y‖ ^ 2)
  (z : E) : z ∈ univ := sorry

Tactic state before:
case bc.bc.bc.a
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
h1 :
  ∀ (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))
hieq1 :
  ∀ (z : E) (k : ℕ),
    Nesterov_first.t f h f' x0 k * h (Nesterov_first.x f h f' x0 (k + 1)) +
        inner
          (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))
          (z - Nesterov_first.x f h f' x0 (k + 1)) ≤
      Nesterov_first.t f h f' x0 k * h z
hieq2 :
  ∀ (z : E) (k : ℕ),
    h (Nesterov_first.x f h f' x0 (k + 1)) ≤
      h z +
        inner
          (f' (Nesterov_first.y f h f' x0 k) +
            (1 / Nesterov_first.t f h f' x0 k) • (Nesterov_first.x f h f' x0 (k + 1) - Nesterov_first.y f h f' x0 k))
          (z - Nesterov_first.x f h f' x0 (k + 1))
fieq1 : ∀ (k : ℕ) (x y : E), f x ≤ f y + inner (f' y) (x - y) + 1 / (2 * Nesterov_first.t f h f' x0 k) * ‖x - y‖ ^ 2
φ : E → ℝ := fun z => f z + h z
z : E
k : ℕ
⊢ z ∈ univ

Tactic:
simp

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_139.{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_first_fix_stepsize f h f' x0] :
  Nesterov_first_fix_stepsize.γ f h f' x0 0 = 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_first_fix_stepsize f h f' x0
⊢ Nesterov_first_fix_stepsize.γ f h f' x0 0 = 1

Tactic:
simp [p.γeq 0]

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_140.{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_first_fix_stepsize f h f' x0] (n : ℕ+)
  (h_original_goal :
    (1 - Nesterov_first_fix_stepsize.γ f h f' x0 ↑n) * Nesterov_first_fix_stepsize.t f h f' x0 ↑n /
        Nesterov_first_fix_stepsize.γ f h f' x0 ↑n ^ 2 ≤
      Nesterov_first_fix_stepsize.t f h f' x0 (↑n - 1) / Nesterov_first_fix_stepsize.γ f h f' x0 (↑n - 1) ^ 2) :
  (1 - 2 / (2 + ↑↑n)) * (↑(Nesterov_first_fix_stepsize.l f h f' x0))⁻¹ / (2 / (2 + ↑↑n)) ^ 2 ≤
    (↑(Nesterov_first_fix_stepsize.l f h f' x0))⁻¹ / (2 / (2 + (↑↑n - 1))) ^ 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_first_fix_stepsize f h f' x0
n : ℕ+
⊢ (1 - Nesterov_first_fix_stepsize.γ f h f' x0 ↑n) * Nesterov_first_fix_stepsize.t f h f' x0 ↑n /
      Nesterov_first_fix_stepsize.γ f h f' x0 ↑n ^ 2 ≤
    Nesterov_first_fix_stepsize.t f h f' x0 (↑n - 1) / Nesterov_first_fix_stepsize.γ f h f' x0 (↑n - 1) ^ 2

Tactic:
simp [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_first_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ (1 - 2 / (2 + ↑↑n)) * (↑(Nesterov_first_fix_stepsize.l f h f' x0))⁻¹ / (2 / (2 + ↑↑n)) ^ 2 ≤
     (↑(Nesterov_first_fix_stepsize.l f h f' x0))⁻¹ / (2 / (2 + (↑↑n - 1))) ^ 2]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_141.{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_first_fix_stepsize f h f' x0] (n : ℕ+)
  (h_original_goal :
    ↑↑n * (2 + ↑↑n) ^ 2 / ((2 + ↑↑n) * ↑(Nesterov_first_fix_stepsize.l f h f' x0) * 2 ^ 2) ≤
      (2 + (↑↑n - 1)) ^ 2 / (↑(Nesterov_first_fix_stepsize.l f h f' x0) * 2 ^ 2)) :
  ↑↑n * (2 + ↑↑n) * ((2 + ↑↑n) / (2 + ↑↑n)) ≤ (2 + (↑↑n - 1)) ^ 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_first_fix_stepsize f h f' x0
n : ℕ+
⊢ ↑↑n * (2 + ↑↑n) ^ 2 / ((2 + ↑↑n) * ↑(Nesterov_first_fix_stepsize.l f h f' x0) * 2 ^ 2) ≤
    (2 + (↑↑n - 1)) ^ 2 / (↑(Nesterov_first_fix_stepsize.l f h f' x0) * 2 ^ 2)

Tactic:
rw [mul_assoc, ← div_div, div_le_div_iff_of_pos_right, pow_two, ← mul_assoc, mul_div_assoc]

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_first_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ ↑↑n * (2 + ↑↑n) * ((2 + ↑↑n) / (2 + ↑↑n)) ≤ (2 + (↑↑n - 1)) ^ 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_first_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ 0 < ↑(Nesterov_first_fix_stepsize.l f h f' x0) * 2 ^ 2]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_142.{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_first_fix_stepsize f h f' x0] (n : ℕ+)
  (h_original_goal :
    ↑↑n * (2 + ↑↑n) ^ 2 / ((2 + ↑↑n) * ↑(Nesterov_first_fix_stepsize.l f h f' x0) * 2 ^ 2) ≤
      (2 + (↑↑n - 1)) ^ 2 / (↑(Nesterov_first_fix_stepsize.l f h f' x0) * 2 ^ 2)) :
  0 < ↑(Nesterov_first_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_first_fix_stepsize f h f' x0
n : ℕ+
⊢ ↑↑n * (2 + ↑↑n) ^ 2 / ((2 + ↑↑n) * ↑(Nesterov_first_fix_stepsize.l f h f' x0) * 2 ^ 2) ≤
    (2 + (↑↑n - 1)) ^ 2 / (↑(Nesterov_first_fix_stepsize.l f h f' x0) * 2 ^ 2)

Tactic:
rw [mul_assoc, ← div_div, div_le_div_iff_of_pos_right, pow_two, ← mul_assoc, mul_div_assoc]

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_first_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ ↑↑n * (2 + ↑↑n) * ((2 + ↑↑n) / (2 + ↑↑n)) ≤ (2 + (↑↑n - 1)) ^ 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_first_fix_stepsize f h f' x0
 n : ℕ+
 ⊢ 0 < ↑(Nesterov_first_fix_stepsize.l f h f' x0) * 2 ^ 2]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_143.{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_first_fix_stepsize f h f' x0] (k : ℕ)
  (h_original_goal :
    0 < Nesterov_first_fix_stepsize.t f h f' x0 k ∧
      Nesterov_first_fix_stepsize.t f h f' x0 k ≤ 1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0)) :
  0 < 1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0) ∧
    1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0) ≤ 1 / ↑(Nesterov_first_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_first_fix_stepsize f h f' x0
k : ℕ
⊢ 0 < Nesterov_first_fix_stepsize.t f h f' x0 k ∧
    Nesterov_first_fix_stepsize.t f h f' x0 k ≤ 1 / ↑(Nesterov_first_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_first_fix_stepsize f h f' x0
 k : ℕ
 ⊢ 0 < 1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0) ∧
     1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0) ≤ 1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0)]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_144.{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_first_fix_stepsize f h f' x0]
  (h_original_goal :
    0 < 1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0) ∧
      1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0) ≤ 1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0)) :
  0 < Nesterov_first_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_first_fix_stepsize f h f' x0
k : ℕ
⊢ 0 < 1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0) ∧
    1 / ↑(Nesterov_first_fix_stepsize.l f h f' x0) ≤ 1 / ↑(Nesterov_first_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_first_fix_stepsize f h f' x0
 k : ℕ
 ⊢ 0 < Nesterov_first_fix_stepsize.l f h f' x0]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_145.{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_first_fix_stepsize f h f' x0] :
  0 < Nesterov_first_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_first_fix_stepsize f h f' x0
k : ℕ
⊢ 0 < Nesterov_first_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_146.{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_first_fix_stepsize f h f' x0] (k : ℕ)
  (h_original_goal : 0 < Nesterov_first_fix_stepsize.γ f h f' x0 k ∧ Nesterov_first_fix_stepsize.γ f h f' x0 k ≤ 1) :
  0 < 2 / (2 + ↑k) ∧ 2 / (2 + ↑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_first_fix_stepsize f h f' x0
k : ℕ
⊢ 0 < Nesterov_first_fix_stepsize.γ f h f' x0 k ∧ Nesterov_first_fix_stepsize.γ f h f' x0 k ≤ 1

Tactic:
rw [p.γeq 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_first_fix_stepsize f h f' x0
 k : ℕ
 ⊢ 0 < 2 / (2 + ↑k) ∧ 2 / (2 + ↑k) ≤ 1]