Theorem: AffineSubspace.WSameSide.trans
File: Mathlib/Analysis/Convex/Side.lean

tactic: rcases hxy with ⟨p₁, hp₁, p₂, hp₂, hxy⟩
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.277529
P : Type u_3
P' : Type ?u.277535
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y z : P
hxy : WSameSide s x y
hyz : WSameSide s y z
hy : ¬y ∈ s
⊢ WSameSide s x z

tactic: rw [wSameSide_iff_exists_left hp₂, or_iff_right hy] at hyz
state_before: case intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.277529
P : Type u_3
P' : Type ?u.277535
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y z : P
hyz : WSameSide s y z
hy : ¬y ∈ s
p₁ : P
hp₁ : p₁ ∈ s
p₂ : P
hp₂ : p₂ ∈ s
hxy : SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
⊢ WSameSide s x z

tactic: rcases hyz with ⟨p₃, hp₃, hyz⟩
state_before: case intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.277529
P : Type u_3
P' : Type ?u.277535
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y z : P
hy : ¬y ∈ s
p₁ : P
hp₁ : p₁ ∈ s
p₂ : P
hyz : ∃ p₂_1, p₂_1 ∈ s ∧ SameRay R (y -ᵥ p₂) (z -ᵥ p₂_1)
hp₂ : p₂ ∈ s
hxy : SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
⊢ WSameSide s x z

tactic: refine' ⟨p₁, hp₁, p₃, hp₃, hxy.trans hyz _⟩
state_before: case intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.277529
P : Type u_3
P' : Type ?u.277535
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y z : P
hy : ¬y ∈ s
p₁ : P
hp₁ : p₁ ∈ s
p₂ : P
hp₂ : p₂ ∈ s
hxy : SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
p₃ : P
hp₃ : p₃ ∈ s
hyz : SameRay R (y -ᵥ p₂) (z -ᵥ p₃)
⊢ WSameSide s x z

tactic: refine' fun h => False.elim _
state_before: case intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.277529
P : Type u_3
P' : Type ?u.277535
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y z : P
hy : ¬y ∈ s
p₁ : P
hp₁ : p₁ ∈ s
p₂ : P
hp₂ : p₂ ∈ s
hxy : SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
p₃ : P
hp₃ : p₃ ∈ s
hyz : SameRay R (y -ᵥ p₂) (z -ᵥ p₃)
⊢ y -ᵥ p₂ = 0 → x -ᵥ p₁ = 0 ∨ z -ᵥ p₃ = 0

tactic: rw [vsub_eq_zero_iff_eq] at h
state_before: case intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.277529
P : Type u_3
P' : Type ?u.277535
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y z : P
hy : ¬y ∈ s
p₁ : P
hp₁ : p₁ ∈ s
p₂ : P
hp₂ : p₂ ∈ s
hxy : SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
p₃ : P
hp₃ : p₃ ∈ s
hyz : SameRay R (y -ᵥ p₂) (z -ᵥ p₃)
h : y -ᵥ p₂ = 0
⊢ False

tactic: exact hy (h.symm ▸ hp₂)
state_before: case intro.intro.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.277529
P : Type u_3
P' : Type ?u.277535
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y z : P
hy : ¬y ∈ s
p₁ : P
hp₁ : p₁ ∈ s
p₂ : P
hp₂ : p₂ ∈ s
hxy : SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
p₃ : P
hp₃ : p₃ ∈ s
hyz : SameRay R (y -ᵥ p₂) (z -ᵥ p₃)
h : y = p₂
⊢ False