Theorem: Wbtw.wOppSide₁₃
File: Mathlib/Analysis/Convex/Side.lean

tactic: rcases h with ⟨t, ⟨ht0, ht1⟩, rfl⟩
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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
h : Wbtw R x y z
hy : y ∈ s
⊢ WOppSide s x z

tactic: refine' ⟨_, hy, _, hy, _⟩
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
t : R
ht0 : 0 ≤ t
ht1 : t ≤ 1
hy : ↑(lineMap x z) t ∈ s
⊢ WOppSide s x z

tactic: rcases ht1.lt_or_eq with (ht1' | rfl)
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
t : R
ht0 : 0 ≤ t
ht1 : t ≤ 1
hy : ↑(lineMap x z) t ∈ s
⊢ SameRay R (x -ᵥ ↑(lineMap x z) t) (↑(lineMap x z) t -ᵥ z)

tactic: swap
state_before: case intro.intro.intro.inl
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
t : R
ht0 : 0 ≤ t
ht1 : t ≤ 1
hy : ↑(lineMap x z) t ∈ s
ht1' : t < 1
⊢ SameRay R (x -ᵥ ↑(lineMap x z) t) (↑(lineMap x z) t -ᵥ z)

case intro.intro.intro.inr
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
ht0 : 0 ≤ 1
ht1 : 1 ≤ 1
hy : ↑(lineMap x z) 1 ∈ s
⊢ SameRay R (x -ᵥ ↑(lineMap x z) 1) (↑(lineMap x z) 1 -ᵥ z)

tactic: rcases ht0.lt_or_eq with (ht0' | rfl)
state_before: case intro.intro.intro.inl
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
t : R
ht0 : 0 ≤ t
ht1 : t ≤ 1
hy : ↑(lineMap x z) t ∈ s
ht1' : t < 1
⊢ SameRay R (x -ᵥ ↑(lineMap x z) t) (↑(lineMap x z) t -ᵥ z)

tactic: swap
state_before: case intro.intro.intro.inl.inl
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
t : R
ht0 : 0 ≤ t
ht1 : t ≤ 1
hy : ↑(lineMap x z) t ∈ s
ht1' : t < 1
ht0' : 0 < t
⊢ SameRay R (x -ᵥ ↑(lineMap x z) t) (↑(lineMap x z) t -ᵥ z)

case intro.intro.intro.inl.inr
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
ht0 : 0 ≤ 0
ht1 : 0 ≤ 1
hy : ↑(lineMap x z) 0 ∈ s
ht1' : 0 < 1
⊢ SameRay R (x -ᵥ ↑(lineMap x z) 0) (↑(lineMap x z) 0 -ᵥ z)

tactic: refine' Or.inr (Or.inr ⟨1 - t, t, sub_pos.2 ht1', ht0', _⟩)
state_before: case intro.intro.intro.inl.inl
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
t : R
ht0 : 0 ≤ t
ht1 : t ≤ 1
hy : ↑(lineMap x z) t ∈ s
ht1' : t < 1
ht0' : 0 < t
⊢ SameRay R (x -ᵥ ↑(lineMap x z) t) (↑(lineMap x z) t -ᵥ z)

tactic: simp_rw [lineMap_apply, vadd_vsub_assoc, vsub_vadd_eq_vsub_sub, ← neg_vsub_eq_vsub_rev z x,
  vsub_self, zero_sub, ← neg_one_smul R (z -ᵥ x), ← add_smul, smul_neg, ← neg_smul, smul_smul]
state_before: case intro.intro.intro.inl.inl
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
t : R
ht0 : 0 ≤ t
ht1 : t ≤ 1
hy : ↑(lineMap x z) t ∈ s
ht1' : t < 1
ht0' : 0 < t
⊢ (1 - t) • (x -ᵥ ↑(lineMap x z) t) = t • (↑(lineMap x z) t -ᵥ z)

tactic: ring_nf
state_before: case intro.intro.intro.inl.inl
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
t : R
ht0 : 0 ≤ t
ht1 : t ≤ 1
hy : ↑(lineMap x z) t ∈ s
ht1' : t < 1
ht0' : 0 < t
⊢ (-(1 - t) * t) • (z -ᵥ x) = (t * (t + -1)) • (z -ᵥ x)

tactic: rw [lineMap_apply_one]
state_before: case intro.intro.intro.inr
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
ht0 : 0 ≤ 1
ht1 : 1 ≤ 1
hy : ↑(lineMap x z) 1 ∈ s
⊢ SameRay R (x -ᵥ ↑(lineMap x z) 1) (↑(lineMap x z) 1 -ᵥ z)

tactic: simp
state_before: case intro.intro.intro.inr
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
ht0 : 0 ≤ 1
ht1 : 1 ≤ 1
hy : ↑(lineMap x z) 1 ∈ s
⊢ SameRay R (x -ᵥ z) (z -ᵥ z)

tactic: rw [lineMap_apply_zero]
state_before: case intro.intro.intro.inl.inr
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
ht0 : 0 ≤ 0
ht1 : 0 ≤ 1
hy : ↑(lineMap x z) 0 ∈ s
ht1' : 0 < 1
⊢ SameRay R (x -ᵥ ↑(lineMap x z) 0) (↑(lineMap x z) 0 -ᵥ z)

tactic: simp
state_before: case intro.intro.intro.inl.inr
R : Type u_1
V : Type u_2
V' : Type ?u.208118
P : Type u_3
P' : Type ?u.208124
inst✝⁶ : StrictOrderedCommRing 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 z : P
ht0 : 0 ≤ 0
ht1 : 0 ≤ 1
hy : ↑(lineMap x z) 0 ∈ s
ht1' : 0 < 1
⊢ SameRay R (x -ᵥ x) (x -ᵥ z)