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

tactic: rintro p ⟨p1, hp1, v, hv, hp⟩
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
⊢ spanPoints k s ⊆ ↑s1
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
⊢ p ∈ ↑s1

tactic: rw [hp]
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
⊢ p ∈ ↑s1
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
⊢ v +ᵥ p1 ∈ ↑s1

tactic: have hp1s1 : p1 ∈ (s1 : Set P) := Set.mem_of_mem_of_subset hp1 h
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
⊢ v +ᵥ p1 ∈ ↑s1
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
hp1s1 : p1 ∈ ↑s1
⊢ v +ᵥ p1 ∈ ↑s1

tactic: refine vadd_mem_of_mem_direction ?_ hp1s1
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
hp1s1 : p1 ∈ ↑s1
⊢ v +ᵥ p1 ∈ ↑s1
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
hp1s1 : p1 ∈ ↑s1
⊢ v ∈ s1.direction

tactic: have hs : vectorSpan k s ≤ s1.direction := vectorSpan_mono k h
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
hp1s1 : p1 ∈ ↑s1
⊢ v ∈ s1.direction
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
hp1s1 : p1 ∈ ↑s1
hs : vectorSpan k s ≤ s1.direction
⊢ v ∈ s1.direction

tactic: rw [SetLike.le_def] at hs
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
hp1s1 : p1 ∈ ↑s1
hs : vectorSpan k s ≤ s1.direction
⊢ v ∈ s1.direction
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
hp1s1 : p1 ∈ ↑s1
hs : ∀ ⦃x : V⦄, x ∈ vectorSpan k s → x ∈ s1.direction
⊢ v ∈ s1.direction

tactic: rw [← SetLike.mem_coe]
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
hp1s1 : p1 ∈ ↑s1
hs : ∀ ⦃x : V⦄, x ∈ vectorSpan k s → x ∈ s1.direction
⊢ v ∈ s1.direction
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
hp1s1 : p1 ∈ ↑s1
hs : ∀ ⦃x : V⦄, x ∈ vectorSpan k s → x ∈ s1.direction
⊢ v ∈ ↑s1.direction

tactic: exact Set.mem_of_mem_of_subset hv hs
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 : Set P
s1 : AffineSubspace k P
h : s ⊆ ↑s1
p p1 : P
hp1 : p1 ∈ s
v : V
hv : v ∈ vectorSpan k s
hp : p = v +ᵥ p1
hp1s1 : p1 ∈ ↑s1
hs : ∀ ⦃x : V⦄, x ∈ vectorSpan k s → x ∈ s1.direction
⊢ v ∈ ↑s1.direction
state_after: no goals