Theorem: Matroid.Basis.iUnion_basis_iUnion
File: Mathlib/Data/Matroid/Basic.lean

Proof steps:
state_before: α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
⊢ M.Basis (⋃ i, I i) (⋃ i, X i)
state_after: α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
⊢ ∀ e ∈ (⋃ i, X i) \ ⋃ i, I i, M.Dep (insert e (⋃ i, I i))
tactic: refine h_ind.basis_of_forall_insert
    (iUnion_subset (fun i ↦ (hI i).subset.trans (subset_iUnion _ _))) ?_
state_before: α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
⊢ ∀ e ∈ (⋃ i, X i) \ ⋃ i, I i, M.Dep (insert e (⋃ i, I i))
state_after: case intro.intro.intro.intro.refl
α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e✝ : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
e : α
he' : e ∉ ⋃ i, I i
i : ι
hes : e ∈ X i
⊢ M.Dep (insert e (⋃ i, I i))
tactic: rintro e ⟨⟨_, ⟨⟨i, hi, rfl⟩, (hes : e ∈ X i)⟩⟩, he'⟩
state_before: case intro.intro.intro.intro.refl
α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e✝ : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
e : α
he' : e ∉ ⋃ i, I i
i : ι
hes : e ∈ X i
⊢ M.Dep (insert e (⋃ i, I i))
state_after: case intro.intro.intro.intro.refl
α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e✝ : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
e : α
he' : ∀ (x : ι), e ∉ I x
i : ι
hes : e ∈ X i
⊢ M.Dep (insert e (⋃ i, I i))
tactic: rw [mem_iUnion, not_exists] at he'
state_before: case intro.intro.intro.intro.refl
α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e✝ : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
e : α
he' : ∀ (x : ι), e ∉ I x
i : ι
hes : e ∈ X i
⊢ M.Dep (insert e (⋃ i, I i))
state_after: case intro.intro.intro.intro.refl
α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e✝ : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
e : α
he' : ∀ (x : ι), e ∉ I x
i : ι
hes : e ∈ X i
⊢ insert e (⋃ i, I i) ⊆ M.E
tactic: refine ((hI i).insert_dep ⟨hes, he' _⟩).superset (insert_subset_insert (subset_iUnion _ _)) ?_
state_before: case intro.intro.intro.intro.refl
α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e✝ : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
e : α
he' : ∀ (x : ι), e ∉ I x
i : ι
hes : e ∈ X i
⊢ insert e (⋃ i, I i) ⊆ M.E
state_after: case intro.intro.intro.intro.refl
α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e✝ : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
e : α
he' : ∀ (x : ι), e ∉ I x
i : ι
hes : e ∈ X i
⊢ e ∈ M.E
tactic: rw [insert_subset_iff, iUnion_subset_iff, and_iff_left (fun i ↦ (hI i).indep.subset_ground)]
state_before: case intro.intro.intro.intro.refl
α : Type u_1
M : Matroid α
B I✝ J X✝ Y : Set α
e✝ : α
ι : Type u_2
X I : ι → Set α
hI : ∀ (i : ι), M.Basis (I i) (X i)
h_ind : M.Indep (⋃ i, I i)
e : α
he' : ∀ (x : ι), e ∉ I x
i : ι
hes : e ∈ X i
⊢ e ∈ M.E
state_after: no goals
tactic: exact (hI i).subset_ground hes