-- File: optlib/Optlib/Algorithm/LASSO.lean
Theorem statement:
theorem extracted_formal_statement_177 {n m : ℕ+} {A : Matrix (Fin ↑m) (Fin ↑n) ℝ} {μ : ℝ} {μpos : 0 < μ} {Ane0 : A ≠ 0}
  (x : EuclideanSpace ℝ (Fin ↑n)) (a : x ∈ Set.univ) (ε : ℝ) (εpos : ε > 0) (y : EuclideanSpace ℝ (Fin ↑n))
  (ydist : ‖x - y‖ ≤ ε / ↑↑n / μ) (le : ∀ (i : Fin ↑n), ||y i| - |x i|| ≤ ε / ↑↑n / μ)
  (h_original_goal : |μ| * ∑ i, ||y i| - |x i|| ≤ |μ| * (↑↑n * (ε / ↑↑n / μ))) : 0 < |μ| := sorry

Tactic state before:
n m : ℕ+
A : Matrix (Fin ↑m) (Fin ↑n) ℝ
b : Fin ↑m → ℝ
μ : ℝ
μpos : 0 < μ
Ane0 : A ≠ 0
x₀ : EuclideanSpace ℝ (Fin ↑n)
p : LASSO A b μ μpos Ane0 x₀
x : EuclideanSpace ℝ (Fin ↑n)
a✝ : x ∈ Set.univ
ε : ℝ
εpos : ε > 0
y : EuclideanSpace ℝ (Fin ↑n)
ydist : ‖x - y‖ ≤ ε / ↑↑n / μ
le : ∀ (i : Fin ↑n), ||y i| - |x i|| ≤ ε / ↑↑n / μ
⊢ |μ| * ∑ i, ||y i| - |x i|| ≤ |μ| * (↑↑n * (ε / ↑↑n / μ))

Tactic: rw [mul_le_mul_left]

Tactic state after:
[n m : ℕ+
 A : Matrix (Fin ↑m) (Fin ↑n) ℝ
 b : Fin ↑m → ℝ
 μ : ℝ
 μpos : 0 < μ
 Ane0 : A ≠ 0
 x₀ : EuclideanSpace ℝ (Fin ↑n)
 p : LASSO A b μ μpos Ane0 x₀
 x : EuclideanSpace ℝ (Fin ↑n)
 a✝ : x ∈ Set.univ
 ε : ℝ
 εpos : ε > 0
 y : EuclideanSpace ℝ (Fin ↑n)
 ydist : ‖x - y‖ ≤ ε / ↑↑n / μ
 le : ∀ (i : Fin ↑n), ||y i| - |x i|| ≤ ε / ↑↑n / μ
 ⊢ ∑ i, ||y i| - |x i|| ≤ ↑↑n * (ε / ↑↑n / μ),
 n m : ℕ+
 A : Matrix (Fin ↑m) (Fin ↑n) ℝ
 b : Fin ↑m → ℝ
 μ : ℝ
 μpos : 0 < μ
 Ane0 : A ≠ 0
 x₀ : EuclideanSpace ℝ (Fin ↑n)
 p : LASSO A b μ μpos Ane0 x₀
 x : EuclideanSpace ℝ (Fin ↑n)
 a✝ : x ∈ Set.univ
 ε : ℝ
 εpos : ε > 0
 y : EuclideanSpace ℝ (Fin ↑n)
 ydist : ‖x - y‖ ≤ ε / ↑↑n / μ
 le : ∀ (i : Fin ↑n), ||y i| - |x i|| ≤ ε / ↑↑n / μ
 ⊢ 0 < |μ|]

Premises used:
mul_le_mul_left : ∀ {α : Type u_3} {a b c : α} [inst : Mul α] [inst_1 : Zero α] [inst_2 : Preorder α]
  [inst_3 : PosMulMono α] [inst_4 : PosMulReflectLE α], 0 < a → (a * b ≤ a * c ↔ b ≤ c)