Theorem: sbtw_iff_mem_image_Ioo_and_ne
File: Mathlib/Analysis/Convex/Between.lean

tactic: refine' ⟨fun h => ⟨h.mem_image_Ioo, h.left_ne_right⟩, fun h => _⟩
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.165751
P : Type u_3
P' : Type ?u.165757
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x y z : P
⊢ Sbtw R x y z ↔ y ∈ ↑(lineMap x z) '' Set.Ioo 0 1 ∧ x ≠ z

tactic: rcases h with ⟨⟨t, ht, rfl⟩, hxz⟩
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.165751
P : Type u_3
P' : Type ?u.165757
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x y z : P
h : y ∈ ↑(lineMap x z) '' Set.Ioo 0 1 ∧ x ≠ z
⊢ Sbtw R x y z

tactic: refine' ⟨⟨t, Set.mem_Icc_of_Ioo ht, rfl⟩, _⟩
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.165751
P : Type u_3
P' : Type ?u.165757
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x z : P
hxz : x ≠ z
t : R
ht : t ∈ Set.Ioo 0 1
⊢ Sbtw R x (↑(lineMap x z) t) z

tactic: rw [lineMap_apply, ← @vsub_ne_zero V, ← @vsub_ne_zero V _ _ _ _ z, vadd_vsub_assoc, vsub_self,
  vadd_vsub_assoc, ← neg_vsub_eq_vsub_rev z x, ← @neg_one_smul R, ← add_smul, ← sub_eq_add_neg]
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.165751
P : Type u_3
P' : Type ?u.165757
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x z : P
hxz : x ≠ z
t : R
ht : t ∈ Set.Ioo 0 1
⊢ ↑(lineMap x z) t ≠ x ∧ ↑(lineMap x z) t ≠ z

tactic: have : z -ᵥ x ≠ 0 := by simpa using hxz.symm
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.165751
P : Type u_3
P' : Type ?u.165757
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x z : P
hxz : x ≠ z
t : R
ht : t ∈ Set.Ioo 0 1
⊢ t • (z -ᵥ x) + 0 ≠ 0 ∧ (t - 1) • (z -ᵥ x) ≠ 0

tactic: simp [smul_ne_zero, this, sub_eq_zero, ht.1.ne.symm, ht.2.ne]
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.165751
P : Type u_3
P' : Type ?u.165757
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x z : P
hxz : x ≠ z
t : R
ht : t ∈ Set.Ioo 0 1
this : z -ᵥ x ≠ 0
⊢ t • (z -ᵥ x) + 0 ≠ 0 ∧ (t - 1) • (z -ᵥ x) ≠ 0

tactic: simpa using hxz.symm
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.165751
P : Type u_3
P' : Type ?u.165757
inst✝⁷ : OrderedRing R
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module R V
inst✝⁴ : AddTorsor V P
inst✝³ : AddCommGroup V'
inst✝² : Module R V'
inst✝¹ : AddTorsor V' P'
inst✝ : NoZeroSMulDivisors R V
x z : P
hxz : x ≠ z
t : R
ht : t ∈ Set.Ioo 0 1
⊢ z -ᵥ x ≠ 0