zzhisthebest/LeanBenchmark huggingface dataset:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_147 : 0 < 2 := sorry

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

Tactic:
apply div_pos

Tactic state after:
[case left.ha
 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,
 case left.hb
 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 + ↑k]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_148 (k : ℕ) (h_original_goal : 0 < 2 / (2 + ↑k)) : 0 < 2 + ↑k := sorry

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

Tactic:
apply div_pos

Tactic state after:
[case left.ha
 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,
 case left.hb
 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 + ↑k]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_149 (k : ℕ) (h_original_goal : 2 / (2 + ↑k) ≤ 1) : 2 ≤ 2 + ↑k := sorry

Tactic state before:
case right
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 : ℕ
⊢ 2 / (2 + ↑k) ≤ 1

Tactic:
rw [div_le_one]

Tactic state after:
[case right
 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 : ℕ
 ⊢ 2 ≤ 2 + ↑k,
 case right
 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 + ↑k]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_150 (k : ℕ) (h_original_goal : 2 / (2 + ↑k) ≤ 1) : 0 < 2 + ↑k := sorry

Tactic state before:
case right
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 : ℕ
⊢ 2 / (2 + ↑k) ≤ 1

Tactic:
rw [div_le_one]

Tactic state after:
[case right
 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 : ℕ
 ⊢ 2 ≤ 2 + ↑k,
 case right
 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 + ↑k]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_151.{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_fix_stepsize f h f' x0} {xm : E}
  (minφ : IsMinOn (f + h) univ xm) (k : ℕ)
  (h1 :
    f (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) + h (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) - f xm -
        h xm =
      f (Nesterov_first.x f h f' x0 (k + 1)) + h (Nesterov_first.x f h f' x0 (k + 1)) - f xm - h xm)
  (h2 :
    Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2 =
      Nesterov_first.γ f h f' x0 k ^ 2 / (2 * Nesterov_first.t f h f' x0 k) * ‖x0 - xm‖ ^ 2)
  (h_original_goal :
    f (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) + h (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) - f xm -
        h xm ≤
      Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2) :
  f (Nesterov_first.x f h f' x0 (k + 1)) + h (Nesterov_first.x f h f' x0 (k + 1)) - f xm - h xm ≤
    Nesterov_first.γ f h f' x0 k ^ 2 / (2 * Nesterov_first.t f h f' x0 k) * ‖x0 - xm‖ ^ 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_fix_stepsize f h f' x0
xm : E
minφ : IsMinOn (f + h) univ xm
k : ℕ
h1 :
  f (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) + h (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) - f xm -
      h xm =
    f (Nesterov_first.x f h f' x0 (k + 1)) + h (Nesterov_first.x f h f' x0 (k + 1)) - f xm - h xm
h2 :
  Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2 =
    Nesterov_first.γ f h f' x0 k ^ 2 / (2 * Nesterov_first.t f h f' x0 k) * ‖x0 - xm‖ ^ 2
⊢ f (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) + h (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) - f xm -
      h xm ≤
    Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2

Tactic:
rw [h1, h2]

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_fix_stepsize f h f' x0
 xm : E
 minφ : IsMinOn (f + h) univ xm
 k : ℕ
 h1 :
   f (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) + h (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) - f xm -
       h xm =
     f (Nesterov_first.x f h f' x0 (k + 1)) + h (Nesterov_first.x f h f' x0 (k + 1)) - f xm - h xm
 h2 :
   Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2 =
     Nesterov_first.γ f h f' x0 k ^ 2 / (2 * Nesterov_first.t f h f' x0 k) * ‖x0 - xm‖ ^ 2
 ⊢ f (Nesterov_first.x f h f' x0 (k + 1)) + h (Nesterov_first.x f h f' x0 (k + 1)) - f xm - h xm ≤
     Nesterov_first.γ f h f' x0 k ^ 2 / (2 * Nesterov_first.t f h f' x0 k) * ‖x0 - xm‖ ^ 2]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_152.{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_fix_stepsize f h f' x0} {xm : E}
  (minφ : IsMinOn (f + h) univ xm) (k : ℕ)
  (h1 :
    f (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) + h (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) - f xm -
        h xm =
      f (Nesterov_first.x f h f' x0 (k + 1)) + h (Nesterov_first.x f h f' x0 (k + 1)) - f xm - h xm)
  (h2 :
    Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2 =
      Nesterov_first.γ f h f' x0 k ^ 2 / (2 * Nesterov_first.t f h f' x0 k) * ‖x0 - xm‖ ^ 2) :
  f (Nesterov_first.x f h f' x0 (k + 1)) + h (Nesterov_first.x f h f' x0 (k + 1)) - f xm - h xm ≤
    Nesterov_first.γ f h f' x0 k ^ 2 / (2 * Nesterov_first.t f h f' x0 k) * ‖x0 - xm‖ ^ 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_fix_stepsize f h f' x0
xm : E
minφ : IsMinOn (f + h) univ xm
k : ℕ
h1 :
  f (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) + h (Nesterov_first_fix_stepsize.x f h f' x0 (k + 1)) - f xm -
      h xm =
    f (Nesterov_first.x f h f' x0 (k + 1)) + h (Nesterov_first.x f h f' x0 (k + 1)) - f xm - h xm
h2 :
  Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2 =
    Nesterov_first.γ f h f' x0 k ^ 2 / (2 * Nesterov_first.t f h f' x0 k) * ‖x0 - xm‖ ^ 2
⊢ f (Nesterov_first.x f h f' x0 (k + 1)) + h (Nesterov_first.x f h f' x0 (k + 1)) - f xm - h xm ≤
    Nesterov_first.γ f h f' x0 k ^ 2 / (2 * Nesterov_first.t f h f' x0 k) * ‖x0 - xm‖ ^ 2

Tactic:
apply Nesterov_first_converge minφ

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_153.{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_fix_stepsize f h f' x0} {xm : E}
  (minφ : IsMinOn (f + h) univ xm) (k : ℕ)
  (h_original_goal :
    Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2 ≤
      2 * ↑(Nesterov_first_fix_stepsize.l f h f' x0) / (↑k + 2) ^ 2 * ‖x0 - xm‖ ^ 2) :
  Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) ≤
    2 * ↑(Nesterov_first_fix_stepsize.l f h f' x0) / (↑k + 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
alg : Nesterov_first_fix_stepsize f h f' x0
xm : E
minφ : IsMinOn (f + h) univ xm
k : ℕ
⊢ Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2 ≤
    2 * ↑(Nesterov_first_fix_stepsize.l f h f' x0) / (↑k + 2) ^ 2 * ‖x0 - xm‖ ^ 2

Tactic:
apply mul_le_mul_of_nonneg_right

Tactic state after:
[case h
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f h : E → ℝ
 f' : E → E
 x0 : E
 alg : Nesterov_first_fix_stepsize f h f' x0
 xm : E
 minφ : IsMinOn (f + h) univ xm
 k : ℕ
 ⊢ Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) ≤
     2 * ↑(Nesterov_first_fix_stepsize.l f h f' x0) / (↑k + 2) ^ 2,
 case 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_fix_stepsize f h f' x0
 xm : E
 minφ : IsMinOn (f + h) univ xm
 k : ℕ
 ⊢ 0 ≤ ‖x0 - xm‖ ^ 2]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_154.{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_fix_stepsize f h f' x0} {xm : E}
  (minφ : IsMinOn (f + h) univ xm) (k : ℕ)
  (h_original_goal :
    Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2 ≤
      2 * ↑(Nesterov_first_fix_stepsize.l f h f' x0) / (↑k + 2) ^ 2 * ‖x0 - xm‖ ^ 2) :
  0 ≤ ‖x0 - xm‖ ^ 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_fix_stepsize f h f' x0
xm : E
minφ : IsMinOn (f + h) univ xm
k : ℕ
⊢ Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) * ‖x0 - xm‖ ^ 2 ≤
    2 * ↑(Nesterov_first_fix_stepsize.l f h f' x0) / (↑k + 2) ^ 2 * ‖x0 - xm‖ ^ 2

Tactic:
apply mul_le_mul_of_nonneg_right

Tactic state after:
[case h
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f h : E → ℝ
 f' : E → E
 x0 : E
 alg : Nesterov_first_fix_stepsize f h f' x0
 xm : E
 minφ : IsMinOn (f + h) univ xm
 k : ℕ
 ⊢ Nesterov_first_fix_stepsize.γ f h f' x0 k ^ 2 / (2 * Nesterov_first_fix_stepsize.t f h f' x0 k) ≤
     2 * ↑(Nesterov_first_fix_stepsize.l f h f' x0) / (↑k + 2) ^ 2,
 case 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_fix_stepsize f h f' x0
 xm : E
 minφ : IsMinOn (f + h) univ xm
 k : ℕ
 ⊢ 0 ≤ ‖x0 - xm‖ ^ 2]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_155.{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_fix_stepsize f h f' x0} {xm : E}
  (minφ : IsMinOn (f + h) univ xm) : 0 ≤ ‖x0 - xm‖ ^ 2 := sorry

Tactic state before:
case 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_fix_stepsize f h f' x0
xm : E
minφ : IsMinOn (f + h) univ xm
k : ℕ
⊢ 0 ≤ ‖x0 - xm‖ ^ 2

Tactic:
apply sq_nonneg

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_0.{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 := 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
⊢ ∀ (z : E), φ z = f z + h z

Tactic:
simp [φ]

Tactic state after:
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] {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.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 ∈
          SubderivAt ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h)
            (Nesterov_second.y f h f' x0 ↑k) →
        SubderivAt (Nesterov_second.t f h f' x0 ↑k • h) (Nesterov_second.y f h f' x0 ↑k) =
            Nesterov_second.γ f h f' x0 ↑k •
              SubderivAt ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h)
                (Nesterov_second.y f h f' x0 ↑k) →
          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 ∈
            SubderivAt ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h)
              (Nesterov_second.y f h f' x0 ↑k) := sorry

Tactic state before:
case h.left
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 :
  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 ∈
    SubderivAt ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h) (Nesterov_second.y f h f' x0 ↑k)
upd2 :
  SubderivAt (Nesterov_second.t f h f' x0 ↑k • h) (Nesterov_second.y f h f' x0 ↑k) =
    Nesterov_second.γ f h f' x0 ↑k •
      SubderivAt ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h)
        (Nesterov_second.y f h f' x0 ↑k)
⊢ 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 ∈
    SubderivAt ((Nesterov_second.t f h f' x0 ↑k / Nesterov_second.γ f h f' x0 ↑k) • h) (Nesterov_second.y f h f' x0 ↑k)

Tactic:
exact h1

Tactic state after:
import Mathlib
import Optlib


open Set Real

open Set Real PNat

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]
import Mathlib
import Optlib


open Set Real

open Set Real PNat

theorem extracted_formal_statement_7.{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) →
          ConvexOn ℝ univ h := 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]
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] {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 h := sorry

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

Tactic:
exact alg.convh

Tactic state after: