Theorem: _private.Mathlib.Analysis.InnerProductSpace.OfNorm.0.InnerProductSpaceable.I_prop
File: Mathlib/Analysis/InnerProductSpace/OfNorm.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
⊢ InnerProductSpaceable.innerProp' E I
state_after: case pos
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : I = 0
⊢ InnerProductSpaceable.innerProp' E I

case neg
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
⊢ InnerProductSpaceable.innerProp' E I
tactic: by_cases hI : (I : 𝕜) = 0
state_before: case neg
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
⊢ InnerProductSpaceable.innerProp' E I
state_after: case neg
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
⊢ inner_ 𝕜 (I • x) y = (starRingEnd 𝕜) I * inner_ 𝕜 x y
tactic: intro x y
state_before: case neg
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
⊢ inner_ 𝕜 (I • x) y = (starRingEnd 𝕜) I * inner_ 𝕜 x y
state_after: case neg
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
⊢ inner_ 𝕜 (I • x) y = (starRingEnd 𝕜) I * inner_ 𝕜 x y
tactic: have hI' : (-I : 𝕜) * I = 1 := by rw [← inv_I, inv_mul_cancel hI]
state_before: case neg
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
⊢ inner_ 𝕜 (I • x) y = (starRingEnd 𝕜) I * inner_ 𝕜 x y
state_after: case neg
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
⊢ 4⁻¹ *
      (𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖I • I • x + y‖ * 𝓚 ‖I • I • x + y‖ -
        I * 𝓚 ‖I • I • x - y‖ * 𝓚 ‖I • I • x - y‖) =
    4⁻¹ *
      (-I *
        (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖ - 𝓚 ‖x - y‖ * 𝓚 ‖x - y‖ + I * 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
          I * 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖))
tactic: rw [conj_I, inner_, inner_, mul_left_comm]
state_before: case neg
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
⊢ 4⁻¹ *
      (𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖I • I • x + y‖ * 𝓚 ‖I • I • x + y‖ -
        I * 𝓚 ‖I • I • x - y‖ * 𝓚 ‖I • I • x - y‖) =
    4⁻¹ *
      (-I *
        (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖ - 𝓚 ‖x - y‖ * 𝓚 ‖x - y‖ + I * 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
          I * 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖))
state_after: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖I • I • x + y‖ * 𝓚 ‖I • I • x + y‖ -
      I * 𝓚 ‖I • I • x - y‖ * 𝓚 ‖I • I • x - y‖ =
    -I *
      (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖ - 𝓚 ‖x - y‖ * 𝓚 ‖x - y‖ + I * 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
        I * 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖)
tactic: congr 1
state_before: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖I • I • x + y‖ * 𝓚 ‖I • I • x + y‖ -
      I * 𝓚 ‖I • I • x - y‖ * 𝓚 ‖I • I • x - y‖ =
    -I *
      (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖ - 𝓚 ‖x - y‖ * 𝓚 ‖x - y‖ + I * 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
        I * 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖)
state_after: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖-x + y‖ * 𝓚 ‖-x + y‖ -
      I * 𝓚 ‖-x - y‖ * 𝓚 ‖-x - y‖ =
    -I *
      (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖ - 𝓚 ‖x - y‖ * 𝓚 ‖x - y‖ + I * 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
        I * 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖)
tactic: rw [smul_smul, I_mul_I_of_nonzero hI, neg_one_smul]
state_before: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖-x + y‖ * 𝓚 ‖-x + y‖ -
      I * 𝓚 ‖-x - y‖ * 𝓚 ‖-x - y‖ =
    -I *
      (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖ - 𝓚 ‖x - y‖ * 𝓚 ‖x - y‖ + I * 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
        I * 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖)
state_after: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖-x + y‖ * 𝓚 ‖-x + y‖ -
      I * 𝓚 ‖-x - y‖ * 𝓚 ‖-x - y‖ =
    -I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖) - -I * (𝓚 ‖x - y‖ * 𝓚 ‖x - y‖) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
      𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖
tactic: rw [mul_sub, mul_add, mul_sub, mul_assoc I (𝓚 ‖I • x - y‖), ← mul_assoc (-I) I, hI', one_mul,
    mul_assoc I (𝓚 ‖I • x + y‖), ← mul_assoc (-I) I, hI', one_mul]
state_before: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖-x + y‖ * 𝓚 ‖-x + y‖ -
      I * 𝓚 ‖-x - y‖ * 𝓚 ‖-x - y‖ =
    -I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖) - -I * (𝓚 ‖x - y‖ * 𝓚 ‖x - y‖) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
      𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖
state_after: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
h₁ : ‖-x - y‖ = ‖x + y‖
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖-x + y‖ * 𝓚 ‖-x + y‖ -
      I * 𝓚 ‖-x - y‖ * 𝓚 ‖-x - y‖ =
    -I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖) - -I * (𝓚 ‖x - y‖ * 𝓚 ‖x - y‖) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
      𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖
tactic: have h₁ : ‖-x - y‖ = ‖x + y‖ := by rw [← neg_add', norm_neg]
state_before: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
h₁ : ‖-x - y‖ = ‖x + y‖
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖-x + y‖ * 𝓚 ‖-x + y‖ -
      I * 𝓚 ‖-x - y‖ * 𝓚 ‖-x - y‖ =
    -I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖) - -I * (𝓚 ‖x - y‖ * 𝓚 ‖x - y‖) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
      𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖
state_after: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
h₁ : ‖-x - y‖ = ‖x + y‖
h₂ : ‖-x + y‖ = ‖x - y‖
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖-x + y‖ * 𝓚 ‖-x + y‖ -
      I * 𝓚 ‖-x - y‖ * 𝓚 ‖-x - y‖ =
    -I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖) - -I * (𝓚 ‖x - y‖ * 𝓚 ‖x - y‖) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
      𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖
tactic: have h₂ : ‖-x + y‖ = ‖x - y‖ := by rw [← neg_sub, norm_neg, sub_eq_neg_add]
state_before: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
h₁ : ‖-x - y‖ = ‖x + y‖
h₂ : ‖-x + y‖ = ‖x - y‖
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖-x + y‖ * 𝓚 ‖-x + y‖ -
      I * 𝓚 ‖-x - y‖ * 𝓚 ‖-x - y‖ =
    -I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖) - -I * (𝓚 ‖x - y‖ * 𝓚 ‖x - y‖) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
      𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖
state_after: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
h₁ : ‖-x - y‖ = ‖x + y‖
h₂ : ‖-x + y‖ = ‖x - y‖
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖x - y‖ * 𝓚 ‖x - y‖ -
      I * 𝓚 ‖x + y‖ * 𝓚 ‖x + y‖ =
    -I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖) - -I * (𝓚 ‖x - y‖ * 𝓚 ‖x - y‖) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
      𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖
tactic: rw [h₁, h₂]
state_before: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
h₁ : ‖-x - y‖ = ‖x + y‖
h₂ : ‖-x + y‖ = ‖x - y‖
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ - 𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖ + I * 𝓚 ‖x - y‖ * 𝓚 ‖x - y‖ -
      I * 𝓚 ‖x + y‖ * 𝓚 ‖x + y‖ =
    -I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖) - -I * (𝓚 ‖x - y‖ * 𝓚 ‖x - y‖) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ -
      𝓚 ‖I • x - y‖ * 𝓚 ‖I • x - y‖
state_after: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
h₁ : ‖-x - y‖ = ‖x + y‖
h₂ : ‖-x + y‖ = ‖x - y‖
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ + -(𝓚 ‖I • x + -y‖ * 𝓚 ‖I • x + -y‖) + I * (𝓚 ‖x + -y‖ * 𝓚 ‖x + -y‖) +
      -(I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖)) =
    -I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖) + -(-I * (𝓚 ‖x + -y‖ * 𝓚 ‖x + -y‖)) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ +
      -(𝓚 ‖I • x + -y‖ * 𝓚 ‖I • x + -y‖)
tactic: simp only [sub_eq_add_neg, mul_assoc]
state_before: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
h₁ : ‖-x - y‖ = ‖x + y‖
h₂ : ‖-x + y‖ = ‖x - y‖
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ + -(𝓚 ‖I • x + -y‖ * 𝓚 ‖I • x + -y‖) + I * (𝓚 ‖x + -y‖ * 𝓚 ‖x + -y‖) +
      -(I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖)) =
    -I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖) + -(-I * (𝓚 ‖x + -y‖ * 𝓚 ‖x + -y‖)) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ +
      -(𝓚 ‖I • x + -y‖ * 𝓚 ‖I • x + -y‖)
state_after: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
h₁ : ‖-x - y‖ = ‖x + y‖
h₂ : ‖-x + y‖ = ‖x - y‖
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ + -(𝓚 ‖I • x + -y‖ * 𝓚 ‖I • x + -y‖) + I * (𝓚 ‖x + -y‖ * 𝓚 ‖x + -y‖) +
      -(I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖)) =
    -(I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖)) + - -(I * (𝓚 ‖x + -y‖ * 𝓚 ‖x + -y‖)) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ +
      -(𝓚 ‖I • x + -y‖ * 𝓚 ‖I • x + -y‖)
tactic: rw [← neg_mul_eq_neg_mul, ← neg_mul_eq_neg_mul]
state_before: case neg.e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
hI : ¬I = 0
x y : E
hI' : -I * I = 1
h₁ : ‖-x - y‖ = ‖x + y‖
h₂ : ‖-x + y‖ = ‖x - y‖
⊢ 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ + -(𝓚 ‖I • x + -y‖ * 𝓚 ‖I • x + -y‖) + I * (𝓚 ‖x + -y‖ * 𝓚 ‖x + -y‖) +
      -(I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖)) =
    -(I * (𝓚 ‖x + y‖ * 𝓚 ‖x + y‖)) + - -(I * (𝓚 ‖x + -y‖ * 𝓚 ‖x + -y‖)) + 𝓚 ‖I • x + y‖ * 𝓚 ‖I • x + y‖ +
      -(𝓚 ‖I • x + -y‖ * 𝓚 ‖I • x + -y‖)
state_after: no goals
tactic: abel