-- File: optlib/Optlib/Algorithm/LASSO.lean
Theorem statement:
theorem extracted_formal_statement_182 {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 : |μ| * (↑↑n * ε) = ε * (↑↑n * μ)) : ↑↑n * ε * |μ| = ↑↑n * ε * μ := 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 / μ
⊢ |μ| * (↑↑n * ε) = ε * (↑↑n * μ)

Tactic: rw [mul_comm, ← mul_assoc, mul_comm ε]

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 / μ
 ⊢ ↑↑n * ε * |μ| = ↑↑n * ε * μ]

Premises used:
mul_comm : ∀ {G : Type u_1} [inst : CommMagma G] (a b : G), a * b = b * a
mul_assoc : ∀ {G : Type u_1} [inst : Semigroup G] (a b c : G), a * b * c = a * (b * c)