Theorem: InnerProductSpaceable.add_left
File: Mathlib/Analysis/InnerProductSpace/OfNorm.lean

tactic: simp only [inner_, ← mul_add]
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ inner_ 𝕜 (x + y) z = inner_ 𝕜 x z + inner_ 𝕜 y z
state_after: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 4⁻¹ *
      (𝓚 ‖x + y + z‖ * 𝓚 ‖x + y + z‖ - 𝓚 ‖x + y - z‖ * 𝓚 ‖x + y - z‖ + I * 𝓚 ‖I • (x + y) + z‖ * 𝓚 ‖I • (x + y) + z‖ -
        I * 𝓚 ‖I • (x + y) - z‖ * 𝓚 ‖I • (x + y) - z‖) =
    4⁻¹ *
      (𝓚 ‖x + z‖ * 𝓚 ‖x + z‖ - 𝓚 ‖x - z‖ * 𝓚 ‖x - z‖ + I * 𝓚 ‖I • x + z‖ * 𝓚 ‖I • x + z‖ -
          I * 𝓚 ‖I • x - z‖ * 𝓚 ‖I • x - z‖ +
        (𝓚 ‖y + z‖ * 𝓚 ‖y + z‖ - 𝓚 ‖y - z‖ * 𝓚 ‖y - z‖ + I * 𝓚 ‖I • y + z‖ * 𝓚 ‖I • y + z‖ -
          I * 𝓚 ‖I • y - z‖ * 𝓚 ‖I • y - z‖))

tactic: congr
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 4⁻¹ *
      (𝓚 ‖x + y + z‖ * 𝓚 ‖x + y + z‖ - 𝓚 ‖x + y - z‖ * 𝓚 ‖x + y - z‖ + I * 𝓚 ‖I • (x + y) + z‖ * 𝓚 ‖I • (x + y) + z‖ -
        I * 𝓚 ‖I • (x + y) - z‖ * 𝓚 ‖I • (x + y) - z‖) =
    4⁻¹ *
      (𝓚 ‖x + z‖ * 𝓚 ‖x + z‖ - 𝓚 ‖x - z‖ * 𝓚 ‖x - z‖ + I * 𝓚 ‖I • x + z‖ * 𝓚 ‖I • x + z‖ -
          I * 𝓚 ‖I • x - z‖ * 𝓚 ‖I • x - z‖ +
        (𝓚 ‖y + z‖ * 𝓚 ‖y + z‖ - 𝓚 ‖y - z‖ * 𝓚 ‖y - z‖ + I * 𝓚 ‖I • y + z‖ * 𝓚 ‖I • y + z‖ -
          I * 𝓚 ‖I • y - z‖ * 𝓚 ‖I • y - z‖))
state_after: case e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 𝓚 ‖x + y + z‖ * 𝓚 ‖x + y + z‖ - 𝓚 ‖x + y - z‖ * 𝓚 ‖x + y - z‖ + I * 𝓚 ‖I • (x + y) + z‖ * 𝓚 ‖I • (x + y) + z‖ -
      I * 𝓚 ‖I • (x + y) - z‖ * 𝓚 ‖I • (x + y) - z‖ =
    𝓚 ‖x + z‖ * 𝓚 ‖x + z‖ - 𝓚 ‖x - z‖ * 𝓚 ‖x - z‖ + I * 𝓚 ‖I • x + z‖ * 𝓚 ‖I • x + z‖ -
        I * 𝓚 ‖I • x - z‖ * 𝓚 ‖I • x - z‖ +
      (𝓚 ‖y + z‖ * 𝓚 ‖y + z‖ - 𝓚 ‖y - z‖ * 𝓚 ‖y - z‖ + I * 𝓚 ‖I • y + z‖ * 𝓚 ‖I • y + z‖ -
        I * 𝓚 ‖I • y - z‖ * 𝓚 ‖I • y - z‖)

tactic: simp only [mul_assoc, ← map_mul, add_sub_assoc, ← mul_sub, ← map_sub]
state_before: case e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 𝓚 ‖x + y + z‖ * 𝓚 ‖x + y + z‖ - 𝓚 ‖x + y - z‖ * 𝓚 ‖x + y - z‖ + I * 𝓚 ‖I • (x + y) + z‖ * 𝓚 ‖I • (x + y) + z‖ -
      I * 𝓚 ‖I • (x + y) - z‖ * 𝓚 ‖I • (x + y) - z‖ =
    𝓚 ‖x + z‖ * 𝓚 ‖x + z‖ - 𝓚 ‖x - z‖ * 𝓚 ‖x - z‖ + I * 𝓚 ‖I • x + z‖ * 𝓚 ‖I • x + z‖ -
        I * 𝓚 ‖I • x - z‖ * 𝓚 ‖I • x - z‖ +
      (𝓚 ‖y + z‖ * 𝓚 ‖y + z‖ - 𝓚 ‖y - z‖ * 𝓚 ‖y - z‖ + I * 𝓚 ‖I • y + z‖ * 𝓚 ‖I • y + z‖ -
        I * 𝓚 ‖I • y - z‖ * 𝓚 ‖I • y - z‖)
state_after: case e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 𝓚 (‖x + y + z‖ * ‖x + y + z‖ - ‖x + (y - z)‖ * ‖x + (y - z)‖) +
      I * 𝓚 (‖I • (x + y) + z‖ * ‖I • (x + y) + z‖ - ‖I • (x + y) - z‖ * ‖I • (x + y) - z‖) =
    𝓚 (‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖) + I * 𝓚 (‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖) +
      (𝓚 (‖y + z‖ * ‖y + z‖ - ‖y - z‖ * ‖y - z‖) + I * 𝓚 (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖))

tactic: rw [add_add_add_comm]
state_before: case e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 𝓚 (‖x + y + z‖ * ‖x + y + z‖ - ‖x + (y - z)‖ * ‖x + (y - z)‖) +
      I * 𝓚 (‖I • (x + y) + z‖ * ‖I • (x + y) + z‖ - ‖I • (x + y) - z‖ * ‖I • (x + y) - z‖) =
    𝓚 (‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖) + I * 𝓚 (‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖) +
      (𝓚 (‖y + z‖ * ‖y + z‖ - ‖y - z‖ * ‖y - z‖) + I * 𝓚 (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖))
state_after: case e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 𝓚 (‖x + y + z‖ * ‖x + y + z‖ - ‖x + (y - z)‖ * ‖x + (y - z)‖) +
      I * 𝓚 (‖I • (x + y) + z‖ * ‖I • (x + y) + z‖ - ‖I • (x + y) - z‖ * ‖I • (x + y) - z‖) =
    𝓚 (‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖) + 𝓚 (‖y + z‖ * ‖y + z‖ - ‖y - z‖ * ‖y - z‖) +
      (I * 𝓚 (‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖) +
        I * 𝓚 (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖))

tactic: simp only [← map_add, ← mul_add]
state_before: case e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 𝓚 (‖x + y + z‖ * ‖x + y + z‖ - ‖x + (y - z)‖ * ‖x + (y - z)‖) +
      I * 𝓚 (‖I • (x + y) + z‖ * ‖I • (x + y) + z‖ - ‖I • (x + y) - z‖ * ‖I • (x + y) - z‖) =
    𝓚 (‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖) + 𝓚 (‖y + z‖ * ‖y + z‖ - ‖y - z‖ * ‖y - z‖) +
      (I * 𝓚 (‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖) +
        I * 𝓚 (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖))
state_after: case e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 𝓚 (‖x + y + z‖ * ‖x + y + z‖ - ‖x + (y - z)‖ * ‖x + (y - z)‖) +
      I * 𝓚 (‖I • (x + y) + z‖ * ‖I • (x + y) + z‖ - ‖I • (x + y) - z‖ * ‖I • (x + y) - z‖) =
    𝓚 (‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖ + (‖y + z‖ * ‖y + z‖ - ‖y - z‖ * ‖y - z‖)) +
      I *
        𝓚
          (‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖ +
            (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖))

tactic: congr
state_before: case e_a
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ 𝓚 (‖x + y + z‖ * ‖x + y + z‖ - ‖x + (y - z)‖ * ‖x + (y - z)‖) +
      I * 𝓚 (‖I • (x + y) + z‖ * ‖I • (x + y) + z‖ - ‖I • (x + y) - z‖ * ‖I • (x + y) - z‖) =
    𝓚 (‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖ + (‖y + z‖ * ‖y + z‖ - ‖y - z‖ * ‖y - z‖)) +
      I *
        𝓚
          (‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖ +
            (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖))
state_after: case e_a.e_a.h.e_6.h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ ‖x + y + z‖ * ‖x + y + z‖ - ‖x + (y - z)‖ * ‖x + (y - z)‖ =
    ‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖ + (‖y + z‖ * ‖y + z‖ - ‖y - z‖ * ‖y - z‖)

case e_a.e_a.e_a.h.e_6.h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ ‖I • (x + y) + z‖ * ‖I • (x + y) + z‖ - ‖I • (x + y) - z‖ * ‖I • (x + y) - z‖ =
    ‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖ + (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖)

tactic: rw [← add_sub_assoc, add_left_aux2', add_left_aux4']
state_before: case e_a.e_a.h.e_6.h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ ‖x + y + z‖ * ‖x + y + z‖ - ‖x + (y - z)‖ * ‖x + (y - z)‖ =
    ‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖ + (‖y + z‖ * ‖y + z‖ - ‖y - z‖ * ‖y - z‖)
state_after: no goals

tactic: rw [add_left_aux5, add_left_aux6, add_left_aux7, add_left_aux8]
state_before: case e_a.e_a.e_a.h.e_6.h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ ‖I • (x + y) + z‖ * ‖I • (x + y) + z‖ - ‖I • (x + y) - z‖ * ‖I • (x + y) - z‖ =
    ‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖ + (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖)
state_after: case e_a.e_a.e_a.h.e_6.h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ (‖I • (2 • x + y)‖ * ‖I • (2 • x + y)‖ + (2 * (‖I • y + z‖ * ‖I • y + z‖ + ‖z‖ * ‖z‖) - ‖I • y‖ * ‖I • y‖)) / 2 -
        ‖I • x - z‖ * ‖I • x - z‖ -
      ((‖I • (2 • x + y)‖ * ‖I • (2 • x + y)‖ + (2 * (‖I • y - z‖ * ‖I • y - z‖ + ‖z‖ * ‖z‖) - ‖I • y‖ * ‖I • y‖)) / 2 -
        ‖I • x + z‖ * ‖I • x + z‖) =
    ‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖ + (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖)

tactic: simp only [map_sub, map_mul, map_add, div_eq_mul_inv]
state_before: case e_a.e_a.e_a.h.e_6.h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ (‖I • (2 • x + y)‖ * ‖I • (2 • x + y)‖ + (2 * (‖I • y + z‖ * ‖I • y + z‖ + ‖z‖ * ‖z‖) - ‖I • y‖ * ‖I • y‖)) / 2 -
        ‖I • x - z‖ * ‖I • x - z‖ -
      ((‖I • (2 • x + y)‖ * ‖I • (2 • x + y)‖ + (2 * (‖I • y - z‖ * ‖I • y - z‖ + ‖z‖ * ‖z‖) - ‖I • y‖ * ‖I • y‖)) / 2 -
        ‖I • x + z‖ * ‖I • x + z‖) =
    ‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖ + (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖)
state_after: case e_a.e_a.e_a.h.e_6.h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ (‖I • (2 • x + y)‖ * ‖I • (2 • x + y)‖ + (2 * (‖I • y + z‖ * ‖I • y + z‖ + ‖z‖ * ‖z‖) - ‖I • y‖ * ‖I • y‖)) * 2⁻¹ -
        ‖I • x - z‖ * ‖I • x - z‖ -
      ((‖I • (2 • x + y)‖ * ‖I • (2 • x + y)‖ + (2 * (‖I • y - z‖ * ‖I • y - z‖ + ‖z‖ * ‖z‖) - ‖I • y‖ * ‖I • y‖)) *
          2⁻¹ -
        ‖I • x + z‖ * ‖I • x + z‖) =
    ‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖ + (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖)

tactic: ring
state_before: case e_a.e_a.e_a.h.e_6.h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ (‖I • (2 • x + y)‖ * ‖I • (2 • x + y)‖ + (2 * (‖I • y + z‖ * ‖I • y + z‖ + ‖z‖ * ‖z‖) - ‖I • y‖ * ‖I • y‖)) * 2⁻¹ -
        ‖I • x - z‖ * ‖I • x - z‖ -
      ((‖I • (2 • x + y)‖ * ‖I • (2 • x + y)‖ + (2 * (‖I • y - z‖ * ‖I • y - z‖ + ‖z‖ * ‖z‖) - ‖I • y‖ * ‖I • y‖)) *
          2⁻¹ -
        ‖I • x + z‖ * ‖I • x + z‖) =
    ‖I • x + z‖ * ‖I • x + z‖ - ‖I • x - z‖ * ‖I • x - z‖ + (‖I • y + z‖ * ‖I • y + z‖ - ‖I • y - z‖ * ‖I • y - z‖)
state_after: no goals