Theorem: AffineSubspace.wSameSide_vadd_left_iff
File: Mathlib/Analysis/Convex/Side.lean

tactic: constructor
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.125416
P : Type u_3
P' : Type ?u.125422
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 : P
v : V
hv : v ∈ direction s
⊢ WSameSide s (v +ᵥ x) y ↔ WSameSide s x y

tactic: rintro ⟨p₁, hp₁, p₂, hp₂, h⟩
state_before: case mp
R : Type u_1
V : Type u_2
V' : Type ?u.125416
P : Type u_3
P' : Type ?u.125422
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 : P
v : V
hv : v ∈ direction s
⊢ WSameSide s (v +ᵥ x) y → WSameSide s x y

tactic: refine'
  ⟨-v +ᵥ p₁, AffineSubspace.vadd_mem_of_mem_direction (Submodule.neg_mem _ hv) hp₁, p₂, hp₂, _⟩
state_before: case mp.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.125416
P : Type u_3
P' : Type ?u.125422
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 : P
v : V
hv : v ∈ direction s
p₁ : P
hp₁ : p₁ ∈ s
p₂ : P
hp₂ : p₂ ∈ s
h : SameRay R (v +ᵥ x -ᵥ p₁) (y -ᵥ p₂)
⊢ WSameSide s x y

tactic: rwa [vsub_vadd_eq_vsub_sub, sub_neg_eq_add, add_comm, ← vadd_vsub_assoc]
state_before: case mp.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.125416
P : Type u_3
P' : Type ?u.125422
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 : P
v : V
hv : v ∈ direction s
p₁ : P
hp₁ : p₁ ∈ s
p₂ : P
hp₂ : p₂ ∈ s
h : SameRay R (v +ᵥ x -ᵥ p₁) (y -ᵥ p₂)
⊢ SameRay R (x -ᵥ (-v +ᵥ p₁)) (y -ᵥ p₂)

tactic: rintro ⟨p₁, hp₁, p₂, hp₂, h⟩
state_before: case mpr
R : Type u_1
V : Type u_2
V' : Type ?u.125416
P : Type u_3
P' : Type ?u.125422
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 : P
v : V
hv : v ∈ direction s
⊢ WSameSide s x y → WSameSide s (v +ᵥ x) y

tactic: refine' ⟨v +ᵥ p₁, AffineSubspace.vadd_mem_of_mem_direction hv hp₁, p₂, hp₂, _⟩
state_before: case mpr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.125416
P : Type u_3
P' : Type ?u.125422
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 : P
v : V
hv : v ∈ direction s
p₁ : P
hp₁ : p₁ ∈ s
p₂ : P
hp₂ : p₂ ∈ s
h : SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
⊢ WSameSide s (v +ᵥ x) y

tactic: rwa [vadd_vsub_vadd_cancel_left]
state_before: case mpr.intro.intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type ?u.125416
P : Type u_3
P' : Type ?u.125422
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 : P
v : V
hv : v ∈ direction s
p₁ : P
hp₁ : p₁ ∈ s
p₂ : P
hp₂ : p₂ ∈ s
h : SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
⊢ SameRay R (v +ᵥ x -ᵥ (v +ᵥ p₁)) (y -ᵥ p₂)