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

Tactic state before:
case a0
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f : E → ℝ
f' : E → E
l : NNReal
a : ℝ
h₁ : ∀ (x₁ : E), HasGradientAt f (f' x₁) x₁
h₂ : ↑l > 0
ha₁ : ↑l ≤ 1 / a
ha₂ : a > 0
h₃ : LipschitzWith l f'
x : E
⊢ 0 ≤ ‖f' x‖ ^ 2

Tactic: exact sq_nonneg ‖f' x‖

Tactic state after:

Premises used:
sq_nonneg : ∀ {α : Type u} [inst : Semiring α] [inst_3 : LinearOrder α] [inst_4 : IsRightCancelAdd α]
  [inst_5 : ZeroLEOneClass α] [inst_6 : ExistsAddOfLE α] [inst_7 : PosMulMono α] [inst_8 : AddLeftStrictMono α] (a : α),
  0 ≤ a ^ 2