zzhisthebest/LeanBenchmark huggingface dataset:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_8.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} (h : ADMM.τ E₁ E₂ F > 1)
  (hb : 1 - 1 / ADMM.τ E₁ E₂ F ≥ 1 - ADMM.τ E₁ E₂ F)
  (h_original_goal : (1 - ADMM.τ E₁ E₂ F) ⊔ (1 - 1 / ADMM.τ E₁ E₂ F) ≥ 0) : (ADMM.τ E₁ E₂ F)⁻¹ ≤ 1 := sorry

Tactic state before:
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
h : ADMM.τ E₁ E₂ F > 1
hb : 1 - 1 / ADMM.τ E₁ E₂ F ≥ 1 - ADMM.τ E₁ E₂ F
⊢ (1 - ADMM.τ E₁ E₂ F) ⊔ (1 - 1 / ADMM.τ E₁ E₂ F) ≥ 0

Tactic:
rw [max_eq_right hb]
    apply sub_nonneg_of_le
    rw [one_div]

Tactic state after:
[case a
 E₁ : Type u_1
 E₂ : Type u_2
 F : Type u_3
 inst✝⁹ : NormedAddCommGroup E₁
 inst✝⁸ : InnerProductSpace ℝ E₁
 inst✝⁷ : FiniteDimensional ℝ E₁
 inst✝⁶ : NormedAddCommGroup E₂
 inst✝⁵ : InnerProductSpace ℝ E₂
 inst✝⁴ : FiniteDimensional ℝ E₂
 inst✝³ : NormedAddCommGroup F
 inst✝² : InnerProductSpace ℝ F
 inst✝¹ : FiniteDimensional ℝ F
 admm : ADMM E₁ E₂ F
 admm_kkt : Existance_of_kkt admm
 inst✝ : Setting E₁ E₂ F admm admm_kkt
 h : ADMM.τ E₁ E₂ F > 1
 hb : 1 - 1 / ADMM.τ E₁ E₂ F ≥ 1 - ADMM.τ E₁ E₂ F
 ⊢ (ADMM.τ E₁ E₂ F)⁻¹ ≤ 1]
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_9.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt] (n : ℕ)
  (h1 : 0 < ADMM.τ E₁ E₂ F) (right : ADMM.τ E₁ E₂ F < (1 + √5) / 2) (h_original_goal : Φ n ≥ 0) :
  0 ≤
    Ψ n +
      ((1 - ADMM.τ E₁ E₂ F) ⊔ (1 - (ADMM.τ E₁ E₂ F)⁻¹)) * ADMM.ρ E₁ E₂ F *
        ‖(OptProblem.A₁ E₂) (e₁ n) + (OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 := sorry

Tactic state before:
case intro
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
n : ℕ
h1 : 0 < ADMM.τ E₁ E₂ F
right✝ : ADMM.τ E₁ E₂ F < (1 + √5) / 2
⊢ Φ n ≥ 0

Tactic:
simp [Φ]
    have h2 : Ψ n ≥ 0 := by
  simp [Ψ]; apply add_nonneg; repeat apply mul_nonneg
  apply inv_nonneg_of_nonneg; apply le_of_lt admm.hrho
  apply inv_nonneg_of_nonneg; apply le_of_lt h1
  apply pow_two_nonneg; apply mul_nonneg; apply le_of_lt admm.hrho; apply pow_two_nonneg
    have h3 : ((max (1 - τ) (1 - 1 / τ)) * ρ) * ‖A₁ ((e₁) n) + A₂ ((e₂) n)‖ ^ 2 ≥ 0 :=
  by
  repeat apply mul_nonneg
  to_theorem apply nonneg₃ apply le_of_lt admm.hrho apply pow_two_nonneg

Tactic state after:
[case intro
 E₁ : Type u_1
 E₂ : Type u_2
 F : Type u_3
 inst✝⁹ : NormedAddCommGroup E₁
 inst✝⁸ : InnerProductSpace ℝ E₁
 inst✝⁷ : FiniteDimensional ℝ E₁
 inst✝⁶ : NormedAddCommGroup E₂
 inst✝⁵ : InnerProductSpace ℝ E₂
 inst✝⁴ : FiniteDimensional ℝ E₂
 inst✝³ : NormedAddCommGroup F
 inst✝² : InnerProductSpace ℝ F
 inst✝¹ : FiniteDimensional ℝ F
 admm : ADMM E₁ E₂ F
 admm_kkt : Existance_of_kkt admm
 inst✝ : Setting E₁ E₂ F admm admm_kkt
 n : ℕ
 h1 : 0 < ADMM.τ E₁ E₂ F
 right✝ : ADMM.τ E₁ E₂ F < (1 + √5) / 2
 h2 : Ψ n ≥ 0
 h3 :
   ((1 - ADMM.τ E₁ E₂ F) ⊔ (1 - 1 / ADMM.τ E₁ E₂ F)) * ADMM.ρ E₁ E₂ F *
       ‖(OptProblem.A₁ E₂) (e₁ n) + (OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 ≥
     0
 ⊢ 0 ≤
     Ψ n +
       ((1 - ADMM.τ E₁ E₂ F) ⊔ (1 - (ADMM.τ E₁ E₂ F)⁻¹)) * ADMM.ρ E₁ E₂ F *
         ‖(OptProblem.A₁ E₂) (e₁ n) + (OptProblem.A₂ E₁) (e₂ n)‖ ^ 2]
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_10.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt] :
  let C := (Φ 0 + 1) ⊔ (Φ 1 + 1);
  Φ 0 < Φ 0 + 1 → Φ 0 < C := sorry

Tactic state before:
case h.zero
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
C : ℝ := (Φ 0 + 1) ⊔ (Φ 1 + 1)
this : Φ 0 < Φ 0 + 1
⊢ Φ 0 < C

Tactic:
apply lt_max_iff.2
    left
    exact this

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_11.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt] :
  let C := (Φ 0 + 1) ⊔ (Φ 1 + 1);
  ∀ (k : ℕ), Φ k < C → k = 0 → Φ 1 < C := sorry

Tactic state before:
case pos
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
C : ℝ := (Φ 0 + 1) ⊔ (Φ 1 + 1)
k : ℕ
h : Φ k < C
hh : k = 0
⊢ Φ 1 < C

Tactic:
apply lt_max_iff.2
    right
    linarith

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_14.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt] (n : ℕ) :
  0 ≤
    ((1 - ADMM.τ E₁ E₂ F) ⊔ (1 - 1 / ADMM.τ E₁ E₂ F)) * ADMM.ρ E₁ E₂ F *
      ‖(OptProblem.A₁ E₂) (e₁ n) + (OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 := sorry

Tactic state before:
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
n : ℕ
⊢ 0 ≤
    ((1 - ADMM.τ E₁ E₂ F) ⊔ (1 - 1 / ADMM.τ E₁ E₂ F)) * ADMM.ρ E₁ E₂ F *
      ‖(OptProblem.A₁ E₂) (e₁ n) + (OptProblem.A₂ E₁) (e₂ n)‖ ^ 2

Tactic:
apply mul_nonneg
    · apply mul_nonneg max_tau_nonneg; apply le_of_lt rho_pos
    · apply pow_nonneg; simp

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_15.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt] (n : ℕ) :
  let x1 := 1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) * ‖ey n‖ ^ 2;
  0 ≤ x1 := sorry

Tactic state before:
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
n : ℕ
x1 : ℝ := 1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) * ‖ey n‖ ^ 2
⊢ 0 ≤ x1

Tactic:
apply mul_nonneg
    · apply div_nonneg zero_le_one; exact zero_le_tau_mul_rho
    · apply pow_nonneg; simp

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_16.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt] (n : ℕ) :
  let x2 := ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2;
  0 ≤ x2 := sorry

Tactic state before:
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
n : ℕ
x1 : ℝ := 1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) * ‖ey n‖ ^ 2
hx1 : 0 ≤ x1
x2 : ℝ := ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2
⊢ 0 ≤ x2

Tactic:
apply mul_nonneg
    · apply le_of_lt rho_pos
    · apply pow_nonneg; simp

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_17.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt] (r_Φ : ℝ)
  (h1 : ∀ (n : ℕ), ‖Φ n‖ < r_Φ) :
  let r := √(r_Φ / ADMM.ρ E₁ E₂ F);
  r = √(r_Φ / ADMM.ρ E₁ E₂ F) →
    ∀ (n : ℕ),
      ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 ≤ ‖Φ n‖ →
        ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 < r_Φ →
          0 ≤ ‖(OptProblem.A₂ E₁) (e₂ n)‖ →
            √(‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2) < √(r_Φ / ADMM.ρ E₁ E₂ F) → 0 ≤ ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 := sorry

Tactic state before:
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
r_Φ : ℝ
h1 : ∀ (n : ℕ), ‖Φ n‖ < r_Φ
r : ℝ := √(r_Φ / ADMM.ρ E₁ E₂ F)
hr : r = √(r_Φ / ADMM.ρ E₁ E₂ F)
n : ℕ
h2 : ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 ≤ ‖Φ n‖
h3 : ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 < r_Φ
h4 : 0 ≤ ‖(OptProblem.A₂ E₁) (e₂ n)‖
⊢ √(‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2) < √(r_Φ / ADMM.ρ E₁ E₂ F)

Tactic:
rw [← lt_div_iff₀' ADMM.hrho] at h3
    apply Real.sqrt_lt_sqrt at h3
    exact h3

Tactic state after:
[case hx
 E₁ : Type u_1
 E₂ : Type u_2
 F : Type u_3
 inst✝⁹ : NormedAddCommGroup E₁
 inst✝⁸ : InnerProductSpace ℝ E₁
 inst✝⁷ : FiniteDimensional ℝ E₁
 inst✝⁶ : NormedAddCommGroup E₂
 inst✝⁵ : InnerProductSpace ℝ E₂
 inst✝⁴ : FiniteDimensional ℝ E₂
 inst✝³ : NormedAddCommGroup F
 inst✝² : InnerProductSpace ℝ F
 inst✝¹ : FiniteDimensional ℝ F
 admm : ADMM E₁ E₂ F
 admm_kkt : Existance_of_kkt admm
 inst✝ : Setting E₁ E₂ F admm admm_kkt
 r_Φ : ℝ
 h1 : ∀ (n : ℕ), ‖Φ n‖ < r_Φ
 r : ℝ := √(r_Φ / ADMM.ρ E₁ E₂ F)
 hr : r = √(r_Φ / ADMM.ρ E₁ E₂ F)
 n : ℕ
 h2 : ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 ≤ ‖Φ n‖
 h3 : ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 < r_Φ / ADMM.ρ E₁ E₂ F
 h4 : 0 ≤ ‖(OptProblem.A₂ E₁) (e₂ n)‖
 ⊢ 0 ≤ ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2]
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_18.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt] (r_Φ : ℝ)
  (h1 : ∀ (n : ℕ), ‖Φ n‖ < r_Φ) :
  let r := √(r_Φ / ADMM.ρ E₁ E₂ F);
  r = √(r_Φ / ADMM.ρ E₁ E₂ F) →
    ∀ (n : ℕ),
      ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 ≤ ‖Φ n‖ →
        ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 < r_Φ →
          0 ≤ ‖(OptProblem.A₂ E₁) (e₂ n)‖ →
            ‖(OptProblem.A₂ E₁) (e₂ n)‖ < √(r_Φ / ADMM.ρ E₁ E₂ F) →
              dist ((OptProblem.A₂ E₁) (e₂ n)) 0 < √(r_Φ / ADMM.ρ E₁ E₂ F) →
                (⇑(OptProblem.A₂ E₁) ∘ e₂) n ∈ ball 0 r := sorry

Tactic state before:
case h.intro
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
r_Φ : ℝ
h1 : ∀ (n : ℕ), ‖Φ n‖ < r_Φ
r : ℝ := √(r_Φ / ADMM.ρ E₁ E₂ F)
hr : r = √(r_Φ / ADMM.ρ E₁ E₂ F)
n : ℕ
h2 : ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 ≤ ‖Φ n‖
h3 : ADMM.ρ E₁ E₂ F * ‖(OptProblem.A₂ E₁) (e₂ n)‖ ^ 2 < r_Φ
h4 : 0 ≤ ‖(OptProblem.A₂ E₁) (e₂ n)‖
h5 : ‖(OptProblem.A₂ E₁) (e₂ n)‖ < √(r_Φ / ADMM.ρ E₁ E₂ F)
h6 : dist ((OptProblem.A₂ E₁) (e₂ n)) 0 < √(r_Φ / ADMM.ρ E₁ E₂ F)
⊢ (⇑(OptProblem.A₂ E₁) ∘ e₂) n ∈ ball 0 r

Tactic:
rw [← hr] at h6
    rw [← Metric.mem_ball] at h6
    apply h6

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_19.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt] (n : ℕ+)
  (h :
    (ADMM.τ E₁ E₂ F ⊓ (1 + ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F ^ 2)) * ADMM.ρ E₁ E₂ F *
          ‖(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n - ADMM.x₂ E₁ F (↑n + 1))‖ ^ 2 +
        (1 ⊓ (1 + 1 / ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F)) * ADMM.ρ E₁ E₂ F *
          ‖(OptProblem.A₁ E₂) (e₁ (↑n + 1)) + (OptProblem.A₂ E₁) (e₂ (↑n + 1))‖ ^ 2 ≥
      0) :
  0 ≤ Φ ↑n - Φ (↑n + 1) := sorry

Tactic state before:
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
n : ℕ+
h :
  (ADMM.τ E₁ E₂ F ⊓ (1 + ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F ^ 2)) * ADMM.ρ E₁ E₂ F *
        ‖(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n - ADMM.x₂ E₁ F (↑n + 1))‖ ^ 2 +
      (1 ⊓ (1 + 1 / ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F)) * ADMM.ρ E₁ E₂ F *
        ‖(OptProblem.A₁ E₂) (e₁ (↑n + 1)) + (OptProblem.A₂ E₁) (e₂ (↑n + 1))‖ ^ 2 ≥
    0
⊢ 0 ≤ Φ ↑n - Φ (↑n + 1)

Tactic:
apply le_trans
    · apply h
    · apply Φ_isdescending

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_24.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt]
  (fullrank₁ : Function.Injective ⇑(OptProblem.A₁ E₂)) (M : ℝ)
  (h₁ : {x | ∃ «y», (⇑(OptProblem.A₁ E₂) ∘ e₁) «y» = x} ⊆ ball 0 M) (C : ℝ) (C_pos : C > 0)
  (h₂ : ∀ (n : ℕ), ‖e₁ n‖ ≤ C * ‖(OptProblem.A₁ E₂) (e₁ n)‖) ⦃x : E₁⦄ (n : ℕ) (eq : ADMM.x₁ E₂ F n = x)
  (A₁e₁_bd : ‖(OptProblem.A₁ E₂) (e₁ n)‖ < M) : x ∈ ball 0 (C * M + ‖admm_kkt.x₁‖) := sorry

Tactic state before:
case h.intro
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
fullrank₁ : Function.Injective ⇑(OptProblem.A₁ E₂)
M : ℝ
h₁ : {x | ∃ «y», (⇑(OptProblem.A₁ E₂) ∘ e₁) «y» = x} ⊆ ball 0 M
C : ℝ
C_pos : C > 0
h₂ : ∀ (n : ℕ), ‖e₁ n‖ ≤ C * ‖(OptProblem.A₁ E₂) (e₁ n)‖
x : E₁
n : ℕ
eq : ADMM.x₁ E₂ F n = x
A₁e₁_bd : ‖(OptProblem.A₁ E₂) (e₁ n)‖ < M
⊢ x ∈ ball 0 (C * M + ‖admm_kkt.x₁‖)

Tactic:
rw [← eq]
    simp
    calc
  _ = ‖(x₁ n - x₁') + x₁'‖ := by rw [add_comm, add_sub, add_comm, add_sub_assoc, sub_self, add_zero]
  _ ≤ ‖x₁ n - x₁'‖ + ‖x₁'‖ := by apply norm_add_le
  _ = ‖e₁ n‖ + ‖x₁'‖ := by rw [e₁]
  _ ≤ C * ‖A₁ (e₁ n)‖ + ‖x₁'‖ := by linarith [h₂ n]
  _ < C * M + ‖x₁'‖ := by linarith [mul_lt_mul_of_pos_left A₁e₁_bd C_pos]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_25.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} {admm_kkt : Existance_of_kkt admm} [inst_9 : Setting E₁ E₂ F admm admm_kkt]
  (fullrank₂ : Function.Injective ⇑(OptProblem.A₂ E₁)) (M : ℝ)
  (h₁ : {x | ∃ «y», (⇑(OptProblem.A₂ E₁) ∘ e₂) «y» = x} ⊆ ball 0 M) (C : ℝ) (C_pos : C > 0)
  (h₂ : ∀ (n : ℕ), ‖e₂ n‖ ≤ C * ‖(OptProblem.A₂ E₁) (e₂ n)‖) ⦃x : E₂⦄ (n : ℕ) (eq : ADMM.x₂ E₁ F n = x)
  (A₂e₂_bd : ‖(OptProblem.A₂ E₁) (e₂ n)‖ < M) : x ∈ ball 0 (C * M + ‖admm_kkt.x₂‖) := sorry

Tactic state before:
case h.intro
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁹ : NormedAddCommGroup E₁
inst✝⁸ : InnerProductSpace ℝ E₁
inst✝⁷ : FiniteDimensional ℝ E₁
inst✝⁶ : NormedAddCommGroup E₂
inst✝⁵ : InnerProductSpace ℝ E₂
inst✝⁴ : FiniteDimensional ℝ E₂
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
inst✝¹ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
admm_kkt : Existance_of_kkt admm
inst✝ : Setting E₁ E₂ F admm admm_kkt
fullrank₂ : Function.Injective ⇑(OptProblem.A₂ E₁)
M : ℝ
h₁ : {x | ∃ «y», (⇑(OptProblem.A₂ E₁) ∘ e₂) «y» = x} ⊆ ball 0 M
C : ℝ
C_pos : C > 0
h₂ : ∀ (n : ℕ), ‖e₂ n‖ ≤ C * ‖(OptProblem.A₂ E₁) (e₂ n)‖
x : E₂
n : ℕ
eq : ADMM.x₂ E₁ F n = x
A₂e₂_bd : ‖(OptProblem.A₂ E₁) (e₂ n)‖ < M
⊢ x ∈ ball 0 (C * M + ‖admm_kkt.x₂‖)

Tactic:
rw [← eq]
    simp
    calc
  _ = ‖(x₂ n - x₂') + x₂'‖ := by rw [add_comm, add_sub, add_comm, add_sub_assoc, sub_self, add_zero]
  _ ≤ ‖x₂ n - x₂'‖ + ‖x₂'‖ := by apply norm_add_le
  _ = ‖e₂ n‖ + ‖x₂'‖ := by rw [e₂]
  _ ≤ C * ‖A₂ (e₂ n)‖ + ‖x₂'‖ := by linarith [h₂ n]
  _ < C * M + ‖x₂'‖ := by linarith [mul_lt_mul_of_pos_left A₂e₂_bd C_pos]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter Bornology Metric Real

theorem extracted_formal_statement_26.{u_3, u_2, u_1} {E₁ : Type u_1} {E₂ : Type u_2} {F : Type u_3}
  [inst : NormedAddCommGroup E₁] [inst_1 : InnerProductSpace ℝ E₁] [inst_2 : FiniteDimensional ℝ E₁]
  [inst_3 : NormedAddCommGroup E₂] [inst_4 : InnerProductSpace ℝ E₂] [inst_5 : FiniteDimensional ℝ E₂]
  [inst_6 : NormedAddCommGroup F] [inst_7 : InnerProductSpace ℝ F] [inst_8 : FiniteDimensional ℝ F]
  {admm : ADMM E₁ E₂ F} ⦃x : E₁ × E₂ × F⦄ (hx : ∃ «y», (ADMM.x₁ E₂ F «y», ADMM.x₂ E₁ F «y», ADMM.y E₁ E₂ «y») = x)
  (h_original_goal :
    x ∈ {x | ∃ «y», ADMM.x₁ E₂ F «y» = x} ×ˢ {x | ∃ «y», ADMM.x₂ E₁ F «y» = x} ×ˢ {x | ∃ «y», ADMM.y E₁ E₂ «y» = x}) :
  (∃ «y», ADMM.x₁ E₂ F «y» = x.1) ∧ (∃ «y», ADMM.x₂ E₁ F «y» = x.2.1) ∧ ∃ «y», ADMM.y E₁ E₂ «y» = x.2.2 := sorry

Tactic state before:
E₁ : Type u_1
E₂ : Type u_2
F : Type u_3
inst✝⁸ : NormedAddCommGroup E₁
inst✝⁷ : InnerProductSpace ℝ E₁
inst✝⁶ : FiniteDimensional ℝ E₁
inst✝⁵ : NormedAddCommGroup E₂
inst✝⁴ : InnerProductSpace ℝ E₂
inst✝³ : FiniteDimensional ℝ E₂
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : FiniteDimensional ℝ F
admm : ADMM E₁ E₂ F
x : E₁ × E₂ × F
hx : ∃ «y», (ADMM.x₁ E₂ F «y», ADMM.x₂ E₁ F «y», ADMM.y E₁ E₂ «y») = x
⊢ x ∈ {x | ∃ «y», ADMM.x₁ E₂ F «y» = x} ×ˢ {x | ∃ «y», ADMM.x₂ E₁ F «y» = x} ×ˢ {x | ∃ «y», ADMM.y E₁ E₂ «y» = x}

Tactic:
simp only [mem_prod, mem_setOf_eq]
    rcases hx with ⟨n, hn⟩
    have h1 : x₁ n = x.1 := hn.symm ▸ rfl

Tactic state after:
[case intro
 E₁ : Type u_1
 E₂ : Type u_2
 F : Type u_3
 inst✝⁸ : NormedAddCommGroup E₁
 inst✝⁷ : InnerProductSpace ℝ E₁
 inst✝⁶ : FiniteDimensional ℝ E₁
 inst✝⁵ : NormedAddCommGroup E₂
 inst✝⁴ : InnerProductSpace ℝ E₂
 inst✝³ : FiniteDimensional ℝ E₂
 inst✝² : NormedAddCommGroup F
 inst✝¹ : InnerProductSpace ℝ F
 inst✝ : FiniteDimensional ℝ F
 admm : ADMM E₁ E₂ F
 x : E₁ × E₂ × F
 n : ℕ
 hn : (ADMM.x₁ E₂ F n, ADMM.x₂ E₁ F n, ADMM.y E₁ E₂ n) = x
 h1 : ADMM.x₁ E₂ F n = x.1
 ⊢ (∃ «y», ADMM.x₁ E₂ F «y» = x.1) ∧ (∃ «y», ADMM.x₂ E₁ F «y» = x.2.1) ∧ ∃ «y», ADMM.y E₁ E₂ «y» = x.2.2]