Theorem: Matroid.exists_modularBase_of_iUnion_indep (Matroid/Modular.lean)

State before:
ι : Type u_1
α : Type u_2
M : Matroid α
B I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i j : ι
e f : α
h : M.Indep (⋃ i, Xs i)
⊢ ∃ B, M.ModularBase B Xs
Tactic:
obtain ⟨B, hB, hIB⟩ := h.exists_base_superset
State after:
case intro.intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i j : ι
e f : α
h : M.Indep (⋃ i, Xs i)
B : Set α
hB : M.Base B
hIB : ⋃ i, Xs i ⊆ B
⊢ ∃ B, M.ModularBase B Xs

State before:
case intro.intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i j : ι
e f : α
h : M.Indep (⋃ i, Xs i)
B : Set α
hB : M.Base B
hIB : ⋃ i, Xs i ⊆ B
⊢ ∃ B, M.ModularBase B Xs
Tactic:
refine ⟨B, hB, fun i ↦ ?_⟩
State after:
case intro.intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i✝ j : ι
e f : α
h : M.Indep (⋃ i, Xs i)
B : Set α
hB : M.Base B
hIB : ⋃ i, Xs i ⊆ B
i : ι
⊢ M.Basis (Xs i ∩ B) (Xs i)

State before:
case intro.intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i✝ j : ι
e f : α
h : M.Indep (⋃ i, Xs i)
B : Set α
hB : M.Base B
hIB : ⋃ i, Xs i ⊆ B
i : ι
⊢ M.Basis (Xs i ∩ B) (Xs i)
Tactic:
rw [inter_eq_self_of_subset_left <| iUnion_subset_iff.1 hIB i]
State after:
case intro.intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i✝ j : ι
e f : α
h : M.Indep (⋃ i, Xs i)
B : Set α
hB : M.Base B
hIB : ⋃ i, Xs i ⊆ B
i : ι
⊢ M.Basis (Xs i) (Xs i)

State before:
case intro.intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i✝ j : ι
e f : α
h : M.Indep (⋃ i, Xs i)
B : Set α
hB : M.Base B
hIB : ⋃ i, Xs i ⊆ B
i : ι
⊢ M.Basis (Xs i) (Xs i)
Tactic:
exact (h.subset (subset_iUnion _ i)).basis_self
State after:
no goals