R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : SameRay R (y -ᵥ x) (z -ᵥ y)
⊢ Wbtw R x y z
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
⊢ Wbtw R x y z ↔ SameRay R (y -ᵥ x) (z -ᵥ y)
refine' ⟨Wbtw.sameRay_vsub, fun h => _⟩
case inl
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : y -ᵥ x = 0
⊢ Wbtw R x y z

case inr.inl
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : z -ᵥ y = 0
⊢ Wbtw R x y z

case inr.inr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
⊢ Wbtw R x y z
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : SameRay R (y -ᵥ x) (z -ᵥ y)
⊢ Wbtw R x y z
rcases h with (h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩)
case inl
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : y = x
⊢ Wbtw R x y z
case inl
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : y -ᵥ x = 0
⊢ Wbtw R x y z
rw [vsub_eq_zero_iff_eq] at h
no goals
case inl
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : y = x
⊢ Wbtw R x y z
simp [h]
case inr.inl
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : z = y
⊢ Wbtw R x y z
case inr.inl
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : z -ᵥ y = 0
⊢ Wbtw R x y z
rw [vsub_eq_zero_iff_eq] at h
no goals
case inr.inl
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : z = y
⊢ Wbtw R x y z
simp [h]
case inr.inr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
⊢ ↑(lineMap x z) (r₂ / (r₁ + r₂)) = y
case inr.inr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
⊢ Wbtw R x y z
refine'
  ⟨r₂ / (r₁ + r₂),
    ⟨div_nonneg hr₂.le (add_nonneg hr₁.le hr₂.le),
      div_le_one_of_le (le_add_of_nonneg_left hr₁.le) (add_nonneg hr₁.le hr₂.le)⟩,
    _⟩
case inr.inr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
⊢ ↑(lineMap x z) (r₂ / (r₁ + r₂)) = y
case inr.inr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
⊢ ↑(lineMap x z) (r₂ / (r₁ + r₂)) = y
have h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y := by simp [h, hr₂.ne']
case inr.inr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
⊢ y = ↑(lineMap x z) (r₂ / (r₁ + r₂))
case inr.inr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
⊢ ↑(lineMap x z) (r₂ / (r₁ + r₂)) = y
rw [eq_comm]
case inr.inr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
⊢ y -ᵥ x = (r₂ / (r₁ + r₂) * (r₂⁻¹ * r₁) + r₂ / (r₁ + r₂)) • (y -ᵥ x)
case inr.inr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
⊢ y = ↑(lineMap x z) (r₂ / (r₁ + r₂))
simp only [lineMap_apply, h', vadd_vsub_assoc, smul_smul, ← add_smul, eq_vadd_iff_vsub_eq,
  smul_add]
case h.e'_3.h.e'_5
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
⊢ r₂ / (r₁ + r₂) * (r₂⁻¹ * r₁) + r₂ / (r₁ + r₂) = 1
case inr.inr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
⊢ y -ᵥ x = (r₂ / (r₁ + r₂) * (r₂⁻¹ * r₁) + r₂ / (r₁ + r₂)) • (y -ᵥ x)
convert (one_smul R (y -ᵥ x)).symm
case h.e'_3.h.e'_5
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
⊢ r₂ * r₁ * (r₁ + r₂) + r₂ * ((r₁ + r₂) * r₂) = (r₁ + r₂) * r₂ * (r₁ + r₂)
case h.e'_3.h.e'_5
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
⊢ r₂ / (r₁ + r₂) * (r₂⁻¹ * r₁) + r₂ / (r₁ + r₂) = 1
field_simp [(add_pos hr₁ hr₂).ne', hr₂.ne']
no goals
case h.e'_3.h.e'_5
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
h' : z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
⊢ r₂ * r₁ * (r₁ + r₂) + r₂ * ((r₁ + r₂) * r₂) = (r₁ + r₂) * r₂ * (r₁ + r₂)
ring
no goals
R : Type u_1
V : Type u_2
V' : Type ?u.601094
P : Type u_3
P' : Type ?u.601100
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
r₁ r₂ : R
hr₁ : 0 < r₁
hr₂ : 0 < r₂
h : r₁ • (y -ᵥ x) = r₂ • (z -ᵥ y)
⊢ z = r₂⁻¹ • r₁ • (y -ᵥ x) +ᵥ y
simp [h, hr₂.ne']