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

tactic: cases' hn with p 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
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
h : s1 < s2
hn : (↑s1).Nonempty
⊢ s1.direction < s2.direction
state_after: case intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
h : s1 < s2
p : P
hp : p ∈ ↑s1
⊢ s1.direction < s2.direction

tactic: rw [lt_iff_le_and_exists] at h
state_before: case intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
h : s1 < s2
p : P
hp : p ∈ ↑s1
⊢ s1.direction < s2.direction
state_after: case intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
h : s1 ≤ s2 ∧ ∃ p ∈ s2, p ∉ s1
p : P
hp : p ∈ ↑s1
⊢ s1.direction < s2.direction

tactic: rcases h with ⟨hle, p2, hp2, hp2s1⟩
state_before: case intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
h : s1 ≤ s2 ∧ ∃ p ∈ s2, p ∉ s1
p : P
hp : p ∈ ↑s1
⊢ s1.direction < s2.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
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
p : P
hp : p ∈ ↑s1
hle : s1 ≤ s2
p2 : P
hp2 : p2 ∈ s2
hp2s1 : p2 ∉ s1
⊢ s1.direction < s2.direction

tactic: rw [SetLike.lt_iff_le_and_exists]
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
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
p : P
hp : p ∈ ↑s1
hle : s1 ≤ s2
p2 : P
hp2 : p2 ∈ s2
hp2s1 : p2 ∉ s1
⊢ s1.direction < s2.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
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
p : P
hp : p ∈ ↑s1
hle : s1 ≤ s2
p2 : P
hp2 : p2 ∈ s2
hp2s1 : p2 ∉ s1
⊢ s1.direction ≤ s2.direction ∧ ∃ x ∈ s2.direction, x ∉ s1.direction

tactic: use direction_le hle, p2 -ᵥ p, vsub_mem_direction hp2 (hle 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
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
p : P
hp : p ∈ ↑s1
hle : s1 ≤ s2
p2 : P
hp2 : p2 ∈ s2
hp2s1 : p2 ∉ s1
⊢ s1.direction ≤ s2.direction ∧ ∃ x ∈ s2.direction, x ∉ s1.direction
state_after: case right
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
p : P
hp : p ∈ ↑s1
hle : s1 ≤ s2
p2 : P
hp2 : p2 ∈ s2
hp2s1 : p2 ∉ s1
⊢ p2 -ᵥ p ∉ s1.direction

tactic: intro hm
state_before: case right
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
p : P
hp : p ∈ ↑s1
hle : s1 ≤ s2
p2 : P
hp2 : p2 ∈ s2
hp2s1 : p2 ∉ s1
⊢ p2 -ᵥ p ∉ s1.direction
state_after: case right
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
p : P
hp : p ∈ ↑s1
hle : s1 ≤ s2
p2 : P
hp2 : p2 ∈ s2
hp2s1 : p2 ∉ s1
hm : p2 -ᵥ p ∈ s1.direction
⊢ False

tactic: rw [vsub_right_mem_direction_iff_mem hp p2] at hm
state_before: case right
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
p : P
hp : p ∈ ↑s1
hle : s1 ≤ s2
p2 : P
hp2 : p2 ∈ s2
hp2s1 : p2 ∉ s1
hm : p2 -ᵥ p ∈ s1.direction
⊢ False
state_after: case right
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
p : P
hp : p ∈ ↑s1
hle : s1 ≤ s2
p2 : P
hp2 : p2 ∈ s2
hp2s1 : p2 ∉ s1
hm : p2 ∈ s1
⊢ False

tactic: exact hp2s1 hm
state_before: case right
k : Type u_1
V : Type u_2
P : Type u_3
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
p₁ p₂ : P
s1 s2 : AffineSubspace k P
p : P
hp : p ∈ ↑s1
hle : s1 ≤ s2
p2 : P
hp2 : p2 ∈ s2
hp2s1 : p2 ∉ s1
hm : p2 ∈ s1
⊢ False
state_after: no goals