zzhisthebest/LeanBenchmark huggingface dataset:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_141.{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} (n : ℕ)
  (h_original_goal :
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂ =
      ((ADMM.ρ E₁ E₂ F)⁻¹ * (ADMM.τ E₁ E₂ F)⁻¹) •
        (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) •
          ((OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) -
            OptProblem.b E₁ E₂)) :
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂ =
    ((ADMM.ρ E₁ E₂ F)⁻¹ * ((ADMM.τ E₁ E₂ F)⁻¹ * (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F))) •
      ((OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) -
        OptProblem.b E₁ E₂) := 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 : ℕ
⊢ (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂ =
    ((ADMM.ρ E₁ E₂ F)⁻¹ * (ADMM.τ E₁ E₂ F)⁻¹) •
      (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) •
        ((OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂)

Tactic:
rw [smul_smul, mul_assoc]

Tactic state after:
[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 : ℕ
 ⊢ (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂ =
     ((ADMM.ρ E₁ E₂ F)⁻¹ * ((ADMM.τ E₁ E₂ F)⁻¹ * (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F))) •
       ((OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂)]
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_142.{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} (n : ℕ) (htau1 : (ADMM.τ E₁ E₂ F)⁻¹ * ADMM.τ E₁ E₂ F = 1)
  (hrho1 : (ADMM.ρ E₁ E₂ F)⁻¹ * ADMM.ρ E₁ E₂ F = 1) :
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂ =
    ((ADMM.ρ E₁ E₂ F)⁻¹ * ((ADMM.τ E₁ E₂ F)⁻¹ * ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) •
      ((OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) -
        OptProblem.b E₁ E₂) := 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 : ℕ
htau1 : (ADMM.τ E₁ E₂ F)⁻¹ * ADMM.τ E₁ E₂ F = 1
hrho1 : (ADMM.ρ E₁ E₂ F)⁻¹ * ADMM.ρ E₁ E₂ F = 1
⊢ (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂ =
    ((ADMM.ρ E₁ E₂ F)⁻¹ * ((ADMM.τ E₁ E₂ F)⁻¹ * ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) •
      ((OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂)

Tactic:
rw [htau1, one_mul, hrho1, one_smul]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_143.{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} (n : ℕ) :
  (1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) • (ADMM.y E₁ E₂ (n + 1) - ADMM.y E₁ E₂ n) =
    (1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) • (ADMM.y E₁ E₂ (n + 1) - admm_kkt.y + admm_kkt.y - ADMM.y E₁ E₂ n) := 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 : ℕ
⊢ (1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) • (ADMM.y E₁ E₂ (n + 1) - ADMM.y E₁ E₂ n) =
    (1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) • (ADMM.y E₁ E₂ (n + 1) - admm_kkt.y + admm_kkt.y - ADMM.y E₁ E₂ n)

Tactic:
rw [sub_add, sub_self, sub_zero]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_144.{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} (n : ℕ) :
  (1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) • (ADMM.y E₁ E₂ (n + 1) - admm_kkt.y + admm_kkt.y - ADMM.y E₁ E₂ n) =
    (1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) •
      (ADMM.y E₁ E₂ (n + 1) - admm_kkt.y - (ADMM.y E₁ E₂ n - admm_kkt.y)) := 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 : ℕ
⊢ (1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) • (ADMM.y E₁ E₂ (n + 1) - admm_kkt.y + admm_kkt.y - ADMM.y E₁ E₂ n) =
    (1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) • (ADMM.y E₁ E₂ (n + 1) - admm_kkt.y - (ADMM.y E₁ E₂ n - admm_kkt.y))

Tactic:
simp only [one_div, mul_inv_rev, sub_add_cancel, sub_sub_sub_cancel_right]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_145.{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} (n : ℕ) :
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂ =
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) -
      ((OptProblem.A₁ E₂) admm_kkt.x₁ + (OptProblem.A₂ E₁) admm_kkt.x₂) := 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 : ℕ
⊢ (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂ =
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) -
      ((OptProblem.A₁ E₂) admm_kkt.x₁ + (OptProblem.A₂ E₁) admm_kkt.x₂)

Tactic:
rw [Satisfaction_ofthekkt.eq]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_146.{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} (n : ℕ) :
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) - (OptProblem.A₁ E₂) admm_kkt.x₁ +
      ((OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - (OptProblem.A₂ E₁) admm_kkt.x₂) =
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1) - admm_kkt.x₁) +
      (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1) - admm_kkt.x₂) := 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 : ℕ
⊢ (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) - (OptProblem.A₁ E₂) admm_kkt.x₁ +
      ((OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - (OptProblem.A₂ E₁) admm_kkt.x₂) =
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1) - admm_kkt.x₁) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1) - admm_kkt.x₂)

Tactic:
simp only [map_sub]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_147.{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 : ℕ) :
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1) - admm_kkt.x₁) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1) - admm_kkt.x₂) =
    (OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (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 : ℕ
⊢ (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1) - admm_kkt.x₁) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1) - admm_kkt.x₂) =
    (OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))

Tactic:
rw [e₁, e₂]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_148.{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 : ℕ+)
  (this :
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n.natPred + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n.natPred + 1)) -
        OptProblem.b E₁ E₂ =
      (OptProblem.A₁ E₂) (e₁ (n.natPred + 1)) + (OptProblem.A₂ E₁) (e₂ (n.natPred + 1))) :
  ↑n = n.natPred + 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 : ℕ+
this :
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n.natPred + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n.natPred + 1)) -
      OptProblem.b E₁ E₂ =
    (OptProblem.A₁ E₂) (e₁ (n.natPred + 1)) + (OptProblem.A₂ E₁) (e₂ (n.natPred + 1))
⊢ ↑n = n.natPred + 1

Tactic:
simp only [PNat.natPred_add_one]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_149.{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 : ℕ+)
  (this :
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂ =
      (OptProblem.A₁ E₂) (e₁ ↑n) + (OptProblem.A₂ E₁) (e₂ ↑n))
  (h : ↑n = n.natPred + 1) :
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂ =
    (OptProblem.A₁ E₂) (e₁ ↑n) + (OptProblem.A₂ E₁) (e₂ ↑n) := 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 : ℕ+
this :
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂ =
    (OptProblem.A₁ E₂) (e₁ ↑n) + (OptProblem.A₂ E₁) (e₂ ↑n)
h : ↑n = n.natPred + 1
⊢ (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂ =
    (OptProblem.A₁ E₂) (e₁ ↑n) + (OptProblem.A₂ E₁) (e₂ ↑n)

Tactic:
exact this

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_150.{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} :
  -(ContinuousLinearMap.adjoint (OptProblem.A₁ E₂)) admm_kkt.y ∈ SubderivAt (OptProblem.f₁ E₂ F) admm_kkt.x₁ := sorry

Tactic state before:
case hv
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 : ℕ+
⊢ -(ContinuousLinearMap.adjoint (OptProblem.A₁ E₂)) admm_kkt.y ∈ SubderivAt (OptProblem.f₁ E₂ F) admm_kkt.x₁

Tactic:
exact admm_kkt.h.subgrad₁

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_151.{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} :
  -(ContinuousLinearMap.adjoint (OptProblem.A₂ E₁)) admm_kkt.y ∈ SubderivAt (OptProblem.f₂ E₁ F) admm_kkt.x₂ := sorry

Tactic state before:
case hv
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 : ℕ+
⊢ -(ContinuousLinearMap.adjoint (OptProblem.A₂ E₁)) admm_kkt.y ∈ SubderivAt (OptProblem.f₂ E₁ F) admm_kkt.x₂

Tactic:
exact admm_kkt.h.subgrad₂

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_152.{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 Ae1 := (OptProblem.A₁ E₂) (e₁ (n + 1));
  let e' := e₁ (n + 1);
  let block :=
    -ey (n + 1) -
        ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • ((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))) -
      ADMM.ρ E₁ E₂ F • (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1));
  ⟪block, Ae1⟫_ℝ = ⟪(ContinuousLinearMap.adjoint (OptProblem.A₁ E₂)) block, e'⟫_ℝ := 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 : ℕ
Ae1 : F := (OptProblem.A₁ E₂) (e₁ (n + 1))
e' : E₁ := e₁ (n + 1)
block : F :=
  -ey (n + 1) -
      ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • ((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))) -
    ADMM.ρ E₁ E₂ F • (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1))
u' : E₁ :=
  -(ContinuousLinearMap.adjoint (OptProblem.A₁ E₂))
      (ADMM.y E₁ E₂ (n + 1) +
          ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) •
            ((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))) +
        ADMM.ρ E₁ E₂ F • (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1)))
x_diff : E₁ := ADMM.x₁ E₂ F (n + 1) - admm_kkt.x₁
succ_n : ℕ+ := (n + 1).toPNat'
⊢ ⟪block, Ae1⟫_ℝ = ⟪(ContinuousLinearMap.adjoint (OptProblem.A₁ E₂)) block, e'⟫_ℝ

Tactic:
rw [ContinuousLinearMap.adjoint_inner_left]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_158.{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 : ℕ)
  (split_ey : ey (n + 1) = ADMM.y E₁ E₂ (n + 1) - admm_kkt.y) :
  let A :=
    ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • ((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1)));
  let C := ADMM.y E₁ E₂ (n + 1);
  let D := ADMM.ρ E₁ E₂ F • (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n);
  let E := ADMM.ρ E₁ E₂ F • (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1));
  C + A + -admm_kkt.y + (D - E) = C + A + (D - E) - admm_kkt.y := 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 : ℕ
Ae1 : F := (OptProblem.A₁ E₂) (e₁ (n + 1))
e' : E₁ := e₁ (n + 1)
block : F :=
  -ey (n + 1) -
      ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • ((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))) -
    ADMM.ρ E₁ E₂ F • (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1))
u' : E₁ :=
  -(ContinuousLinearMap.adjoint (OptProblem.A₁ E₂))
      (ADMM.y E₁ E₂ (n + 1) +
          ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) •
            ((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))) +
        ADMM.ρ E₁ E₂ F • (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1)))
x_diff : E₁ := ADMM.x₁ E₂ F (n + 1) - admm_kkt.x₁
succ_n : ℕ+ := (n + 1).toPNat'
block₁ : F :=
  ADMM.y E₁ E₂ (n + 1) +
      ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • ((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))) +
    ADMM.ρ E₁ E₂ F • (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1))
split_ey : ey (n + 1) = ADMM.y E₁ E₂ (n + 1) - admm_kkt.y
A : F := ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • ((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1)))
C : F := ADMM.y E₁ E₂ (n + 1)
D : F := ADMM.ρ E₁ E₂ F • (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n)
E : F := ADMM.ρ E₁ E₂ F • (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1))
⊢ C + A + -admm_kkt.y + (D - E) = C + A + (D - E) - admm_kkt.y

Tactic:
rw [add_assoc, add_comm (-y') (D - E), ← add_assoc, ← sub_eq_add_neg]

Tactic state after: