-- File: optlib/Optlib/Algorithm/ADMM/Lemma.lean
Theorem statement:
theorem extracted_formal_statement_54.{u_5, u_4} {α : Type u_4} {β : Type u_5} [inst : NormedAddCommGroup α]
  [inst_1 : NormedAddCommGroup β] [inst_2 : InnerProductSpace ℝ α] [inst_3 : InnerProductSpace ℝ β]
  [inst_4 : CompleteSpace α] [inst_5 : CompleteSpace β] (A : α →L[ℝ] β) (s : α) (ε : ℝ) (εpos : ε > 0) (h : 0 < ‖A‖)
  (x : α) (hx : ‖s - x‖ ≤ ε / ‖A‖ ^ 2) (hzero : 0 < ‖A‖ ^ 2) :
  let t := x - s;
  s + t = x →
    ⟪A x, A x⟫_ℝ - ⟪A s, A s⟫_ℝ - ⟪2 • (ContinuousLinearMap.adjoint A) (A s), x - s⟫_ℝ = ⟪A (x - s), A (x - s)⟫_ℝ →
      0 < ‖s - x‖ → 0 ≤ ‖A‖ ^ 2 * ‖s - x‖ → ‖A‖ ^ 2 * ‖s - x‖ * ‖s - x‖ ≤ ‖A‖ ^ 2 * ‖s - x‖ * (ε / ‖A‖ ^ 2) := sorry

Tactic state before:
α : Type u_4
β : Type u_5
inst✝⁵ : NormedAddCommGroup α
inst✝⁴ : NormedAddCommGroup β
inst✝³ : InnerProductSpace ℝ α
inst✝² : InnerProductSpace ℝ β
inst✝¹ : CompleteSpace α
inst✝ : CompleteSpace β
A : α →L[ℝ] β
s : α
ε : ℝ
εpos : ε > 0
h : 0 < ‖A‖
x : α
hx : ‖s - x‖ ≤ ε / ‖A‖ ^ 2
hzero : 0 < ‖A‖ ^ 2
t : α := x - s
t1 : s + t = x
this✝ : ⟪A x, A x⟫_ℝ - ⟪A s, A s⟫_ℝ - ⟪2 • (ContinuousLinearMap.adjoint A) (A s), x - s⟫_ℝ = ⟪A (x - s), A (x - s)⟫_ℝ
h✝ : 0 < ‖s - x‖
this : 0 ≤ ‖A‖ ^ 2 * ‖s - x‖
⊢ ‖A‖ ^ 2 * ‖s - x‖ * ‖s - x‖ ≤ ‖A‖ ^ 2 * ‖s - x‖ * (ε / ‖A‖ ^ 2)

Tactic: apply mul_le_mul_of_nonneg_left hx this

Tactic state after:

Premises used:
mul_le_mul_of_nonneg_left : ∀ {α : Type u_3} {a b c : α} [inst : Mul α] [inst_6 : Zero α] [inst_7 : Preorder α]
  [inst_8 : PosMulMono α], b ≤ c → 0 ≤ a → a * b ≤ a * c