-- File: optlib/Optlib/Algorithm/LASSO.lean
Theorem statement:
theorem extracted_formal_statement_195 {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₀) (k : ℕ)
  (h_original_goal : prox_prop (p.t • p.h) (p.x k - p.t • p.f' (p.x k)) (p.x (k + 1))) : 0 < p.t := 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₀
k : ℕ
⊢ prox_prop (p.t • p.h) (p.x k - p.t • p.f' (p.x k)) (p.x (k + 1))

Tactic: apply norm_one_proximal

Tactic state after:
[case lasso
 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₀
 k : ℕ
 ⊢ p.h = fun y => ?μ • ∑ i, ‖y i‖,
 case tpos
 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₀
 k : ℕ
 ⊢ 0 < p.t,
 case μpos
 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₀
 k : ℕ
 ⊢ 0 < ?μ,
 case minpoint
 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₀
 k : ℕ
 ⊢ ∀ (i : Fin ↑n),
     p.x (k + 1) i = sign ((p.x k - p.t • p.f' (p.x k)) i) * ((|(p.x k - p.t • p.f' (p.x k)) i| - p.t * ?μ) ⊔ 0),
 case μ
 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₀
 k : ℕ
 ⊢ ℝ]

Premises used:
norm_one_proximal : ∀ {n : ℕ+} {t μ : ℝ} {h : EuclideanSpace ℝ (Fin ↑n) → ℝ},
  (h = fun y => μ • ∑ i, ‖y i‖) →
    ∀ (x xm : EuclideanSpace ℝ (Fin ↑n)),
      0 < t → 0 < μ → (∀ (i : Fin ↑n), xm i = sign (x i) * ((|x i| - t * μ) ⊔ 0)) → prox_prop (t • h) x xm