zzhisthebest/LeanBenchmark huggingface dataset:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_244.{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 r_n := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂;
  let r_n_1 :=
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂;
  ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n_1 = υ (↑n + 1) - ADMM.y E₁ E₂ (↑n + 1) →
    ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n = υ ↑n - 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 : ℕ+
A₂_x_diff : F := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n)
r_n : F := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂
r_n_1 : F :=
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂
υ_diff : F := υ (↑n + 1) - υ ↑n
y_diff : F := ADMM.y E₁ E₂ (↑n + 1) - ADMM.y E₁ E₂ ↑n
x_diff : E₂ := ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n
A₂T : F →L[ℝ] E₂ := ContinuousLinearMap.adjoint (OptProblem.A₂ E₁)
h1 : ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n_1 = υ (↑n + 1) - ADMM.y E₁ E₂ (↑n + 1)
⊢ ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n = υ ↑n - ADMM.y E₁ E₂ ↑n

Tactic:
rw [υ, add_sub_assoc, add_sub_left_comm, sub_self, add_zero]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_245.{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 r_n := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂;
  let r_n_1 :=
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂;
  let υ_diff := υ (↑n + 1) - υ ↑n;
  let y_diff := ADMM.y E₁ E₂ (↑n + 1) - ADMM.y E₁ E₂ ↑n;
  ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n_1 = υ (↑n + 1) - ADMM.y E₁ E₂ (↑n + 1) →
    ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n = υ ↑n - ADMM.y E₁ E₂ ↑n →
      ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n_1 - ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n =
        υ_diff - y_diff := 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 : ℕ+
A₂_x_diff : F := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n)
r_n : F := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂
r_n_1 : F :=
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂
υ_diff : F := υ (↑n + 1) - υ ↑n
y_diff : F := ADMM.y E₁ E₂ (↑n + 1) - ADMM.y E₁ E₂ ↑n
x_diff : E₂ := ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n
A₂T : F →L[ℝ] E₂ := ContinuousLinearMap.adjoint (OptProblem.A₂ E₁)
h1 : ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n_1 = υ (↑n + 1) - ADMM.y E₁ E₂ (↑n + 1)
h2 : ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n = υ ↑n - ADMM.y E₁ E₂ ↑n
⊢ ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n_1 - ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • r_n = υ_diff - y_diff

Tactic:
rw [h1, h2, sub_sub_eq_add_sub, sub_add_comm, add_sub_assoc, sub_add_comm, sub_add]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_246.{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 A₂_x_diff := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n);
  let r_n := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂;
  let r_n_1 :=
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂;
  let υ_diff := υ (↑n + 1) - υ ↑n;
  let y_diff := ADMM.y E₁ E₂ (↑n + 1) - ADMM.y E₁ E₂ ↑n;
  ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • (r_n_1 - r_n) = υ_diff - y_diff →
    ⟪A₂_x_diff, ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • (r_n_1 - r_n)⟫_ℝ + M (n + 1) + ⟪A₂_x_diff, y_diff⟫_ℝ =
      ⟪A₂_x_diff, υ_diff - y_diff⟫_ℝ + M (n + 1) + ⟪A₂_x_diff, y_diff⟫_ℝ := 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 : ℕ+
A₂_x_diff : F := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n)
r_n : F := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂
r_n_1 : F :=
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂
υ_diff : F := υ (↑n + 1) - υ ↑n
y_diff : F := ADMM.y E₁ E₂ (↑n + 1) - ADMM.y E₁ E₂ ↑n
x_diff : E₂ := ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n
A₂T : F →L[ℝ] E₂ := ContinuousLinearMap.adjoint (OptProblem.A₂ E₁)
this : ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • (r_n_1 - r_n) = υ_diff - y_diff
⊢ ⟪A₂_x_diff, ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • (r_n_1 - r_n)⟫_ℝ + M (n + 1) + ⟪A₂_x_diff, y_diff⟫_ℝ =
    ⟪A₂_x_diff, υ_diff - y_diff⟫_ℝ + M (n + 1) + ⟪A₂_x_diff, y_diff⟫_ℝ

Tactic:
rw [this]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_248.{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 A₂_x_diff := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n);
  let υ_diff := υ (↑n + 1) - υ ↑n;
  M (n + 1) + ⟪A₂_x_diff, υ_diff⟫_ℝ = M (n + 1) + ⟪υ_diff, A₂_x_diff⟫_ℝ := 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 : ℕ+
A₂_x_diff : F := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n)
r_n : F := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂
r_n_1 : F :=
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂
υ_diff : F := υ (↑n + 1) - υ ↑n
y_diff : F := ADMM.y E₁ E₂ (↑n + 1) - ADMM.y E₁ E₂ ↑n
x_diff : E₂ := ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n
A₂T : F →L[ℝ] E₂ := ContinuousLinearMap.adjoint (OptProblem.A₂ E₁)
⊢ M (n + 1) + ⟪A₂_x_diff, υ_diff⟫_ℝ = M (n + 1) + ⟪υ_diff, A₂_x_diff⟫_ℝ

Tactic:
rw [real_inner_comm]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_251.{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 A₂_x_diff := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n);
  let r_n_1 :=
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂;
  let υ_diff := υ (↑n + 1) - υ ↑n;
  let x_diff := ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n;
  let A₂T := ContinuousLinearMap.adjoint (OptProblem.A₂ E₁);
  ADMM.ρ E₁ E₂ F * ⟪A₂_x_diff, r_n_1⟫_ℝ = M (n + 1) + ⟪υ_diff, A₂_x_diff⟫_ℝ →
    ⟪υ_diff, A₂_x_diff⟫_ℝ = ⟪A₂T υ_diff, x_diff⟫_ℝ := 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 : ℕ+
A₂_x_diff : F := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n)
r_n : F := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂
r_n_1 : F :=
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂
υ_diff : F := υ (↑n + 1) - υ ↑n
y_diff : F := ADMM.y E₁ E₂ (↑n + 1) - ADMM.y E₁ E₂ ↑n
x_diff : E₂ := ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n
A₂T : F →L[ℝ] E₂ := ContinuousLinearMap.adjoint (OptProblem.A₂ E₁)
h : ADMM.ρ E₁ E₂ F * ⟪A₂_x_diff, r_n_1⟫_ℝ = M (n + 1) + ⟪υ_diff, A₂_x_diff⟫_ℝ
⊢ ⟪υ_diff, A₂_x_diff⟫_ℝ = ⟪A₂T υ_diff, x_diff⟫_ℝ

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_255.{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 A₂_x_diff := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n);
  let r_n_1 :=
    (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂;
  let υ_diff := υ (↑n + 1) - υ ↑n;
  let x_diff := ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n;
  let A₂T := ContinuousLinearMap.adjoint (OptProblem.A₂ E₁);
  ADMM.ρ E₁ E₂ F * ⟪A₂_x_diff, r_n_1⟫_ℝ = M (n + 1) + ⟪υ_diff, A₂_x_diff⟫_ℝ →
    ⟪υ_diff, A₂_x_diff⟫_ℝ = ⟪A₂T υ_diff, x_diff⟫_ℝ → 0 ≤ ⟪-A₂T υ_diff, x_diff⟫_ℝ := 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 : ℕ+
A₂_x_diff : F := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n)
r_n : F := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂
r_n_1 : F :=
  (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂
υ_diff : F := υ (↑n + 1) - υ ↑n
y_diff : F := ADMM.y E₁ E₂ (↑n + 1) - ADMM.y E₁ E₂ ↑n
x_diff : E₂ := ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n
A₂T : F →L[ℝ] E₂ := ContinuousLinearMap.adjoint (OptProblem.A₂ E₁)
h : ADMM.ρ E₁ E₂ F * ⟪A₂_x_diff, r_n_1⟫_ℝ = M (n + 1) + ⟪υ_diff, A₂_x_diff⟫_ℝ
this : ⟪υ_diff, A₂_x_diff⟫_ℝ = ⟪A₂T υ_diff, x_diff⟫_ℝ
⊢ 0 ≤ ⟪-A₂T υ_diff, x_diff⟫_ℝ

Tactic:
apply Φ_isdescending_inequ2

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_256.{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 b0 := M (n + 1);
  let d :=
    ADMM.ρ E₁ E₂ F *
      ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n),
        (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂⟫_ℝ;
  d ≤ b0 := 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 : ℕ+
a : ℝ :=
  1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) * ⟪ey (↑n + 1), ey ↑n - ey (↑n + 1)⟫_ℝ -
    (1 - 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₂‖ ^ 2
b0 : ℝ := M (n + 1)
c : ℝ :=
  ADMM.ρ E₁ E₂ F * ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n), (OptProblem.A₂ E₁) (e₂ (↑n + 1))⟫_ℝ
d : ℝ :=
  ADMM.ρ E₁ E₂ F *
    ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n),
      (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂⟫_ℝ
⊢ d ≤ b0

Tactic:
apply Φ_isdescending_inequ3

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_257.{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 a :=
    1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) * ⟪ey (↑n + 1), ey ↑n - ey (↑n + 1)⟫_ℝ -
      (1 - 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₂‖ ^
          2;
  let b0 := M (n + 1);
  let c :=
    ADMM.ρ E₁ E₂ F * ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n), (OptProblem.A₂ E₁) (e₂ (↑n + 1))⟫_ℝ;
  let d :=
    ADMM.ρ E₁ E₂ F *
      ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n),
        (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂⟫_ℝ;
  d ≤ b0 → a + d - c ≥ 0 := 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 : ℕ+
a : ℝ :=
  1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) * ⟪ey (↑n + 1), ey ↑n - ey (↑n + 1)⟫_ℝ -
    (1 - 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₂‖ ^ 2
b0 : ℝ := M (n + 1)
c : ℝ :=
  ADMM.ρ E₁ E₂ F * ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n), (OptProblem.A₂ E₁) (e₂ (↑n + 1))⟫_ℝ
d : ℝ :=
  ADMM.ρ E₁ E₂ F *
    ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n),
      (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂⟫_ℝ
dleqb : d ≤ b0
⊢ a + d - c ≥ 0

Tactic:
apply Φ_isdescending_inequ1

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_258.{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 : ℕ+) :
  1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) * ⟪ey (↑n + 1), ey ↑n - ey (↑n + 1)⟫_ℝ -
          (1 - 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₂‖ ^
              2 +
        M (n + 1) -
      ADMM.ρ E₁ E₂ F *
        ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n), (OptProblem.A₂ E₁) (e₂ (↑n + 1))⟫_ℝ ≥
    0 := 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 : ℕ+
a : ℝ :=
  1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) * ⟪ey (↑n + 1), ey ↑n - ey (↑n + 1)⟫_ℝ -
    (1 - 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₂‖ ^ 2
b0 : ℝ := M (n + 1)
c : ℝ :=
  ADMM.ρ E₁ E₂ F * ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n), (OptProblem.A₂ E₁) (e₂ (↑n + 1))⟫_ℝ
d : ℝ :=
  ADMM.ρ E₁ E₂ F *
    ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n),
      (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (↑n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1)) - OptProblem.b E₁ E₂⟫_ℝ
dleqb : d ≤ b0
h : a + d - c ≥ 0
this : a + b0 - c ≥ 0
⊢ 1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) * ⟪ey (↑n + 1), ey ↑n - ey (↑n + 1)⟫_ℝ -
          (1 - 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₂‖ ^
              2 +
        M (n + 1) -
      ADMM.ρ E₁ E₂ F *
        ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n), (OptProblem.A₂ E₁) (e₂ (↑n + 1))⟫_ℝ ≥
    0

Tactic:
exact this

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_259.{u_4} {X : Type u_4} [inst : NormedAddCommGroup X] [inst_1 : InnerProductSpace ℝ X]
  (a₁ a₂ : X) (h_original_goal : ⟪a₁, a₂⟫_ℝ = 1 / 2 * (‖a₁‖ ^ 2 + ‖a₂‖ ^ 2 - ‖a₁ - a₂‖ ^ 2)) :
  ⟪a₁, a₂⟫_ℝ = 1 / 2 * (‖a₁‖ ^ 2 + ‖a₂‖ ^ 2 - (‖a₁‖ ^ 2 - 2 * RCLike.re ⟪a₁, a₂⟫_ℝ + ‖a₂‖ ^ 2)) := sorry

Tactic state before:
X : Type u_4
inst✝¹ : NormedAddCommGroup X
inst✝ : InnerProductSpace ℝ X
a₁ a₂ : X
⊢ ⟪a₁, a₂⟫_ℝ = 1 / 2 * (‖a₁‖ ^ 2 + ‖a₂‖ ^ 2 - ‖a₁ - a₂‖ ^ 2)

Tactic:
rw [norm_sub_sq (𝕜 := ℝ) a₁ a₂]

Tactic state after:
[X : Type u_4
 inst✝¹ : NormedAddCommGroup X
 inst✝ : InnerProductSpace ℝ X
 a₁ a₂ : X
 ⊢ ⟪a₁, a₂⟫_ℝ = 1 / 2 * (‖a₁‖ ^ 2 + ‖a₂‖ ^ 2 - (‖a₁‖ ^ 2 - 2 * RCLike.re ⟪a₁, a₂⟫_ℝ + ‖a₂‖ ^ 2))]
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

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

Tactic:
rw [Φ_isdescending_eq1, Φ_isdescending_eq2]

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 : ℕ
 ⊢ (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F) • (1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)) • (ey (n + 1) - ey n) =
     ey (n + 1) - ey n]