Theorem: Matroid.rFin.iUnion (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 : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
⊢ M.rFin (⋃ i, Xs i)
Tactic:
choose Is hIs using fun i ↦ M.exists_basis' (Xs i)
State after:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
⊢ M.rFin (⋃ i, Xs i)

State before:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
⊢ M.rFin (⋃ i, Xs i)
Tactic:
have hfin : (⋃ i, Is i).Finite := finite_iUnion <| fun i ↦ (h i).finite_of_basis' (hIs i)
State after:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
hfin : (⋃ i, Is i).Finite
⊢ M.rFin (⋃ i, Xs i)

State before:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
hfin : (⋃ i, Is i).Finite
⊢ M.rFin (⋃ i, Xs i)
Tactic:
rw [← rFin_cl_iff]
State after:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
hfin : (⋃ i, Is i).Finite
⊢ M.rFin (M.cl (⋃ i, Xs i))

State before:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
hfin : (⋃ i, Is i).Finite
⊢ M.rFin (M.cl (⋃ i, Xs i))
Tactic:
have hcl := (M.rFin_of_finite hfin).to_cl
State after:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
hfin : (⋃ i, Is i).Finite
hcl : M.rFin (M.cl (⋃ i, Is i))
⊢ M.rFin (M.cl (⋃ i, Xs i))

State before:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
hfin : (⋃ i, Is i).Finite
hcl : M.rFin (M.cl (⋃ i, Is i))
⊢ M.rFin (M.cl (⋃ i, Xs i))
Tactic:
rw [← M.cl_iUnion_cl_eq_cl_iUnion]
State after:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
hfin : (⋃ i, Is i).Finite
hcl : M.rFin (M.cl (⋃ i, Is i))
⊢ M.rFin (M.cl (⋃ i, M.cl (Xs i)))

State before:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
hfin : (⋃ i, Is i).Finite
hcl : M.rFin (M.cl (⋃ i, Is i))
⊢ M.rFin (M.cl (⋃ i, M.cl (Xs i)))
Tactic:
simp_rw [← (hIs _).cl_eq_cl, M.cl_iUnion_cl_eq_cl_iUnion]
State after:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
hfin : (⋃ i, Is i).Finite
hcl : M.rFin (M.cl (⋃ i, Is i))
⊢ M.rFin (M.cl (⋃ i, Is i))

State before:
α : Type u_1
ι : Type u_2
M N : Matroid α
I B X X' Y Y' Z R : Set α
n : ℕ∞
e f : α
inst✝ : Fintype ι
Xs : ι → Set α
h : ∀ (i : ι), M.rFin (Xs i)
Is : ι → Set α
hIs : ∀ (i : ι), M.Basis' (Is i) (Xs i)
hfin : (⋃ i, Is i).Finite
hcl : M.rFin (M.cl (⋃ i, Is i))
⊢ M.rFin (M.cl (⋃ i, Is i))
Tactic:
assumption
State after:
no goals