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

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
⊢ 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: 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₀ 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: 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 ∈ {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: 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, 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: rcases hp with (rfl | rfl | rfl)
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: refine ⟨0, ?_⟩
state_before: 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
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
⊢ p = 0 • (z -ᵥ p) +ᵥ p

tactic: simp
state_before: 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
⊢ p = 0 • (z -ᵥ p) +ᵥ p
state_after: no goals

tactic: rcases h with ⟨t, -, rfl⟩
state_before: 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
state_after: case inr.inl.intro.intro
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
t : R
⊢ ∃ r, (lineMap x z) t = r • (z -ᵥ x) +ᵥ x

tactic: exact ⟨t, rfl⟩
state_before: case inr.inl.intro.intro
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
t : R
⊢ ∃ r, (lineMap x z) t = r • (z -ᵥ x) +ᵥ x
state_after: no goals

tactic: refine ⟨1, ?_⟩
state_before: 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
state_after: 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
⊢ p = 1 • (p -ᵥ x) +ᵥ x

tactic: simp
state_before: 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
⊢ p = 1 • (p -ᵥ x) +ᵥ x
state_after: no goals