-- File: optlib/Optlib/Algorithm/ADMM/Lemma.lean
Theorem statement:
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))]

Premises used:
norm_sub_sq : ∀ {𝕜 : Type u_1} {E : Type u_2} [inst : RCLike 𝕜] [inst_2 : SeminormedAddCommGroup E]
  [inst_3 : InnerProductSpace 𝕜 E] (x y : E), ‖x - y‖ ^ 2 = ‖x‖ ^ 2 - 2 * RCLike.re ⟪x, y⟫_𝕜 + ‖y‖ ^ 2