V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : dist p3 p1 = dist p3 p2
m : P := midpoint ℝ p1 p2
⊢ ∠ p3 (midpoint ℝ p1 p2) p1 = π / 2
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : dist p3 p1 = dist p3 p2
⊢ ∠ p3 (midpoint ℝ p1 p2) p1 = π / 2
let m : P := midpoint ℝ p1 p2
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : dist p3 p1 = dist p3 p2
m : P := midpoint ℝ p1 p2
h1 : p3 -ᵥ p1 = p3 -ᵥ m - (p1 -ᵥ m)
⊢ ∠ p3 (midpoint ℝ p1 p2) p1 = π / 2
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : dist p3 p1 = dist p3 p2
m : P := midpoint ℝ p1 p2
⊢ ∠ p3 (midpoint ℝ p1 p2) p1 = π / 2
have h1 : p3 -ᵥ p1 = p3 -ᵥ m - (p1 -ᵥ m) := (vsub_sub_vsub_cancel_right p3 p1 m).symm
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : dist p3 p1 = dist p3 p2
m : P := midpoint ℝ p1 p2
h1 : p3 -ᵥ p1 = p3 -ᵥ m - (p1 -ᵥ m)
h2 : p3 -ᵥ p2 = p3 -ᵥ m + (p1 -ᵥ m)
⊢ ∠ p3 (midpoint ℝ p1 p2) p1 = π / 2
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : dist p3 p1 = dist p3 p2
m : P := midpoint ℝ p1 p2
h1 : p3 -ᵥ p1 = p3 -ᵥ m - (p1 -ᵥ m)
⊢ ∠ p3 (midpoint ℝ p1 p2) p1 = π / 2
have h2 : p3 -ᵥ p2 = p3 -ᵥ m + (p1 -ᵥ m) := by
  rw [left_vsub_midpoint, ← midpoint_vsub_right, vsub_add_vsub_cancel]
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
m : P := midpoint ℝ p1 p2
h : ‖p3 -ᵥ m - (p1 -ᵥ m)‖ = ‖p3 -ᵥ m + (p1 -ᵥ m)‖
h1 : p3 -ᵥ p1 = p3 -ᵥ m - (p1 -ᵥ m)
h2 : p3 -ᵥ p2 = p3 -ᵥ m + (p1 -ᵥ m)
⊢ ∠ p3 (midpoint ℝ p1 p2) p1 = π / 2
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : dist p3 p1 = dist p3 p2
m : P := midpoint ℝ p1 p2
h1 : p3 -ᵥ p1 = p3 -ᵥ m - (p1 -ᵥ m)
h2 : p3 -ᵥ p2 = p3 -ᵥ m + (p1 -ᵥ m)
⊢ ∠ p3 (midpoint ℝ p1 p2) p1 = π / 2
rw [dist_eq_norm_vsub V p3 p1, dist_eq_norm_vsub V p3 p2, h1, h2] at h
no goals
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
m : P := midpoint ℝ p1 p2
h : ‖p3 -ᵥ m - (p1 -ᵥ m)‖ = ‖p3 -ᵥ m + (p1 -ᵥ m)‖
h1 : p3 -ᵥ p1 = p3 -ᵥ m - (p1 -ᵥ m)
h2 : p3 -ᵥ p2 = p3 -ᵥ m + (p1 -ᵥ m)
⊢ ∠ p3 (midpoint ℝ p1 p2) p1 = π / 2
exact (norm_add_eq_norm_sub_iff_angle_eq_pi_div_two (p3 -ᵥ m) (p1 -ᵥ m)).mp h.symm
no goals
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : dist p3 p1 = dist p3 p2
m : P := midpoint ℝ p1 p2
h1 : p3 -ᵥ p1 = p3 -ᵥ m - (p1 -ᵥ m)
⊢ p3 -ᵥ p2 = p3 -ᵥ m + (p1 -ᵥ m)
rw [left_vsub_midpoint, ← midpoint_vsub_right, vsub_add_vsub_cancel]