Theorem: IndepMatroid.matroid_Indep
File: Mathlib/Data/Matroid/IndepAxioms.lean

Proof steps:
state_before: α : Type u_1
I B X : Set α
M : IndepMatroid α
⊢ ∀ ⦃I : Set α⦄, M.Indep I ↔ ∃ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) B ∧ I ⊆ B
state_after: α : Type u_1
I✝ B X : Set α
M : IndepMatroid α
I : Set α
h : M.Indep I
⊢ ∃ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) B ∧ I ⊆ B
tactic: refine fun I ↦ ⟨fun h ↦ ?_, fun ⟨B, ⟨h, _⟩, hIB'⟩ ↦ M.indep_subset h hIB'⟩
state_before: α : Type u_1
I✝ B X : Set α
M : IndepMatroid α
I : Set α
h : M.Indep I
⊢ ∃ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) B ∧ I ⊆ B
state_after: case intro
α : Type u_1
I✝ B✝ X : Set α
M : IndepMatroid α
I : Set α
h : M.Indep I
B : Set α
hB : B ∈ maximals (fun x x_1 => x ⊆ x_1) {Y | M.Indep Y ∧ I ⊆ Y ∧ Y ⊆ M.E}
⊢ ∃ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) B ∧ I ⊆ B
tactic: obtain ⟨B, hB⟩ := M.indep_maximal M.E Subset.rfl I h (M.subset_ground I h)
state_before: case intro
α : Type u_1
I✝ B✝ X : Set α
M : IndepMatroid α
I : Set α
h : M.Indep I
B : Set α
hB : B ∈ maximals (fun x x_1 => x ⊆ x_1) {Y | M.Indep Y ∧ I ⊆ Y ∧ Y ⊆ M.E}
⊢ ∃ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) B ∧ I ⊆ B
state_after: case intro
α : Type u_1
I✝ B✝ X : Set α
M : IndepMatroid α
I : Set α
h : M.Indep I
B : Set α
hB : (M.Indep B ∧ I ⊆ B ∧ B ⊆ M.E) ∧ ∀ ⦃y : Set α⦄, M.Indep y → I ⊆ y → y ⊆ M.E → B ⊆ y → B = y
⊢ ∃ B, (M.Indep B ∧ ∀ ⦃y : Set α⦄, M.Indep y → B ⊆ y → B = y) ∧ I ⊆ B
tactic: simp only [mem_maximals_iff, mem_setOf_eq, and_imp] at hB ⊢
state_before: case intro
α : Type u_1
I✝ B✝ X : Set α
M : IndepMatroid α
I : Set α
h : M.Indep I
B : Set α
hB : (M.Indep B ∧ I ⊆ B ∧ B ⊆ M.E) ∧ ∀ ⦃y : Set α⦄, M.Indep y → I ⊆ y → y ⊆ M.E → B ⊆ y → B = y
⊢ ∃ B, (M.Indep B ∧ ∀ ⦃y : Set α⦄, M.Indep y → B ⊆ y → B = y) ∧ I ⊆ B
state_after: no goals
tactic: exact ⟨B, ⟨hB.1.1,fun J hJ hBJ ↦ hB.2 hJ (hB.1.2.1.trans hBJ) (M.subset_ground J hJ) hBJ⟩,
      hB.1.2.1⟩
state_before: α : Type u_1
I B X : Set α
M : IndepMatroid α
⊢ ∃ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) B
state_after: case intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B : Set α
hB₁ : ∀ ⦃b : Set α⦄, b ∈ {Y | M.Indep Y ∧ ∅ ⊆ Y ∧ Y ⊆ M.E} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB : M.Indep B
⊢ ∃ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) B
tactic: obtain ⟨B, ⟨hB,-,-⟩, hB₁⟩ :=
      M.indep_maximal M.E rfl.subset ∅ M.indep_empty (empty_subset _)
state_before: case intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B : Set α
hB₁ : ∀ ⦃b : Set α⦄, b ∈ {Y | M.Indep Y ∧ ∅ ⊆ Y ∧ Y ⊆ M.E} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB : M.Indep B
⊢ ∃ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) B
state_after: no goals
tactic: exact ⟨B, ⟨hB, fun B' hB' h' ↦ hB₁ ⟨hB', empty_subset _,M.subset_ground B' hB'⟩ h'⟩⟩
state_before: α : Type u_1
I B X : Set α
M : IndepMatroid α
⊢ ExchangeProperty fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
state_after: case intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
⊢ ∃ b ∈ B' \ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert b (B \ {e}))
tactic: rintro B B' ⟨hB, hBmax⟩ ⟨hB',hB'max⟩ e he
state_before: case intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
⊢ ∃ b ∈ B' \ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert b (B \ {e}))
state_after: case intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hf : f ∈ B' \ (B \ {e})
hfB : M.Indep (insert f (B \ {e}))
⊢ ∃ b ∈ B' \ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert b (B \ {e}))
tactic: obtain ⟨f,hf,hfB⟩ := M.indep_aug (M.indep_subset hB diff_subset) hnotmax ⟨hB',hB'max⟩
state_before: case intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hf : f ∈ B' \ (B \ {e})
hfB : M.Indep (insert f (B \ {e}))
⊢ ∃ b ∈ B' \ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert b (B \ {e}))
state_after: case intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hfB : M.Indep (insert f (B \ {e}))
hf : f ∈ B' ∧ (f ∈ B → f = e)
⊢ ∃ b ∈ B' \ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert b (B \ {e}))
tactic: simp only [mem_diff, mem_singleton_iff, not_and, not_not] at hf
state_before: case intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hfB : M.Indep (insert f (B \ {e}))
hf : f ∈ B' ∧ (f ∈ B → f = e)
⊢ ∃ b ∈ B' \ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert b (B \ {e}))
state_after: case intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hfB : M.Indep (insert f (B \ {e}))
hf : f ∈ B' ∧ (f ∈ B → f = e)
hfB' : f ∉ B
⊢ ∃ b ∈ B' \ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert b (B \ {e}))
tactic: have hfB' : f ∉ B := by (intro hfB; obtain rfl := hf.2 hfB; exact he.2 hf.1)
state_before: case intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hfB : M.Indep (insert f (B \ {e}))
hf : f ∈ B' ∧ (f ∈ B → f = e)
hfB' : f ∉ B
⊢ ∃ b ∈ B' \ B, (fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert b (B \ {e}))
state_after: case intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hfB : M.Indep (insert f (B \ {e}))
hf : f ∈ B' ∧ (f ∈ B → f = e)
hfB' : f ∉ B
hnot : ¬(fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert f (B \ {e}))
⊢ False
tactic: refine ⟨f, ⟨hf.1, hfB'⟩, by_contra (fun hnot ↦ ?_)⟩
state_before: case intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hfB : M.Indep (insert f (B \ {e}))
hf : f ∈ B' ∧ (f ∈ B → f = e)
hfB' : f ∉ B
hnot : ¬(fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert f (B \ {e}))
⊢ False
state_after: case intro.intro.intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hfB : M.Indep (insert f (B \ {e}))
hf : f ∈ B' ∧ (f ∈ B → f = e)
hfB' : f ∉ B
hnot : ¬(fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert f (B \ {e}))
x : α
hxB : x ∈ B \ insert f (B \ {e})
hind : M.Indep (insert x (insert f (B \ {e})))
⊢ False
tactic: obtain ⟨x,hxB, hind⟩ := M.indep_aug hfB hnot ⟨hB, hBmax⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hfB : M.Indep (insert f (B \ {e}))
hf : f ∈ B' ∧ (f ∈ B → f = e)
hfB' : f ∉ B
hnot : ¬(fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert f (B \ {e}))
x : α
hxB : x ∈ B \ insert f (B \ {e})
hind : M.Indep (insert x (insert f (B \ {e})))
⊢ False
state_after: case intro.intro.intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hfB : M.Indep (insert f (B \ {e}))
hf : f ∈ B' ∧ (f ∈ B → f = e)
hfB' : f ∉ B
hnot : ¬(fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert f (B \ {e}))
x : α
hind : M.Indep (insert x (insert f (B \ {e})))
hxB : x ∈ B ∧ ¬x = f ∧ (x ∈ B → x = e)
⊢ False
tactic: simp only [mem_diff, mem_insert_iff, mem_singleton_iff, not_or, not_and, not_not] at hxB
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
e : α
he : e ∈ B \ B'
hnotmax : B \ {e} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
f : α
hfB : M.Indep (insert f (B \ {e}))
hf : f ∈ B' ∧ (f ∈ B → f = e)
hfB' : f ∉ B
hnot : ¬(fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert f (B \ {e}))
x : α
hind : M.Indep (insert x (insert f (B \ {e})))
hxB : x ∈ B ∧ ¬x = f ∧ (x ∈ B → x = e)
⊢ False
state_after: case intro.intro.intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
f : α
hfB' : f ∉ B
x : α
he : x ∈ B \ B'
hnotmax : B \ {x} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
hfB : M.Indep (insert f (B \ {x}))
hf : f ∈ B' ∧ (f ∈ B → f = x)
hnot : ¬(fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert f (B \ {x}))
hind : M.Indep (insert x (insert f (B \ {x})))
hxB : x ∈ B ∧ ¬x = f ∧ (x ∈ B → x = x)
⊢ False
tactic: obtain rfl := hxB.2.2 hxB.1
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
f : α
hfB' : f ∉ B
x : α
he : x ∈ B \ B'
hnotmax : B \ {x} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
hfB : M.Indep (insert f (B \ {x}))
hf : f ∈ B' ∧ (f ∈ B → f = x)
hnot : ¬(fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert f (B \ {x}))
hind : M.Indep (insert x (insert f (B \ {x})))
hxB : x ∈ B ∧ ¬x = f ∧ (x ∈ B → x = x)
⊢ False
state_after: case intro.intro.intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
f : α
hfB' : f ∉ B
x : α
he : x ∈ B \ B'
hnotmax : B \ {x} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
hfB : M.Indep (insert f (B \ {x}))
hf : f ∈ B' ∧ (f ∈ B → f = x)
hnot : ¬(fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert f (B \ {x}))
hind : M.Indep (insert f B)
hxB : x ∈ B ∧ ¬x = f ∧ (x ∈ B → x = x)
⊢ False
tactic: rw [insert_comm, insert_diff_singleton, insert_eq_of_mem he.1] at hind
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
I B✝ X : Set α
M : IndepMatroid α
B B' : Set α
hB : B ∈ {I | M.Indep I}
hBmax : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B b → (fun x x_1 => x ⊆ x_1) b B
hB' : B' ∈ {I | M.Indep I}
hB'max : ∀ ⦃b : Set α⦄, b ∈ {I | M.Indep I} → (fun x x_1 => x ⊆ x_1) B' b → (fun x x_1 => x ⊆ x_1) b B'
f : α
hfB' : f ∉ B
x : α
he : x ∈ B \ B'
hnotmax : B \ {x} ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
hfB : M.Indep (insert f (B \ {x}))
hf : f ∈ B' ∧ (f ∈ B → f = x)
hnot : ¬(fun x => x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (insert f (B \ {x}))
hind : M.Indep (insert f B)
hxB : x ∈ B ∧ ¬x = f ∧ (x ∈ B → x = x)
⊢ False
state_after: no goals
tactic: exact not_mem_subset (hBmax hind (subset_insert _ _)) hfB' (mem_insert _ _)