Theorem: InnerProductGeometry.sin_angle_sub_add_angle_sub_rev_eq_sin_angle
File: Mathlib/Geometry/Euclidean/Triangle.lean

tactic: by_cases hxy : x = y
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
⊢ Real.sin (angle x (x - y) + angle y (y - x)) = Real.sin (angle x y)
state_after: case pos
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : x = y
⊢ Real.sin (angle x (x - y) + angle y (y - x)) = Real.sin (angle x y)

case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
⊢ Real.sin (angle x (x - y) + angle y (y - x)) = Real.sin (angle x y)

tactic: rw [hxy, angle_self hy]
state_before: case pos
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : x = y
⊢ Real.sin (angle x (x - y) + angle y (y - x)) = Real.sin (angle x y)
state_after: case pos
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : x = y
⊢ Real.sin (angle y (y - y) + angle y (y - y)) = Real.sin 0

tactic: simp
state_before: case pos
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : x = y
⊢ Real.sin (angle y (y - y) + angle y (y - y)) = Real.sin 0
state_after: no goals

tactic: rw [Real.sin_add, cos_angle, cos_angle]
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
⊢ Real.sin (angle x (x - y) + angle y (y - x)) = Real.sin (angle x y)
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
⊢ Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
      ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x)) =
    Real.sin (angle x y)

tactic: have hxn : ‖x‖ ≠ 0 := fun h => hx (norm_eq_zero.1 h)
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
⊢ Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
      ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x)) =
    Real.sin (angle x y)
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
⊢ Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
      ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x)) =
    Real.sin (angle x y)

tactic: have hyn : ‖y‖ ≠ 0 := fun h => hy (norm_eq_zero.1 h)
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
⊢ Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
      ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x)) =
    Real.sin (angle x y)
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
⊢ Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
      ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x)) =
    Real.sin (angle x y)

tactic: have hxyn : ‖x - y‖ ≠ 0 := fun h => hxy (eq_of_sub_eq_zero (norm_eq_zero.1 h))
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
⊢ Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
      ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x)) =
    Real.sin (angle x y)
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
      ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x)) =
    Real.sin (angle x y)

tactic: apply mul_right_cancel₀ hxn
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
      ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x)) =
    Real.sin (angle x y)
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
        ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
      ‖x‖ =
    Real.sin (angle x y) * ‖x‖

tactic: apply mul_right_cancel₀ hyn
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
        ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
      ‖x‖ =
    Real.sin (angle x y) * ‖x‖
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
          ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
        ‖x‖ *
      ‖y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖

tactic: apply mul_right_cancel₀ hxyn
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
          ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
        ‖x‖ *
      ‖y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
            ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
          ‖x‖ *
        ‖y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖

tactic: apply mul_right_cancel₀ hxyn
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
            ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
          ‖x‖ *
        ‖y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
              ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
            ‖x‖ *
          ‖y‖ *
        ‖x - y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖ * ‖x - y‖

tactic: have H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫ / (‖y‖ * ‖y - x‖)) * ‖y‖ := by
  ring
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
              ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
            ‖x‖ *
          ‖y‖ *
        ‖x - y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖ * ‖x - y‖
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
              ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
            ‖x‖ *
          ‖y‖ *
        ‖x - y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖ * ‖x - y‖

tactic: have H2 :
  ⟪x, x - y⟫ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖ := by
  ring
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
              ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
            ‖x‖ *
          ‖y‖ *
        ‖x - y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖ * ‖x - y‖
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
              ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
            ‖x‖ *
          ‖y‖ *
        ‖x - y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖ * ‖x - y‖

tactic: have H3 :
  ⟪x, x⟫ * (⟪x, x⟫ - ⟪x, y⟫ - (⟪x, y⟫ - ⟪y, y⟫)) - (⟪x, x⟫ - ⟪x, y⟫) * (⟪x, x⟫ - ⟪x, y⟫) =
    ⟪x, x⟫ * ⟪y, y⟫ - ⟪x, y⟫ * ⟪x, y⟫ := by
  ring
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
              ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
            ‖x‖ *
          ‖y‖ *
        ‖x - y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖ * ‖x - y‖
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
H3 :
  ⟪x, x⟫_ℝ * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪y, y⟫_ℝ)) - (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
              ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
            ‖x‖ *
          ‖y‖ *
        ‖x - y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖ * ‖x - y‖

tactic: have H4 :
  ⟪y, y⟫ * (⟪y, y⟫ - ⟪x, y⟫ - (⟪x, y⟫ - ⟪x, x⟫)) - (⟪y, y⟫ - ⟪x, y⟫) * (⟪y, y⟫ - ⟪x, y⟫) =
    ⟪x, x⟫ * ⟪y, y⟫ - ⟪x, y⟫ * ⟪x, y⟫ := by
  ring
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
H3 :
  ⟪x, x⟫_ℝ * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪y, y⟫_ℝ)) - (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
              ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
            ‖x‖ *
          ‖y‖ *
        ‖x - y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖ * ‖x - y‖
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
H3 :
  ⟪x, x⟫_ℝ * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪y, y⟫_ℝ)) - (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
H4 :
  ⟪y, y⟫_ℝ * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪x, x⟫_ℝ)) - (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
              ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
            ‖x‖ *
          ‖y‖ *
        ‖x - y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖ * ‖x - y‖

tactic: rw [right_distrib, right_distrib, right_distrib, right_distrib, H1, sin_angle_mul_norm_mul_norm,
  norm_sub_rev x y, H2, sin_angle_mul_norm_mul_norm, norm_sub_rev y x,
  mul_assoc (Real.sin (angle x y)), sin_angle_mul_norm_mul_norm, inner_sub_left, inner_sub_left,
  inner_sub_right, inner_sub_right, inner_sub_right, inner_sub_right, real_inner_comm x y, H3,
  H4, real_inner_self_eq_norm_mul_norm, real_inner_self_eq_norm_mul_norm,
  real_inner_eq_norm_mul_self_add_norm_mul_self_sub_norm_sub_mul_self_div_two]
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
H3 :
  ⟪x, x⟫_ℝ * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪y, y⟫_ℝ)) - (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
H4 :
  ⟪y, y⟫_ℝ * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪x, x⟫_ℝ)) - (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
⊢ (Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) +
              ⟪x, x - y⟫_ℝ / (‖x‖ * ‖x - y‖) * Real.sin (angle y (y - x))) *
            ‖x‖ *
          ‖y‖ *
        ‖x - y‖ *
      ‖x - y‖ =
    Real.sin (angle x y) * ‖x‖ * ‖y‖ * ‖x - y‖ * ‖x - y‖
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
H3 :
  ⟪x, x⟫_ℝ * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪y, y⟫_ℝ)) - (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
H4 :
  ⟪y, y⟫_ℝ * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪x, x⟫_ℝ)) - (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
⊢ √(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) -
                (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2 * ((‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2)) *
            ((‖y‖ * ‖y‖ - (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2) / (‖y‖ * ‖x - y‖)) *
          ‖y‖ *
        ‖x - y‖ +
      (‖x‖ * ‖x‖ - (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2) / (‖x‖ * ‖x - y‖) *
            √(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) -
                (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2 * ((‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2)) *
          ‖x‖ *
        ‖x - y‖ =
    √(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) -
            (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2 * ((‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2)) *
        ‖x - y‖ *
      ‖x - y‖

tactic: field_simp [hxn, hyn, hxyn]
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
H3 :
  ⟪x, x⟫_ℝ * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪y, y⟫_ℝ)) - (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
H4 :
  ⟪y, y⟫_ℝ * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪x, x⟫_ℝ)) - (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
⊢ √(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) -
                (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2 * ((‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2)) *
            ((‖y‖ * ‖y‖ - (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2) / (‖y‖ * ‖x - y‖)) *
          ‖y‖ *
        ‖x - y‖ +
      (‖x‖ * ‖x‖ - (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2) / (‖x‖ * ‖x - y‖) *
            √(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) -
                (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2 * ((‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2)) *
          ‖x‖ *
        ‖x - y‖ =
    √(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) -
            (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2 * ((‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) / 2)) *
        ‖x - y‖ *
      ‖x - y‖
state_after: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
H3 :
  ⟪x, x⟫_ℝ * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪y, y⟫_ℝ)) - (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
H4 :
  ⟪y, y⟫_ℝ * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪x, x⟫_ℝ)) - (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
⊢ (√(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) * (2 * 2) -
                    (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) * (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖)) *
                (‖y‖ * ‖y‖ * 2 - (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖)) *
              ‖y‖ *
            ‖x - y‖ *
          (2 * (‖x‖ * ‖x - y‖) * 2) +
        (‖x‖ * ‖x‖ * 2 - (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖)) *
                √(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) * (2 * 2) -
                    (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) * (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖)) *
              ‖x‖ *
            ‖x - y‖ *
          (2 * (2 * (‖y‖ * ‖x - y‖)))) *
      2 =
    √(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) * (2 * 2) -
              (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) * (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖)) *
          ‖x - y‖ *
        ‖x - y‖ *
      (2 * (2 * (‖y‖ * ‖x - y‖)) * (2 * (‖x‖ * ‖x - y‖) * 2))

tactic: ring
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
H3 :
  ⟪x, x⟫_ℝ * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪y, y⟫_ℝ)) - (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
H4 :
  ⟪y, y⟫_ℝ * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪x, x⟫_ℝ)) - (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
⊢ (√(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) * (2 * 2) -
                    (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) * (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖)) *
                (‖y‖ * ‖y‖ * 2 - (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖)) *
              ‖y‖ *
            ‖x - y‖ *
          (2 * (‖x‖ * ‖x - y‖) * 2) +
        (‖x‖ * ‖x‖ * 2 - (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖)) *
                √(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) * (2 * 2) -
                    (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) * (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖)) *
              ‖x‖ *
            ‖x - y‖ *
          (2 * (2 * (‖y‖ * ‖x - y‖)))) *
      2 =
    √(‖x‖ * ‖x‖ * (‖y‖ * ‖y‖) * (2 * 2) -
              (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖) * (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ - ‖x - y‖ * ‖x - y‖)) *
          ‖x - y‖ *
        ‖x - y‖ *
      (2 * (2 * (‖y‖ * ‖x - y‖)) * (2 * (‖x‖ * ‖x - y‖) * 2))
state_after: no goals

tactic: ring
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
⊢ Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
state_after: no goals

tactic: ring
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
⊢ ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
state_after: no goals

tactic: ring
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
⊢ ⟪x, x⟫_ℝ * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪y, y⟫_ℝ)) - (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
state_after: no goals

tactic: ring
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
hx : x ≠ 0
hy : y ≠ 0
hxy : ¬x = y
hxn : ‖x‖ ≠ 0
hyn : ‖y‖ ≠ 0
hxyn : ‖x - y‖ ≠ 0
H1 :
  Real.sin (angle x (x - y)) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖x‖ * ‖y‖ * ‖x - y‖ =
    Real.sin (angle x (x - y)) * (‖x‖ * ‖x - y‖) * (⟪y, y - x⟫_ℝ / (‖y‖ * ‖y - x‖)) * ‖y‖
H2 :
  ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * Real.sin (angle y (y - x)) * ‖x‖ * ‖y‖ * ‖y - x‖ =
    ⟪x, x - y⟫_ℝ / (‖x‖ * ‖y - x‖) * (Real.sin (angle y (y - x)) * (‖y‖ * ‖y - x‖)) * ‖x‖
H3 :
  ⟪x, x⟫_ℝ * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪y, y⟫_ℝ)) - (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪x, x⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
⊢ ⟪y, y⟫_ℝ * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ - (⟪x, y⟫_ℝ - ⟪x, x⟫_ℝ)) - (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) * (⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ) =
    ⟪x, x⟫_ℝ * ⟪y, y⟫_ℝ - ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ
state_after: no goals