Theorem: Wbtw.collinear
File: Mathlib/Analysis/Convex/Between.lean

Proof steps:
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
⊢ Collinear R {x, y, z}
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
⊢ ∃ p₀ v, ∀ p ∈ {x, y, z}, ∃ r, p = r • v +ᵥ p₀
tactic: rw [collinear_iff_exists_forall_eq_smul_vadd]
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
⊢ ∃ p₀ v, ∀ p ∈ {x, y, z}, ∃ r, p = r • v +ᵥ p₀
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
⊢ ∀ p ∈ {x, y, z}, ∃ r, p = r • (z -ᵥ x) +ᵥ x
tactic: refine ⟨x, z -ᵥ x, ?_⟩
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
⊢ ∀ p ∈ {x, y, z}, ∃ r, p = r • (z -ᵥ x) +ᵥ x
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
p : P
hp : p ∈ {x, y, z}
⊢ ∃ r, p = r • (z -ᵥ x) +ᵥ x
tactic: intro p hp
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
p : P
hp : p ∈ {x, y, z}
⊢ ∃ r, p = r • (z -ᵥ x) +ᵥ x
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
p : P
hp : p = x ∨ p = y ∨ p = z
⊢ ∃ r, p = r • (z -ᵥ x) +ᵥ x
tactic: simp_rw [Set.mem_insert_iff, Set.mem_singleton_iff] at hp
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
p : P
hp : p = x ∨ p = y ∨ p = z
⊢ ∃ r, p = r • (z -ᵥ x) +ᵥ x
state_after: case inl
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
y z p : P
h : Wbtw R p y z
⊢ ∃ r, p = r • (z -ᵥ p) +ᵥ p

case inr.inl
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x z p : P
h : Wbtw R x p z
⊢ ∃ r, p = r • (z -ᵥ x) +ᵥ x

case inr.inr
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y p : P
h : Wbtw R x y p
⊢ ∃ r, p = r • (p -ᵥ x) +ᵥ x
tactic: rcases hp with (rfl | rfl | rfl)