Theorem: Matroid.ModularFamily_of_loopEquiv (Matroid/Modular.lean)

State before:
ι : Type u_1
α : Type u_2
M : Matroid α
B I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i j : ι
e f : α
h : M.ModularFamily Xs
he : ∀ (i : ι), M.LoopEquiv (Xs i) (Ys i)
⊢ M.ModularFamily Ys
Tactic:
obtain ⟨B, hB⟩ := h
State after:
case intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i j : ι
e f : α
he : ∀ (i : ι), M.LoopEquiv (Xs i) (Ys i)
B : Set α
hB : M.ModularBase B Xs
⊢ M.ModularFamily Ys

State before:
case intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i j : ι
e f : α
he : ∀ (i : ι), M.LoopEquiv (Xs i) (Ys i)
B : Set α
hB : M.ModularBase B Xs
⊢ M.ModularFamily Ys
Tactic:
refine ⟨B, hB.base, fun i ↦ ?_⟩
State after:
case intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i✝ j : ι
e f : α
he : ∀ (i : ι), M.LoopEquiv (Xs i) (Ys i)
B : Set α
hB : M.ModularBase B Xs
i : ι
⊢ M.Basis (Ys i ∩ B) (Ys i)

State before:
case intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i✝ j : ι
e f : α
he : ∀ (i : ι), M.LoopEquiv (Xs i) (Ys i)
B : Set α
hB : M.ModularBase B Xs
i : ι
⊢ M.Basis (Ys i ∩ B) (Ys i)
Tactic:
rw [← (he i).basis_iff, ← (he i).inter_eq_of_indep hB.indep]
State after:
case intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i✝ j : ι
e f : α
he : ∀ (i : ι), M.LoopEquiv (Xs i) (Ys i)
B : Set α
hB : M.ModularBase B Xs
i : ι
⊢ M.Basis (Xs i ∩ B) (Xs i)

State before:
case intro
ι : Type u_1
α : Type u_2
M : Matroid α
B✝ I J X X' Y Y' F : Set α
Xs Ys Js Is : ι → Set α
i✝ j : ι
e f : α
he : ∀ (i : ι), M.LoopEquiv (Xs i) (Ys i)
B : Set α
hB : M.ModularBase B Xs
i : ι
⊢ M.Basis (Xs i ∩ B) (Xs i)
Tactic:
exact hB.basis_inter i
State after:
no goals