Theorem: InnerProductSpace.Core.cauchy_schwarz_aux
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ normSq (⟪x, y⟫_𝕜 • x - ⟪x, x⟫_𝕜 • y) = normSq x * (normSq x * normSq y - ‖⟪x, y⟫_𝕜‖ ^ 2)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ⟪⟪x, y⟫_𝕜 • x - ⟪x, x⟫_𝕜 • y, ⟪x, y⟫_𝕜 • x - ⟪x, x⟫_𝕜 • y⟫_𝕜 = ↑(normSq x * (normSq x * normSq y - ‖⟪x, y⟫_𝕜‖ ^ 2))
tactic: rw [← @ofReal_inj 𝕜, ofReal_normSq_eq_inner_self]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ⟪⟪x, y⟫_𝕜 • x - ⟪x, x⟫_𝕜 • y, ⟪x, y⟫_𝕜 • x - ⟪x, x⟫_𝕜 • y⟫_𝕜 = ↑(normSq x * (normSq x * normSq y - ‖⟪x, y⟫_𝕜‖ ^ 2))
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ⟪x, y⟫_𝕜 * ((starRingEnd 𝕜) ⟪x, y⟫_𝕜 * ↑(normSq x)) - ↑(normSq x) * ((starRingEnd 𝕜) ⟪x, y⟫_𝕜 * ⟪x, y⟫_𝕜) -
        ⟪x, y⟫_𝕜 * (↑(normSq x) * ⟪y, x⟫_𝕜) +
      ↑(normSq x) * (↑(normSq x) * ↑(normSq y)) =
    ↑(normSq x * (normSq x * normSq y) - normSq x * ‖⟪x, y⟫_𝕜‖ ^ 2)
tactic: simp only [inner_sub_sub_self, inner_smul_left, inner_smul_right, conj_ofReal, mul_sub, ←
    ofReal_normSq_eq_inner_self x, ← ofReal_normSq_eq_inner_self y]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ⟪x, y⟫_𝕜 * ((starRingEnd 𝕜) ⟪x, y⟫_𝕜 * ↑(normSq x)) - ↑(normSq x) * ((starRingEnd 𝕜) ⟪x, y⟫_𝕜 * ⟪x, y⟫_𝕜) -
        ⟪x, y⟫_𝕜 * (↑(normSq x) * ⟪y, x⟫_𝕜) +
      ↑(normSq x) * (↑(normSq x) * ↑(normSq y)) =
    ↑(normSq x * (normSq x * normSq y) - normSq x * ‖⟪x, y⟫_𝕜‖ ^ 2)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ↑‖⟪x, y⟫_𝕜‖ ^ 2 * ↑(normSq x) - ↑(normSq x) * ↑‖⟪x, y⟫_𝕜‖ ^ 2 - ↑(normSq x) * ↑‖⟪x, y⟫_𝕜‖ ^ 2 +
      ↑(normSq x) * (↑(normSq x) * ↑(normSq y)) =
    ↑(normSq x * (normSq x * normSq y) - normSq x * ‖⟪x, y⟫_𝕜‖ ^ 2)
tactic: rw [← mul_assoc, mul_conj, RCLike.conj_mul, mul_left_comm, ← inner_conj_symm y, mul_conj]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ↑‖⟪x, y⟫_𝕜‖ ^ 2 * ↑(normSq x) - ↑(normSq x) * ↑‖⟪x, y⟫_𝕜‖ ^ 2 - ↑(normSq x) * ↑‖⟪x, y⟫_𝕜‖ ^ 2 +
      ↑(normSq x) * (↑(normSq x) * ↑(normSq y)) =
    ↑(normSq x * (normSq x * normSq y) - normSq x * ‖⟪x, y⟫_𝕜‖ ^ 2)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ↑‖⟪x, y⟫_𝕜‖ ^ 2 * ↑(normSq x) - ↑(normSq x) * ↑‖⟪x, y⟫_𝕜‖ ^ 2 - ↑(normSq x) * ↑‖⟪x, y⟫_𝕜‖ ^ 2 +
      ↑(normSq x) * (↑(normSq x) * ↑(normSq y)) =
    ↑(normSq x) * (↑(normSq x) * ↑(normSq y)) - ↑(normSq x) * ↑‖⟪x, y⟫_𝕜‖ ^ 2
tactic: push_cast
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ↑‖⟪x, y⟫_𝕜‖ ^ 2 * ↑(normSq x) - ↑(normSq x) * ↑‖⟪x, y⟫_𝕜‖ ^ 2 - ↑(normSq x) * ↑‖⟪x, y⟫_𝕜‖ ^ 2 +
      ↑(normSq x) * (↑(normSq x) * ↑(normSq y)) =
    ↑(normSq x) * (↑(normSq x) * ↑(normSq y)) - ↑(normSq x) * ↑‖⟪x, y⟫_𝕜‖ ^ 2
state_after: no goals
tactic: ring