Theorem: Matroid.Flat.covBy_iff_relRank_eq_one (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.Flat F₀
hF : M.Flat F
⊢ F₀ ⋖[M] F ↔ F₀ ⊆ F ∧ M.relRank F₀ F = 1
Tactic:
simp_rw [hF₀.covBy_iff_eq_cl_insert, relRank_eq_one_iff hF.subset_ground, hF₀.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.Flat F₀
hF : M.Flat F
⊢ (∃ e ∈ M.E \ F₀, F = M.cl (insert e F₀)) ↔ F₀ ⊆ F ∧ ∃ e ∈ F \ F₀, F ⊆ M.cl (insert e F₀)

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.Flat F₀
hF : M.Flat F
⊢ (∃ e ∈ M.E \ F₀, F = M.cl (insert e F₀)) ↔ F₀ ⊆ F ∧ ∃ e ∈ F \ F₀, F ⊆ M.cl (insert e F₀)
Tactic:
refine ⟨?_, fun ⟨hss, e, he, h⟩ ↦ ⟨e, ?_, h.antisymm ?_⟩⟩
State after:
case refine_1
α : 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.Flat F₀
hF : M.Flat F
⊢ (∃ e ∈ M.E \ F₀, F = M.cl (insert e F₀)) → F₀ ⊆ F ∧ ∃ e ∈ F \ F₀, F ⊆ M.cl (insert e F₀)

case refine_2
α : 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.Flat F₀
hF : M.Flat F
x✝ : F₀ ⊆ F ∧ ∃ e ∈ F \ F₀, F ⊆ M.cl (insert e F₀)
hss : F₀ ⊆ F
e : α
he : e ∈ F \ F₀
h : F ⊆ M.cl (insert e F₀)
⊢ e ∈ M.E \ F₀

case refine_3
α : 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.Flat F₀
hF : M.Flat F
x✝ : F₀ ⊆ F ∧ ∃ e ∈ F \ F₀, F ⊆ M.cl (insert e F₀)
hss : F₀ ⊆ F
e : α
he : e ∈ F \ F₀
h : F ⊆ M.cl (insert e F₀)
⊢ M.cl (insert e F₀) ⊆ F

State before:
case refine_3
α : 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.Flat F₀
hF : M.Flat F
x✝ : F₀ ⊆ F ∧ ∃ e ∈ F \ F₀, F ⊆ M.cl (insert e F₀)
hss : F₀ ⊆ F
e : α
he : e ∈ F \ F₀
h : F ⊆ M.cl (insert e F₀)
⊢ M.cl (insert e F₀) ⊆ F
Tactic:
exact hF.cl_subset_iff_subset.2 <| insert_subset he.1 hss
State after:
no goals

State before:
case refine_1
α : 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.Flat F₀
hF : M.Flat F
⊢ (∃ e ∈ M.E \ F₀, F = M.cl (insert e F₀)) → F₀ ⊆ F ∧ ∃ e ∈ F \ F₀, F ⊆ M.cl (insert e F₀)
Tactic:
rintro ⟨e, ⟨he, heE⟩, rfl⟩
State after:
case refine_1.intro.intro.intro
α : Type u_1
M : Matroid α
I X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e✝ f : α
hF₀ : M.Flat F₀
e : α
he : e ∈ M.E
heE : e ∉ F₀
hF : M.Flat (M.cl (insert e F₀))
⊢ F₀ ⊆ M.cl (insert e F₀) ∧ ∃ e_1 ∈ M.cl (insert e F₀) \ F₀, M.cl (insert e F₀) ⊆ M.cl (insert e_1 F₀)

State before:
case refine_1.intro.intro.intro
α : Type u_1
M : Matroid α
I X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e✝ f : α
hF₀ : M.Flat F₀
e : α
he : e ∈ M.E
heE : e ∉ F₀
hF : M.Flat (M.cl (insert e F₀))
⊢ F₀ ⊆ M.cl (insert e F₀) ∧ ∃ e_1 ∈ M.cl (insert e F₀) \ F₀, M.cl (insert e F₀) ⊆ M.cl (insert e_1 F₀)
Tactic:
refine ⟨M.subset_cl_of_subset (subset_insert _ _), ⟨e, ⟨?_, heE⟩, rfl.subset⟩⟩
State after:
case refine_1.intro.intro.intro
α : Type u_1
M : Matroid α
I X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e✝ f : α
hF₀ : M.Flat F₀
e : α
he : e ∈ M.E
heE : e ∉ F₀
hF : M.Flat (M.cl (insert e F₀))
⊢ e ∈ M.cl (insert e F₀)

State before:
case refine_1.intro.intro.intro
α : Type u_1
M : Matroid α
I X Y F' F₀ F₁ F₂ P L H H₁ H₂ H' B C K : Set α
e✝ f : α
hF₀ : M.Flat F₀
e : α
he : e ∈ M.E
heE : e ∉ F₀
hF : M.Flat (M.cl (insert e F₀))
⊢ e ∈ M.cl (insert e F₀)
Tactic:
exact M.mem_cl_of_mem (mem_insert _ _)
State after:
no goals

State before:
case refine_2
α : 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.Flat F₀
hF : M.Flat F
x✝ : F₀ ⊆ F ∧ ∃ e ∈ F \ F₀, F ⊆ M.cl (insert e F₀)
hss : F₀ ⊆ F
e : α
he : e ∈ F \ F₀
h : F ⊆ M.cl (insert e F₀)
⊢ e ∈ M.E \ F₀
Tactic:
apply diff_subset_diff_left hF.subset_ground he
State after:
no goals