Theorem: Matroid.map_dual (Matroid/Map.lean)

State before:
α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
⊢ (M.map f hf)✶ = M✶.map f hf
Tactic:
apply eq_of_base_iff_base_forall (by simp)
State after:
α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
⊢ ∀ ⦃B : Set β⦄, B ⊆ (M.map f hf)✶.E → ((M.map f hf)✶.Base B ↔ (M✶.map f hf).Base B)

State before:
α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
⊢ ∀ ⦃B : Set β⦄, B ⊆ (M.map f hf)✶.E → ((M.map f hf)✶.Base B ↔ (M✶.map f hf).Base B)
Tactic:
simp only [dual_ground, map_ground, subset_image_iff, forall_exists_index, and_imp,
  forall_apply_eq_imp_iff₂, dual_base_iff']
State after:
α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
⊢ ∀ a ⊆ M.E, ((M.map f hf).Base (f '' M.E \ f '' a) ∧ ∃ u ⊆ M.E, f '' u = f '' a) ↔ (M✶.map f hf).Base (f '' a)

State before:
α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
⊢ ∀ a ⊆ M.E, ((M.map f hf).Base (f '' M.E \ f '' a) ∧ ∃ u ⊆ M.E, f '' u = f '' a) ↔ (M✶.map f hf).Base (f '' a)
Tactic:
intro B hB
State after:
α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
⊢ ((M.map f hf).Base (f '' M.E \ f '' B) ∧ ∃ u ⊆ M.E, f '' u = f '' B) ↔ (M✶.map f hf).Base (f '' B)

State before:
α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
⊢ ((M.map f hf).Base (f '' M.E \ f '' B) ∧ ∃ u ⊆ M.E, f '' u = f '' B) ↔ (M✶.map f hf).Base (f '' B)
Tactic:
simp_rw [← hf.image_diff_subset hB, map_image_base_iff diff_subset,
  map_image_base_iff (show B ⊆ M✶.E from hB), dual_base_iff hB, and_iff_left_iff_imp]
State after:
α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
⊢ M.Base (M.E \ B) → ∃ u ⊆ M.E, f '' u = f '' B

State before:
α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
⊢ M.Base (M.E \ B) → ∃ u ⊆ M.E, f '' u = f '' B
Tactic:
exact fun _ ↦ ⟨B, hB, rfl⟩
State after:
no goals

State before:
α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
⊢ (M.map f hf)✶.E = (M✶.map f hf).E
Tactic:
simp
State after:
no goals