K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
⊢ (∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}) ↔ ∃ v₀, s ≤ span K {v₀}
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
⊢ Module.rank K { x // x ∈ s } ≤ 1 ↔ ∃ v₀, s ≤ span K {v₀}
rw [rank_submodule_le_one_iff]
case mp
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
⊢ (∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}) → ∃ v₀, s ≤ span K {v₀}

case mpr
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
⊢ (∃ v₀, s ≤ span K {v₀}) → ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
⊢ (∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}) ↔ ∃ v₀, s ≤ span K {v₀}
constructor
case mp.intro.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
left✝ : v₀ ∈ s
h : s ≤ span K {v₀}
⊢ ∃ v₀, s ≤ span K {v₀}
case mp
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
⊢ (∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}) → ∃ v₀, s ≤ span K {v₀}
rintro ⟨v₀, _, h⟩
no goals
case mp.intro.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
left✝ : v₀ ∈ s
h : s ≤ span K {v₀}
⊢ ∃ v₀, s ≤ span K {v₀}
exact ⟨v₀, h⟩
case mpr.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
case mpr
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
⊢ (∃ v₀, s ≤ span K {v₀}) → ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
rintro ⟨v₀, h⟩
case pos
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
hw : ∃ w, w ∈ s ∧ w ≠ 0
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}

case neg
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
hw : ¬∃ w, w ∈ s ∧ w ≠ 0
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
case mpr.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
by_cases hw : ∃ w : V, w ∈ s ∧ w ≠ 0
case pos.intro.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
w : V
hw : w ∈ s
hw0 : w ≠ 0
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
case pos
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
hw : ∃ w, w ∈ s ∧ w ≠ 0
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
rcases hw with ⟨w, hw, hw0⟩
case pos.intro.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
w : V
hw : w ∈ s
hw0 : w ≠ 0
⊢ s ≤ span K {w}
case pos.intro.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
w : V
hw : w ∈ s
hw0 : w ≠ 0
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
use w, hw
case pos.intro.intro.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
r' : K
hw : r' • v₀ ∈ s
hw0 : r' • v₀ ≠ 0
⊢ s ≤ span K {r' • v₀}
case pos.intro.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
w : V
hw : w ∈ s
hw0 : w ≠ 0
⊢ s ≤ span K {w}
rcases mem_span_singleton.1 (h hw) with ⟨r', rfl⟩
case pos.intro.intro.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
r' : K
hw : r' • v₀ ∈ s
hw0 : r' • v₀ ≠ 0
h0 : r' ≠ 0
⊢ s ≤ span K {r' • v₀}
case pos.intro.intro.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
r' : K
hw : r' • v₀ ∈ s
hw0 : r' • v₀ ≠ 0
⊢ s ≤ span K {r' • v₀}
have h0 : r' ≠ 0 := by
  rintro rfl
  simp at hw0
no goals
case pos.intro.intro.intro
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
r' : K
hw : r' • v₀ ∈ s
hw0 : r' • v₀ ≠ 0
h0 : r' ≠ 0
⊢ s ≤ span K {r' • v₀}
rwa [span_singleton_smul_eq (IsUnit.mk0 _ h0) _]
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
hw : 0 • v₀ ∈ s
hw0 : 0 • v₀ ≠ 0
⊢ False
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
r' : K
hw : r' • v₀ ∈ s
hw0 : r' • v₀ ≠ 0
⊢ r' ≠ 0
rintro rfl
no goals
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
hw : 0 • v₀ ∈ s
hw0 : 0 • v₀ ≠ 0
⊢ False
simp at hw0
case neg
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
hw : ∀ (w : V), w ∈ s → w = 0
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
case neg
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
hw : ¬∃ w, w ∈ s ∧ w ≠ 0
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
push_neg  at hw
case neg
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
hw : s = ⊥
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
case neg
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
hw : ∀ (w : V), w ∈ s → w = 0
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
rw [← Submodule.eq_bot_iff] at hw
no goals
case neg
K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.1067743
inst✝⁶ : DivisionRing K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V'
inst✝ : Module K V'
s : Submodule K V
v₀ : V
h : s ≤ span K {v₀}
hw : s = ⊥
⊢ ∃ v₀, v₀ ∈ s ∧ s ≤ span K {v₀}
simp [hw]