zzhisthebest/LeanBenchmark huggingface dataset:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_31.{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_e_sum := (OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1));
  let A_x_sum := -(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1));
  let ey' := ey (n + 1);
  let Ae1 := (OptProblem.A₁ E₂) (e₁ (n + 1));
  let Ae2 := (OptProblem.A₂ E₁) (e₂ (n + 1));
  ⟪-ey' - ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • A_e_sum, Ae1⟫_ℝ +
        ⟪-ey' - ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • A_e_sum, Ae2⟫_ℝ +
      ADMM.ρ E₁ E₂ F * ⟪A_x_sum, Ae1⟫_ℝ =
    ⟪-ey' - ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • A_e_sum, Ae2⟫_ℝ +
      ⟪-ey' - ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • A_e_sum + ADMM.ρ E₁ E₂ F • A_x_sum, Ae1⟫_ℝ := 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_e_sum : F := (OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))
A_x_sum : F := -(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1))
ey' : F := ey (n + 1)
Ae1 : F := (OptProblem.A₁ E₂) (e₁ (n + 1))
Ae2 : F := (OptProblem.A₂ E₁) (e₂ (n + 1))
⊢ ⟪-ey' - ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • A_e_sum, Ae1⟫_ℝ +
        ⟪-ey' - ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • A_e_sum, Ae2⟫_ℝ +
      ADMM.ρ E₁ E₂ F * ⟪A_x_sum, Ae1⟫_ℝ =
    ⟪-ey' - ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • A_e_sum, Ae2⟫_ℝ +
      ⟪-ey' - ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • A_e_sum + ADMM.ρ E₁ E₂ F • A_x_sum, Ae1⟫_ℝ

Tactic:
rw [inner_add_left, add_assoc]
    rw [inner_smul_left A_x_sum Ae1 ρ, starRingEnd_eq_R, add_comm]
    ring

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_32.{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 : ℕ) :
  ⟪-ey (n + 1) -
          ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • ((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))),
        (OptProblem.A₂ E₁) (e₂ (n + 1))⟫_ℝ +
      ⟪-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)),
        (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_e_sum : F := (OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))
A_x_sum : F := -(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1))
ey' : F := ey (n + 1)
Ae1 : F := (OptProblem.A₁ E₂) (e₁ (n + 1))
Ae2 : F := (OptProblem.A₂ E₁) (e₂ (n + 1))
⊢ ⟪-ey (n + 1) -
          ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • ((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))),
        (OptProblem.A₂ E₁) (e₂ (n + 1))⟫_ℝ +
      ⟪-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)),
        (OptProblem.A₁ E₂) (e₁ (n + 1))⟫_ℝ ≥
    0

Tactic:
apply add_nonneg
    apply expended_v_gt_zero
    apply expended_u_gt_zero

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_33.{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 * ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1) - ADMM.x₂ E₁ F n), (OptProblem.A₂ E₁) (e₂ (n + 1))⟫_ℝ =
      ADMM.ρ E₁ E₂ F *
        ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1)), (OptProblem.A₂ E₁) (e₂ (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))⟫_ℝ =
    ADMM.ρ E₁ E₂ F *
      ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (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 : ℕ
⊢ -ADMM.ρ E₁ E₂ F * ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1) - ADMM.x₂ E₁ F n), (OptProblem.A₂ E₁) (e₂ (n + 1))⟫_ℝ =
    ADMM.ρ E₁ E₂ F * ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1)), (OptProblem.A₂ E₁) (e₂ (n + 1))⟫_ℝ

Tactic:
rw [neg_mul (ρ) (inner (A₂ (x₂ (n + 1) - x₂ n)) (A₂ (e₂ (n + 1))))]
    rw [← mul_neg]
    rw [← inner_neg_left (A₂ (x₂ (n + 1) - x₂ n)) (A₂ (e₂ (n + 1)))]

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 * ⟪-(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1) - ADMM.x₂ E₁ F n), (OptProblem.A₂ E₁) (e₂ (n + 1))⟫_ℝ =
     ADMM.ρ E₁ E₂ F * ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (n + 1)), (OptProblem.A₂ E₁) (e₂ (n + 1))⟫_ℝ]
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_36.{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 pm1 := 1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F);
  let pm2 := (1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F;
  pm1 * ⟪ey (n + 1), ey n - ey (n + 1)⟫_ℝ =
      ⟪ey (n + 1), -((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1)))⟫_ℝ →
    pm2 *
          ‖(OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂‖ ^
            2 =
        pm2 * ‖(OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))‖ ^ 2 →
      -ADMM.ρ E₁ E₂ F *
          ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (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)), (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 : ℕ
pm1 : ℝ := 1 / (ADMM.τ E₁ E₂ F * ADMM.ρ E₁ E₂ F)
pm2 : ℝ := (1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F
h1 :
  pm1 * ⟪ey (n + 1), ey n - ey (n + 1)⟫_ℝ =
    ⟪ey (n + 1), -((OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1)))⟫_ℝ
h2 :
  pm2 *
      ‖(OptProblem.A₁ E₂) (ADMM.x₁ E₂ F (n + 1)) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (n + 1)) - OptProblem.b E₁ E₂‖ ^ 2 =
    pm2 * ‖(OptProblem.A₁ E₂) (e₁ (n + 1)) + (OptProblem.A₂ E₁) (e₂ (n + 1))‖ ^ 2
⊢ -ADMM.ρ E₁ E₂ F * ⟪(OptProblem.A₂ E₁) (ADMM.x₂ E₁ F n - ADMM.x₂ E₁ F (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)), (OptProblem.A₁ E₂) (e₁ (n + 1))⟫_ℝ

Tactic:
rw [neg_mul (ρ) (inner (A₂ (x₂ (n) - x₂ (n + 1))) (A₁ (e₁ (n + 1))))]
    rw [← mul_neg]
    rw [← inner_neg_left (A₂ (x₂ (n) - x₂ (n + 1))) (A₁ (e₁ (n + 1)))]

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_38.{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 :
    -(ContinuousLinearMap.adjoint (OptProblem.A₂ E₁)) (υ ↑n) ∈ SubderivAt (OptProblem.f₂ E₁ F) (ADMM.x₂ E₁ F ↑n)) :
  v ↑n ∈ SubderivAt (OptProblem.f₂ E₁ F) (ADMM.x₂ E₁ F ↑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 : ℕ+
⊢ -(ContinuousLinearMap.adjoint (OptProblem.A₂ E₁)) (υ ↑n) ∈ SubderivAt (OptProblem.f₂ E₁ F) (ADMM.x₂ E₁ F ↑n)

Tactic:
rw [υ]
    have : v n = -A₂† (y n + ((1 - τ) * ρ) • (A₁ (e₁ n) + A₂ (e₂ n))) := rfl
    rw [Φ_isdescending_eq3', ← this]

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 : ℕ+
 this :
   v ↑n =
     -(ContinuousLinearMap.adjoint (OptProblem.A₂ E₁))
         (ADMM.y E₁ E₂ ↑n +
           ((1 - ADMM.τ E₁ E₂ F) * ADMM.ρ E₁ E₂ F) • ((OptProblem.A₁ E₂) (e₁ ↑n) + (OptProblem.A₂ E₁) (e₂ ↑n)))
 ⊢ v ↑n ∈ SubderivAt (OptProblem.f₂ E₁ F) (ADMM.x₂ E₁ F ↑n)]
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_43.{u_4} {X : Type u_4} [inst : NormedAddCommGroup X] [inst_1 : InnerProductSpace ℝ X]
  (a₁ a₂ : X) : ⟪a₁, a₂⟫_ℝ = 1 / 2 * (‖a₁‖ ^ 2 + ‖a₂‖ ^ 2 - ‖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₂]
    ring_nf
    rfl

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_44.{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 * ((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]
    simp only [one_div, mul_inv_rev]
    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 : ℕ
 ⊢ (ADMM.τ E₁ E₂ F * (ADMM.ρ E₁ E₂ F * ((ADMM.ρ E₁ E₂ F)⁻¹ * (ADMM.τ E₁ E₂ F)⁻¹))) • (ey (n + 1) - ey n) =
     ey (n + 1) - ey n]
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

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

Tactic:
rw [mul_inv_cancel₀, one_mul, mul_inv_cancel₀, one_smul]
    rcases admm.htau with ⟨h₁, _⟩
    apply ne_of_gt h₁

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 ≠ 0]
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_56.{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} (n : ℕ+) (h : ADMM.τ E₁ E₂ F ≥ 0) (h₁ : √(ADMM.τ E₁ E₂ F) ^ 2 = ADMM.τ E₁ E₂ F)
  (h₂ : (ADMM.τ E₁ E₂ F)⁻¹ = (√(ADMM.τ E₁ E₂ F))⁻¹ ^ 2) :
  let S1 := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n);
  let S2 := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂;
  let s1 := √(ADMM.τ E₁ E₂ F);
  s1 ^ 2 * ‖S1‖ ^ 2 = ‖s1 • S1‖ ^ 2 →
    s1⁻¹ ^ 2 * ‖S2‖ ^ 2 = ‖s1⁻¹ • S2‖ ^ 2 → s1 = √(ADMM.τ E₁ E₂ F) → s1 ≠ 0 → 0 < ADMM.τ E₁ E₂ F := 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
n : ℕ+
h : ADMM.τ E₁ E₂ F ≥ 0
h₁ : √(ADMM.τ E₁ E₂ F) ^ 2 = ADMM.τ E₁ E₂ F
h₂ : (ADMM.τ E₁ E₂ F)⁻¹ = (√(ADMM.τ E₁ E₂ F))⁻¹ ^ 2
S1 : F := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n)
S2 : F := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂
s1 : ℝ := √(ADMM.τ E₁ E₂ F)
h1 : s1 ^ 2 * ‖S1‖ ^ 2 = ‖s1 • S1‖ ^ 2
h2 : s1⁻¹ ^ 2 * ‖S2‖ ^ 2 = ‖s1⁻¹ • S2‖ ^ 2
h₃ : s1 = √(ADMM.τ E₁ E₂ F)
⊢ s1 ≠ 0

Tactic:
rw [h₃]
    apply Real.sqrt_ne_zero'.mpr
    rcases admm.htau with ⟨h₁, _⟩

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
 n : ℕ+
 h : ADMM.τ E₁ E₂ F ≥ 0
 h₁✝ : √(ADMM.τ E₁ E₂ F) ^ 2 = ADMM.τ E₁ E₂ F
 h₂ : (ADMM.τ E₁ E₂ F)⁻¹ = (√(ADMM.τ E₁ E₂ F))⁻¹ ^ 2
 S1 : F := (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F (↑n + 1) - ADMM.x₂ E₁ F ↑n)
 S2 : F := (OptProblem.A₁ E₂) (ADMM.x₁ E₂ F ↑n) + (OptProblem.A₂ E₁) (ADMM.x₂ E₁ F ↑n) - OptProblem.b E₁ E₂
 s1 : ℝ := √(ADMM.τ E₁ E₂ F)
 h1 : s1 ^ 2 * ‖S1‖ ^ 2 = ‖s1 • S1‖ ^ 2
 h2 : s1⁻¹ ^ 2 * ‖S2‖ ^ 2 = ‖s1⁻¹ • S2‖ ^ 2
 h₃ : s1 = √(ADMM.τ E₁ E₂ F)
 h₁ : 0 < ADMM.τ E₁ E₂ F
 right✝ : ADMM.τ E₁ E₂ F < (1 + √5) / 2
 ⊢ 0 < ADMM.τ E₁ E₂ F]
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_60.{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} (h1 : 0 < ADMM.τ E₁ E₂ F) (h2 : ADMM.τ E₁ E₂ F ≤ 1) :
  ADMM.τ E₁ E₂ F ⊓ (1 + ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F ^ 2) = ADMM.τ E₁ E₂ F := 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
h1 : 0 < ADMM.τ E₁ E₂ F
h2 : ADMM.τ E₁ E₂ F ≤ 1
⊢ ADMM.τ E₁ E₂ F ⊓ (1 + ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F ^ 2) = ADMM.τ E₁ E₂ F

Tactic:
apply min_eq_left
    have h3 : τ ^ 2 ≤ 1 := by nlinarith
    linarith

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_61.{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) :
  ADMM.τ E₁ E₂ F ⊓ (1 + ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F ^ 2) = 1 + ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F ^ 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
h : ADMM.τ E₁ E₂ F > 1
⊢ ADMM.τ E₁ E₂ F ⊓ (1 + ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F ^ 2) = 1 + ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F ^ 2

Tactic:
apply min_eq_right
    have : 1 < τ ^ 2 := by nlinarith
    linarith

Tactic state after:
import Mathlib
import Optlib


open Set InnerProductSpace Topology Filter InnerProduct

open scoped Pointwise

theorem extracted_formal_statement_62.{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} (h1 : 0 < ADMM.τ E₁ E₂ F) (h2 : ADMM.τ E₁ E₂ F ≤ 1) :
  1 ⊓ (1 + 1 / ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F) = 1 := 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
h1 : 0 < ADMM.τ E₁ E₂ F
h2 : ADMM.τ E₁ E₂ F ≤ 1
⊢ 1 ⊓ (1 + 1 / ADMM.τ E₁ E₂ F - ADMM.τ E₁ E₂ F) = 1

Tactic:
apply min_eq_left
    have h3 : τ ≤ 1 / τ :=
  calc
    _ ≤ 1 := h2
    _ ≤ 1 / τ := by apply one_le_one_div h1 h2
    linarith

Tactic state after: