Theorem: Matroid.Flat.union_flat_of_contract' (Matroid/Flat.lean)

State before:
α : Type u_1
M : Matroid α
I F X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e f : α
hF : (M ／ C).Flat F
⊢ M.Flat (F ∪ M.cl C)
Tactic:
replace hF := (flat_contract_iff'.1 hF).1.cl
State after:
α : Type u_1
M : Matroid α
I F X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e f : α
hF : M.cl (F ∪ C ∩ M.E) = F ∪ C ∩ M.E
⊢ M.Flat (F ∪ M.cl C)

State before:
α : Type u_1
M : Matroid α
I F X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e f : α
hF : M.cl (F ∪ C ∩ M.E) = F ∪ C ∩ M.E
⊢ M.Flat (F ∪ M.cl C)
Tactic:
rw [← cl_union_cl_right_eq, cl_inter_ground] at hF
State after:
α : Type u_1
M : Matroid α
I F X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e f : α
hF : M.cl (F ∪ M.cl C) = F ∪ C ∩ M.E
⊢ M.Flat (F ∪ M.cl C)

State before:
α : Type u_1
M : Matroid α
I F X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e f : α
hF : M.cl (F ∪ M.cl C) = F ∪ C ∩ M.E
⊢ M.Flat (F ∪ M.cl C)
Tactic:
rw [flat_iff_subset_cl_self (union_subset _ (M.cl_subset_ground _)), hF]
State after:
α : Type u_1
M : Matroid α
I F X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e f : α
hF : M.cl (F ∪ M.cl C) = F ∪ C ∩ M.E
⊢ F ∪ C ∩ M.E ⊆ F ∪ M.cl C

α : Type u_1
M : Matroid α
I F X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e f : α
hF : M.cl (F ∪ M.cl C) = F ∪ C ∩ M.E
⊢ F ⊆ M.E

State before:
α : Type u_1
M : Matroid α
I F X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e f : α
hF : M.cl (F ∪ M.cl C) = F ∪ C ∩ M.E
⊢ F ⊆ M.E
Tactic:
exact subset_union_left.trans (hF.symm.subset.trans (M.cl_subset_ground _))
State after:
no goals

State before:
α : Type u_1
M : Matroid α
I F X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e f : α
hF : M.cl (F ∪ M.cl C) = F ∪ C ∩ M.E
⊢ F ∪ C ∩ M.E ⊆ F ∪ M.cl C
Tactic:
exact union_subset_union_right _ <| (M.subset_cl _).trans (M.cl_inter_ground _).subset
State after:
no goals