Theorem: Matroid.cl_iUnion_cl_eq_cl_iUnion (Matroid/Closure.lean)

State before:
α : Type u_1
ι : Type u_2
M✝ : Matroid α
F I J X Y B C R : Set α
e f x y : α
M : Matroid α
Xs : ι → Set α
⊢ M.cl (⋃ i, M.cl (Xs i)) = M.cl (⋃ i, Xs i)
Tactic:
refine (M.cl_subset_cl_of_subset_cl
  (iUnion_subset (fun i ↦ M.cl_subset_cl (subset_iUnion _ _)))).antisymm ?_
State after:
α : Type u_1
ι : Type u_2
M✝ : Matroid α
F I J X Y B C R : Set α
e f x y : α
M : Matroid α
Xs : ι → Set α
⊢ M.cl (⋃ i, Xs i) ⊆ M.cl (⋃ i, M.cl (Xs i))

State before:
α : Type u_1
ι : Type u_2
M✝ : Matroid α
F I J X Y B C R : Set α
e f x y : α
M : Matroid α
Xs : ι → Set α
⊢ M.cl (⋃ i, Xs i) ⊆ M.cl (⋃ i, M.cl (Xs i))
Tactic:
rw [← cl_inter_ground, iUnion_inter]
State after:
α : Type u_1
ι : Type u_2
M✝ : Matroid α
F I J X Y B C R : Set α
e f x y : α
M : Matroid α
Xs : ι → Set α
⊢ M.cl (⋃ i, Xs i ∩ M.E) ⊆ M.cl (⋃ i, M.cl (Xs i))

State before:
α : Type u_1
ι : Type u_2
M✝ : Matroid α
F I J X Y B C R : Set α
e f x y : α
M : Matroid α
Xs : ι → Set α
⊢ M.cl (⋃ i, Xs i ∩ M.E) ⊆ M.cl (⋃ i, M.cl (Xs i))
Tactic:
refine' M.cl_subset_cl (iUnion_subset (fun i ↦ (M.subset_cl _).trans _))
State after:
α : Type u_1
ι : Type u_2
M✝ : Matroid α
F I J X Y B C R : Set α
e f x y : α
M : Matroid α
Xs : ι → Set α
i : ι
⊢ M.cl (Xs i ∩ M.E) ⊆ ⋃ i, M.cl (Xs i)

State before:
α : Type u_1
ι : Type u_2
M✝ : Matroid α
F I J X Y B C R : Set α
e f x y : α
M : Matroid α
Xs : ι → Set α
i : ι
⊢ M.cl (Xs i ∩ M.E) ⊆ ⋃ i, M.cl (Xs i)
Tactic:
rw [cl_inter_ground]
State after:
α : Type u_1
ι : Type u_2
M✝ : Matroid α
F I J X Y B C R : Set α
e f x y : α
M : Matroid α
Xs : ι → Set α
i : ι
⊢ M.cl (Xs i) ⊆ ⋃ i, M.cl (Xs i)

State before:
α : Type u_1
ι : Type u_2
M✝ : Matroid α
F I J X Y B C R : Set α
e f x y : α
M : Matroid α
Xs : ι → Set α
i : ι
⊢ M.cl (Xs i) ⊆ ⋃ i, M.cl (Xs i)
Tactic:
exact subset_iUnion (fun i ↦ M.cl (Xs i)) i
State after:
no goals