Theorem: Matroid.er_le_iff (Matroid/Rank.lean)

State before:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
⊢ M.er X ≤ n ↔ ∀ {I : Set α}, I ⊆ X → M.Indep I → I.encard ≤ n
Tactic:
refine ⟨fun h I hIX hI ↦ (hI.er.symm.trans_le ((M.er_mono hIX).trans h)), fun h ↦ ?_⟩
State after:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
h : ∀ {I : Set α}, I ⊆ X → M.Indep I → I.encard ≤ n
⊢ M.er X ≤ n

State before:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
h : ∀ {I : Set α}, I ⊆ X → M.Indep I → I.encard ≤ n
⊢ M.er X ≤ n
Tactic:
obtain ⟨I, hI⟩ := M.exists_basis' X
State after:
case intro
α : Type u_1
ι : Type u_2
M N : Matroid α
I✝ B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
h : ∀ {I : Set α}, I ⊆ X → M.Indep I → I.encard ≤ n
I : Set α
hI : M.Basis' I X
⊢ M.er X ≤ n

State before:
case intro
α : Type u_1
ι : Type u_2
M N : Matroid α
I✝ B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
h : ∀ {I : Set α}, I ⊆ X → M.Indep I → I.encard ≤ n
I : Set α
hI : M.Basis' I X
⊢ M.er X ≤ n
Tactic:
rw [← hI.encard]
State after:
case intro
α : Type u_1
ι : Type u_2
M N : Matroid α
I✝ B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
h : ∀ {I : Set α}, I ⊆ X → M.Indep I → I.encard ≤ n
I : Set α
hI : M.Basis' I X
⊢ I.encard ≤ n

State before:
case intro
α : Type u_1
ι : Type u_2
M N : Matroid α
I✝ B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
h : ∀ {I : Set α}, I ⊆ X → M.Indep I → I.encard ≤ n
I : Set α
hI : M.Basis' I X
⊢ I.encard ≤ n
Tactic:
exact h hI.subset hI.indep
State after:
no goals