-- File: optlib/Optlib/Algorithm/LASSO.lean
Theorem statement:
theorem extracted_formal_statement_18 {n m : ℕ+} {A : Matrix (Fin ↑m) (Fin ↑n) ℝ} (hA : ¬A = 0)
  (x : EuclideanSpace ℝ (Fin ↑n)) (ε : ℝ) (εpos : ε > 0) :
  let normA := ‖(toEuclideanLin ≪≫ₗ LinearMap.toContinuousLinearMap) A‖;
  (∀ (x : EuclideanSpace ℝ (Fin ↑n)), ‖A *ᵥ x‖ ≤ normA * ‖x‖) →
    0 < normA →
      ∀ (y : EuclideanSpace ℝ (Fin ↑n)),
        ‖x - y‖ ≤ ε / normA ^ 2 →
          ‖A *ᵥ y ⬝ᵥ A *ᵥ y - A *ᵥ x ⬝ᵥ A *ᵥ x - inner (2 • Aᵀ *ᵥ A *ᵥ x) (y - x)‖ ≤ ε * ‖x - y‖ →
            ‖A *ᵥ y ⬝ᵥ A *ᵥ y - A *ᵥ x ⬝ᵥ A *ᵥ x - (starRingEnd ℝ) 2 * inner (Aᵀ *ᵥ A *ᵥ x) (y - x)‖ ≤
              ε * ‖x - y‖ := sorry

Tactic state before:
case h.right
n m : ℕ+
A : Matrix (Fin ↑m) (Fin ↑n) ℝ
hA : ¬A = 0
x : EuclideanSpace ℝ (Fin ↑n)
ε : ℝ
εpos : ε > 0
normA : ℝ := ‖(toEuclideanLin ≪≫ₗ LinearMap.toContinuousLinearMap) A‖
norm_mul : ∀ (x : EuclideanSpace ℝ (Fin ↑n)), ‖A *ᵥ x‖ ≤ normA * ‖x‖
normApos : 0 < normA
y : EuclideanSpace ℝ (Fin ↑n)
ydist : ‖x - y‖ ≤ ε / normA ^ 2
⊢ ‖A *ᵥ y ⬝ᵥ A *ᵥ y - A *ᵥ x ⬝ᵥ A *ᵥ x - inner (2 • Aᵀ *ᵥ A *ᵥ x) (y - x)‖ ≤ ε * ‖x - y‖

Tactic: rw [inner_smul_left]

Tactic state after:
[case h.right
 n m : ℕ+
 A : Matrix (Fin ↑m) (Fin ↑n) ℝ
 hA : ¬A = 0
 x : EuclideanSpace ℝ (Fin ↑n)
 ε : ℝ
 εpos : ε > 0
 normA : ℝ := ‖(toEuclideanLin ≪≫ₗ LinearMap.toContinuousLinearMap) A‖
 norm_mul : ∀ (x : EuclideanSpace ℝ (Fin ↑n)), ‖A *ᵥ x‖ ≤ normA * ‖x‖
 normApos : 0 < normA
 y : EuclideanSpace ℝ (Fin ↑n)
 ydist : ‖x - y‖ ≤ ε / normA ^ 2
 ⊢ ‖A *ᵥ y ⬝ᵥ A *ᵥ y - A *ᵥ x ⬝ᵥ A *ᵥ x - (starRingEnd ℝ) 2 * inner (Aᵀ *ᵥ A *ᵥ x) (y - x)‖ ≤ ε * ‖x - y‖]

Premises used:
inner_smul_left : ∀ {𝕜 : Type u_1} {E : Type u_2} [inst : RCLike 𝕜] [inst_1 : SeminormedAddCommGroup E]
  [inst_2 : InnerProductSpace 𝕜 E] (x y : E) (r : 𝕜), inner (r • x) y = (starRingEnd 𝕜) r * inner x y