Theorem: linearIndependent_iUnion_of_directed
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: by_cases hη : Nonempty η
state_before: ι : Type u'
ι' : Type ?u.215590
R : Type u_3
K : Type ?u.215596
M : Type u_2
M' : Type ?u.215602
M'' : Type ?u.215605
V : Type u
V' : Type ?u.215610
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
η : Type u_1
s : η → Set M
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), LinearIndependent R fun x => ↑x
⊢ LinearIndependent R fun x => ↑x

tactic: skip
state_before: case pos
ι : Type u'
ι' : Type ?u.215590
R : Type u_3
K : Type ?u.215596
M : Type u_2
M' : Type ?u.215602
M'' : Type ?u.215605
V : Type u
V' : Type ?u.215610
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
η : Type u_1
s : η → Set M
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), LinearIndependent R fun x => ↑x
hη : Nonempty η
⊢ LinearIndependent R fun x => ↑x

tactic: refine' linearIndependent_of_finite (⋃ i, s i) fun t ht ft => _
state_before: case pos
ι : Type u'
ι' : Type ?u.215590
R : Type u_3
K : Type ?u.215596
M : Type u_2
M' : Type ?u.215602
M'' : Type ?u.215605
V : Type u
V' : Type ?u.215610
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
η : Type u_1
s : η → Set M
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), LinearIndependent R fun x => ↑x
hη : Nonempty η
⊢ LinearIndependent R fun x => ↑x

tactic: rcases finite_subset_iUnion ft ht with ⟨I, fi, hI⟩
state_before: case pos
ι : Type u'
ι' : Type ?u.215590
R : Type u_3
K : Type ?u.215596
M : Type u_2
M' : Type ?u.215602
M'' : Type ?u.215605
V : Type u
V' : Type ?u.215610
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
η : Type u_1
s : η → Set M
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), LinearIndependent R fun x => ↑x
hη : Nonempty η
t : Set M
ht : t ⊆ ⋃ (i : η), s i
ft : Set.Finite t
⊢ LinearIndependent R fun x => ↑x

tactic: rcases hs.finset_le fi.toFinset with ⟨i, hi⟩
state_before: case pos.intro.intro
ι : Type u'
ι' : Type ?u.215590
R : Type u_3
K : Type ?u.215596
M : Type u_2
M' : Type ?u.215602
M'' : Type ?u.215605
V : Type u
V' : Type ?u.215610
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
η : Type u_1
s : η → Set M
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), LinearIndependent R fun x => ↑x
hη : Nonempty η
t : Set M
ht : t ⊆ ⋃ (i : η), s i
ft : Set.Finite t
I : Set η
fi : Set.Finite I
hI : t ⊆ ⋃ (i : η) (_ : i ∈ I), s i
⊢ LinearIndependent R fun x => ↑x

tactic: exact (h i).mono (Subset.trans hI <| iUnion₂_subset fun j hj => hi j (fi.mem_toFinset.2 hj))
state_before: case pos.intro.intro.intro
ι : Type u'
ι' : Type ?u.215590
R : Type u_3
K : Type ?u.215596
M : Type u_2
M' : Type ?u.215602
M'' : Type ?u.215605
V : Type u
V' : Type ?u.215610
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
η : Type u_1
s : η → Set M
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), LinearIndependent R fun x => ↑x
hη : Nonempty η
t : Set M
ht : t ⊆ ⋃ (i : η), s i
ft : Set.Finite t
I : Set η
fi : Set.Finite I
hI : t ⊆ ⋃ (i : η) (_ : i ∈ I), s i
i : η
hi : ∀ (i_1 : η), i_1 ∈ Finite.toFinset fi → s i_1 ⊆ s i
⊢ LinearIndependent R fun x => ↑x

tactic: rintro _ ⟨_, ⟨i, _⟩, _⟩
state_before: case neg
ι : Type u'
ι' : Type ?u.215590
R : Type u_3
K : Type ?u.215596
M : Type u_2
M' : Type ?u.215602
M'' : Type ?u.215605
V : Type u
V' : Type ?u.215610
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
η : Type u_1
s : η → Set M
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), LinearIndependent R fun x => ↑x
hη : ¬Nonempty η
⊢ (⋃ (x : η), s x) ⊆ ∅

tactic: exact hη ⟨i⟩
state_before: case neg.intro.intro.intro
ι : Type u'
ι' : Type ?u.215590
R : Type u_3
K : Type ?u.215596
M : Type u_2
M' : Type ?u.215602
M'' : Type ?u.215605
V : Type u
V' : Type ?u.215610
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
η : Type u_1
s : η → Set M
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), LinearIndependent R fun x => ↑x
hη : ¬Nonempty η
a✝ : M
w✝ : Set M
right✝ : a✝ ∈ w✝
i : η
h✝ : (fun x => s x) i = w✝
⊢ a✝ ∈ ∅