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

tactic: constructor
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.142748
P : Type u_3
P' : Type ?u.142754
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
⊢ WOppSide s (v +ᵥ x) y ↔ WOppSide 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.142748
P : Type u_3
P' : Type ?u.142754
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
⊢ WOppSide s (v +ᵥ x) y → WOppSide 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.142748
P : Type u_3
P' : Type ?u.142754
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₁) (p₂ -ᵥ y)
⊢ WOppSide 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.142748
P : Type u_3
P' : Type ?u.142754
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₁) (p₂ -ᵥ y)
⊢ SameRay R (x -ᵥ (-v +ᵥ p₁)) (p₂ -ᵥ y)

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