-- File: optlib/Optlib/Algorithm/GD/GradientDescentStronglyConvex.lean
Theorem statement:
theorem extracted_formal_statement_50.{u_1} {E : Type u_1} [inst : NormedAddCommGroup E] [inst_1 : InnerProductSpace ℝ E]
  [inst_2 : CompleteSpace E] {f : E → ℝ} {f' : E → E} {xm : E} {l : NNReal} (h₁ : ∀ (x : E), HasGradientAt f (f' x) x)
  (h₂ : LipschitzWith l f') (min : IsMinOn f univ xm) (hl : ↑l > 0) (x : E) :
  1 / (2 * ↑l) * ‖f' x‖ ^ 2 ≤ f x - f xm := sorry

Tactic state before:
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f : E → ℝ
f' : E → E
xm : E
l : NNReal
h₁ : ∀ (x : E), HasGradientAt f (f' x) x
h₂ : LipschitzWith l f'
min : IsMinOn f univ xm
hl : ↑l > 0
⊢ ∀ (x : E), 1 / (2 * ↑l) * ‖f' x‖ ^ 2 ≤ f x - f xm

Tactic: apply lipschitz_minima_lower_bound h₁ h₂ min hl

Tactic state after:

Premises used:
lipschitz_minima_lower_bound : ∀ {E : Type u_2} [inst : NormedAddCommGroup E] [inst_3 : InnerProductSpace ℝ E]
  [inst_4 : CompleteSpace E] {f : E → ℝ} {f' : E → E} {xm : E} {l : NNReal},
  (∀ (x : E), HasGradientAt f (f' x) x) →
    LipschitzWith l f' → IsMinOn f univ xm → l > 0 → ∀ (x : E), 1 / (2 * ↑l) * ‖f' x‖ ^ 2 ≤ f x - f xm