Theorem: AffineSubspace.vadd_mem_of_mem_direction
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

Proof steps:
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
hv : v ∈ s.direction
p : P
hp : p ∈ s
⊢ v +ᵥ p ∈ s
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
hv : ∃ p1 ∈ s, ∃ p2 ∈ s, v = p1 -ᵥ p2
p : P
hp : p ∈ s
⊢ v +ᵥ p ∈ s
tactic: rw [mem_direction_iff_eq_vsub ⟨p, hp⟩] at hv
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
hv : ∃ p1 ∈ s, ∃ p2 ∈ s, v = p1 -ᵥ p2
p : P
hp : p ∈ s
⊢ v +ᵥ p ∈ s
state_after: case intro.intro.intro.intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
p : P
hp : p ∈ s
p1 : P
hp1 : p1 ∈ s
p2 : P
hp2 : p2 ∈ s
hv : v = p1 -ᵥ p2
⊢ v +ᵥ p ∈ s
tactic: rcases hv with ⟨p1, hp1, p2, hp2, hv⟩
state_before: case intro.intro.intro.intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
p : P
hp : p ∈ s
p1 : P
hp1 : p1 ∈ s
p2 : P
hp2 : p2 ∈ s
hv : v = p1 -ᵥ p2
⊢ v +ᵥ p ∈ s
state_after: case intro.intro.intro.intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
p : P
hp : p ∈ s
p1 : P
hp1 : p1 ∈ s
p2 : P
hp2 : p2 ∈ s
hv : v = p1 -ᵥ p2
⊢ p1 -ᵥ p2 +ᵥ p ∈ s
tactic: rw [hv]
state_before: case intro.intro.intro.intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
p : P
hp : p ∈ s
p1 : P
hp1 : p1 ∈ s
p2 : P
hp2 : p2 ∈ s
hv : v = p1 -ᵥ p2
⊢ p1 -ᵥ p2 +ᵥ p ∈ s
state_after: case a
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
p : P
hp : p ∈ s
p1 : P
hp1 : p1 ∈ s
p2 : P
hp2 : p2 ∈ s
hv : v = p1 -ᵥ p2
⊢ p1 -ᵥ p2 +ᵥ p ∈ s ↔ 1 • (p1 -ᵥ p2) +ᵥ p ∈ s.carrier
tactic: convert s.smul_vsub_vadd_mem 1 hp1 hp2 hp
state_before: case a
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
p : P
hp : p ∈ s
p1 : P
hp1 : p1 ∈ s
p2 : P
hp2 : p2 ∈ s
hv : v = p1 -ᵥ p2
⊢ p1 -ᵥ p2 +ᵥ p ∈ s ↔ 1 • (p1 -ᵥ p2) +ᵥ p ∈ s.carrier
state_after: case a
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
p : P
hp : p ∈ s
p1 : P
hp1 : p1 ∈ s
p2 : P
hp2 : p2 ∈ s
hv : v = p1 -ᵥ p2
⊢ p1 -ᵥ p2 +ᵥ p ∈ s ↔ p1 -ᵥ p2 +ᵥ p ∈ s.carrier
tactic: rw [one_smul]
state_before: case a
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
p : P
hp : p ∈ s
p1 : P
hp1 : p1 ∈ s
p2 : P
hp2 : p2 ∈ s
hv : v = p1 -ᵥ p2
⊢ p1 -ᵥ p2 +ᵥ p ∈ s ↔ p1 -ᵥ p2 +ᵥ p ∈ s.carrier
state_after: no goals
tactic: exact s.mem_coe k P _