ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Finmap.mem_erase
@[simp]
theorem mem_erase {a a' : α} {s : Finmap β} : a' ∈ erase a s ↔ a' ≠ a ∧ a' ∈ s 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a a' : α} {s : Finmap β}
Goal: a' ∈ Finmap.erase a s ↔ a' ≠ a ∧ a' ∈ s
-- Finmap.not_mem_erase_self
theorem not_mem_erase_self {a : α} {s : Finmap β} : ¬a ∈ erase a s 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {s : Finmap β}
Goal: a ∉ Finmap.erase a s
-- Finmap.lookup_erase
@[simp]
theorem lookup_erase (a) (s : Finmap β) : lookup a (erase a s) = none 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] (a : α) (s : Finmap β)
Goal: Finmap.lookup a (Finmap.erase a s) = none
-- Finmap.lookup_erase_ne
@[simp]
theorem lookup_erase_ne {a a'} {s : Finmap β} (h : a ≠ a') : lookup a (erase a' s) = lookup a s 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a a' : α} {s : Finmap β} (h : a ≠ a')
Goal: Finmap.lookup a (Finmap.erase a' s) = Finmap.lookup a s
-- Finmap.erase_erase
theorem erase_erase {a a' : α} {s : Finmap β} : erase a (erase a' s) = erase a' (erase a s) 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a a' : α} {s : Finmap β}
Goal: Finmap.erase a (Finmap.erase a' s) = Finmap.erase a' (Finmap.erase a s)
-- Finmap.insert_toFinmap
@[simp]
theorem insert_toFinmap (a : α) (b : β a) (s : AList β) :
    insert a b (AList.toFinmap s) = AList.toFinmap (s.insert a b) 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] (a : α) (b : β a) (s : AList β)
Goal: Finmap.insert a b ⟦s⟧ = ⟦AList.insert a b s⟧
-- Finmap.insert_entries_of_neg
theorem insert_entries_of_neg {a : α} {b : β a} {s : Finmap β} :
    a ∉ s → (insert a b s).entries = ⟨a, b⟩ ::ₘ s.entries 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {b : β a} {s : Finmap β}
Goal: a ∉ s → (Finmap.insert a b s).entries = ⟨a, b⟩ ::ₘ s.entries
-- Finmap.mem_insert
@[simp]
theorem mem_insert {a a' : α} {b' : β a'} {s : Finmap β} : a ∈ insert a' b' s ↔ a = a' ∨ a ∈ s 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a a' : α} {b' : β a'} {s : Finmap β}
Goal: a ∈ Finmap.insert a' b' s ↔ a = a' ∨ a ∈ s
-- Finmap.lookup_insert
@[simp]
theorem lookup_insert {a} {b : β a} (s : Finmap β) : lookup a (insert a b s) = some b 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {b : β a} (s : Finmap β)
Goal: Finmap.lookup a (Finmap.insert a b s) = some b
-- Finmap.lookup_insert_of_ne
@[simp]
theorem lookup_insert_of_ne {a a'} {b : β a} (s : Finmap β) (h : a' ≠ a) :
    lookup a' (insert a b s) = lookup a' s 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a a' : α} {b : β a} (s : Finmap β) (h : a' ≠ a)
Goal: Finmap.lookup a' (Finmap.insert a b s) = Finmap.lookup a' s
-- Finmap.insert_insert
@[simp]
theorem insert_insert {a} {b b' : β a} (s : Finmap β) :
    (s.insert a b).insert a b' = s.insert a b' 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {b b' : β a} (s : Finmap β)
Goal: Finmap.insert a b' (Finmap.insert a b s) = Finmap.insert a b' s
-- Finmap.insert_insert_of_ne
theorem insert_insert_of_ne {a a'} {b : β a} {b' : β a'} (s : Finmap β) (h : a ≠ a') :
    (s.insert a b).insert a' b' = (s.insert a' b').insert a b 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a a' : α} {b : β a} {b' : β a'} (s : Finmap β) (h : a ≠ a')
Goal: Finmap.insert a' b' (Finmap.insert a b s) = Finmap.insert a b (Finmap.insert a' b' s)
-- Finmap.toFinmap_cons
theorem toFinmap_cons (a : α) (b : β a) (xs : List (Sigma β)) :
    List.toFinmap (⟨a, b⟩ :: xs) = insert a b xs.toFinmap 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] (a : α) (b : β a) (xs : List (Sigma β))
Goal: (⟨a, b⟩ :: xs).toFinmap = Finmap.insert a b xs.toFinmap
-- Finmap.mem_list_toFinmap
theorem mem_list_toFinmap (a : α) (xs : List (Sigma β)) :
    a ∈ xs.toFinmap ↔ ∃ b : β a, Sigma.mk a b ∈ xs 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] (a : α) (xs : List (Sigma β))
Goal: a ∈ xs.toFinmap ↔ ∃ b, ⟨a, b⟩ ∈ xs
-- Finmap.insert_singleton_eq
@[simp]
theorem insert_singleton_eq {a : α} {b b' : β a} : insert a b (singleton a b') = singleton a b 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {b b' : β a}
Goal: Finmap.insert a b (Finmap.singleton a b') = Finmap.singleton a b
-- Finmap.extract_eq_lookup_erase
@[simp]
theorem extract_eq_lookup_erase (a : α) (s : Finmap β) : extract a s = (lookup a s, erase a s) 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] (a : α) (s : Finmap β)
Goal: Finmap.extract a s = (Finmap.lookup a s, Finmap.erase a s)
-- Finmap.mem_union
@[simp]
theorem mem_union {a} {s₁ s₂ : Finmap β} : a ∈ s₁ ∪ s₂ ↔ a ∈ s₁ ∨ a ∈ s₂ 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {s₁ s₂ : Finmap β}
Goal: a ∈ s₁ ∪ s₂ ↔ a ∈ s₁ ∨ a ∈ s₂
-- Finmap.union_toFinmap
@[simp]
theorem union_toFinmap (s₁ s₂ : AList β) : (toFinmap s₁) ∪ (toFinmap s₂) = toFinmap (s₁ ∪ s₂) 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] (s₁ s₂ : AList β)
Goal: ⟦s₁⟧ ∪ ⟦s₂⟧ = ⟦s₁ ∪ s₂⟧
-- Finmap.keys_union
theorem keys_union {s₁ s₂ : Finmap β} : (s₁ ∪ s₂).keys = s₁.keys ∪ s₂.keys 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {s₁ s₂ : Finmap β}
Goal: (s₁ ∪ s₂).keys = s₁.keys ∪ s₂.keys
-- Finmap.lookup_union_left
@[simp]
theorem lookup_union_left {a} {s₁ s₂ : Finmap β} : a ∈ s₁ → lookup a (s₁ ∪ s₂) = lookup a s₁ 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {s₁ s₂ : Finmap β}
Goal: a ∈ s₁ → Finmap.lookup a (s₁ ∪ s₂) = Finmap.lookup a s₁
-- Finmap.lookup_union_right
@[simp]
theorem lookup_union_right {a} {s₁ s₂ : Finmap β} : a ∉ s₁ → lookup a (s₁ ∪ s₂) = lookup a s₂ 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {s₁ s₂ : Finmap β}
Goal: a ∉ s₁ → Finmap.lookup a (s₁ ∪ s₂) = Finmap.lookup a s₂
-- Finmap.lookup_union_left_of_not_in
theorem lookup_union_left_of_not_in {a} {s₁ s₂ : Finmap β} (h : a ∉ s₂) :
    lookup a (s₁ ∪ s₂) = lookup a s₁ 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {s₁ s₂ : Finmap β} (h : a ∉ s₂)
Goal: Finmap.lookup a (s₁ ∪ s₂) = Finmap.lookup a s₁
-- Finmap.mem_lookup_union
theorem mem_lookup_union {a} {b : β a} {s₁ s₂ : Finmap β} :
    b ∈ lookup a (s₁ ∪ s₂) ↔ b ∈ lookup a s₁ ∨ a ∉ s₁ ∧ b ∈ lookup a s₂ 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {b : β a} {s₁ s₂ : Finmap β}
Goal: b ∈ Finmap.lookup a (s₁ ∪ s₂) ↔ b ∈ Finmap.lookup a s₁ ∨ a ∉ s₁ ∧ b ∈ Finmap.lookup a s₂
-- Finmap.mem_lookup_union_middle
theorem mem_lookup_union_middle {a} {b : β a} {s₁ s₂ s₃ : Finmap β} :
    b ∈ lookup a (s₁ ∪ s₃) → a ∉ s₂ → b ∈ lookup a (s₁ ∪ s₂ ∪ s₃) 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {b : β a} {s₁ s₂ s₃ : Finmap β}
Goal: b ∈ Finmap.lookup a (s₁ ∪ s₃) → a ∉ s₂ → b ∈ Finmap.lookup a (s₁ ∪ s₂ ∪ s₃)
-- Finmap.insert_union
theorem insert_union {a} {b : β a} {s₁ s₂ : Finmap β} : insert a b (s₁ ∪ s₂) = insert a b s₁ ∪ s₂ 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {a : α} {b : β a} {s₁ s₂ : Finmap β}
Goal: Finmap.insert a b (s₁ ∪ s₂) = Finmap.insert a b s₁ ∪ s₂
-- Finmap.union_assoc
theorem union_assoc {s₁ s₂ s₃ : Finmap β} : s₁ ∪ s₂ ∪ s₃ = s₁ ∪ (s₂ ∪ s₃) 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {s₁ s₂ s₃ : Finmap β}
Goal: s₁ ∪ s₂ ∪ s₃ = s₁ ∪ (s₂ ∪ s₃)
-- Finmap.empty_union
@[simp]
theorem empty_union {s₁ : Finmap β} : ∅ ∪ s₁ = s₁ 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {s₁ : Finmap β}
Goal: ∅ ∪ s₁ = s₁
-- Finmap.union_empty
@[simp]
theorem union_empty {s₁ : Finmap β} : s₁ ∪ ∅ = s₁ 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {s₁ : Finmap β}
Goal: s₁ ∪ ∅ = s₁
-- Finmap.erase_union_singleton
theorem erase_union_singleton (a : α) (b : β a) (s : Finmap β) (h : s.lookup a = some b) :
    s.erase a ∪ singleton a b = s 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] (a : α) (b : β a) (s : Finmap β) (h : Finmap.lookup a s = some b)
Goal: Finmap.erase a s ∪ Finmap.singleton a b = s
-- Finmap.disjoint_empty
theorem disjoint_empty (x : Finmap β) : Disjoint ∅ x 
Arguments: {α : Type u} {β : α → Type v} (x : Finmap β)
Goal: ∅.Disjoint x
-- Finmap.Disjoint.symm
@[symm]
theorem Disjoint.symm (x y : Finmap β) (h : Disjoint x y) : Disjoint y x 
Arguments: {α : Type u} {β : α → Type v} (x y : Finmap β) (h : x.Disjoint y)
Goal: y.Disjoint x
-- Finmap.Disjoint.symm_iff
theorem Disjoint.symm_iff (x y : Finmap β) : Disjoint x y ↔ Disjoint y x 
Arguments: {α : Type u} {β : α → Type v} (x y : Finmap β)
Goal: x.Disjoint y ↔ y.Disjoint x
-- Finmap.disjoint_union_left
theorem disjoint_union_left (x y z : Finmap β) :
    Disjoint (x ∪ y) z ↔ Disjoint x z ∧ Disjoint y z 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] (x y z : Finmap β)
Goal: (x ∪ y).Disjoint z ↔ x.Disjoint z ∧ y.Disjoint z
-- Finmap.disjoint_union_right
theorem disjoint_union_right (x y z : Finmap β) :
    Disjoint x (y ∪ z) ↔ Disjoint x y ∧ Disjoint x z 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] (x y z : Finmap β)
Goal: x.Disjoint (y ∪ z) ↔ x.Disjoint y ∧ x.Disjoint z
-- Finmap.union_comm_of_disjoint
theorem union_comm_of_disjoint {s₁ s₂ : Finmap β} : Disjoint s₁ s₂ → s₁ ∪ s₂ = s₂ ∪ s₁ 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {s₁ s₂ : Finmap β}
Goal: s₁.Disjoint s₂ → s₁ ∪ s₂ = s₂ ∪ s₁
-- Finmap.union_cancel
theorem union_cancel {s₁ s₂ s₃ : Finmap β} (h : Disjoint s₁ s₃) (h' : Disjoint s₂ s₃) :
    s₁ ∪ s₃ = s₂ ∪ s₃ ↔ s₁ = s₂ 
Arguments: {α : Type u} {β : α → Type v} [DecidableEq α] {s₁ s₂ s₃ : Finmap β} (h : s₁.Disjoint s₃) (h' : s₂.Disjoint s₃)
Goal: s₁ ∪ s₃ = s₂ ∪ s₃ ↔ s₁ = s₂
-- IndepMatroid.indep_aug
structure IndepMatroid (α : Type*) where
    (E : Set α)
    (Indep : Set α → Prop)
  (indep_empty : Indep ∅)
  (indep_subset : ∀ ⦃I J⦄, Indep J → I ⊆ J → Indep I)
  (indep_aug : ∀⦃I B⦄, Indep I → I ∉ maximals (· ⊆ ·) {I | Indep I} →
      B ∈ maximals (· ⊆ ·) {I | Indep I} → ∃ x ∈ B \ I, Indep (insert x I))
  (indep_maximal : ∀ X, X ⊆ E → ExistsMaximalSubsetProperty Indep X)
  (subset_ground : ∀ I, Indep I → I ⊆ E)
Arguments: {α : Type u_2} (self : IndepMatroid α) ⦃I B : Set α⦄
Goal: self.Indep I →
  I ∉ maximals (fun x x_1 => x ⊆ x_1) {I | self.Indep I} →
    B ∈ maximals (fun x x_1 => x ⊆ x_1) {I | self.Indep I} → ∃ x ∈ B \ I, self.Indep (insert x I)
-- IndepMatroid.indep_empty
structure IndepMatroid (α : Type*) where
    (E : Set α)
    (Indep : Set α → Prop)
  (indep_empty : Indep ∅)
  (indep_subset : ∀ ⦃I J⦄, Indep J → I ⊆ J → Indep I)
  (indep_aug : ∀⦃I B⦄, Indep I → I ∉ maximals (· ⊆ ·) {I | Indep I} →
      B ∈ maximals (· ⊆ ·) {I | Indep I} → ∃ x ∈ B \ I, Indep (insert x I))
  (indep_maximal : ∀ X, X ⊆ E → ExistsMaximalSubsetProperty Indep X)
  (subset_ground : ∀ I, Indep I → I ⊆ E)
Arguments: {α : Type u_2} (self : IndepMatroid α)
Goal: self.Indep ∅
-- IndepMatroid.subset_ground
structure IndepMatroid (α : Type*) where
    (E : Set α)
    (Indep : Set α → Prop)
  (indep_empty : Indep ∅)
  (indep_subset : ∀ ⦃I J⦄, Indep J → I ⊆ J → Indep I)
  (indep_aug : ∀⦃I B⦄, Indep I → I ∉ maximals (· ⊆ ·) {I | Indep I} →
      B ∈ maximals (· ⊆ ·) {I | Indep I} → ∃ x ∈ B \ I, Indep (insert x I))
  (indep_maximal : ∀ X, X ⊆ E → ExistsMaximalSubsetProperty Indep X)
  (subset_ground : ∀ I, Indep I → I ⊆ E)
Arguments: {α : Type u_2} (self : IndepMatroid α) (I : Set α)
Goal: self.Indep I → I ⊆ self.E
-- IndepMatroid.indep_maximal
structure IndepMatroid (α : Type*) where
    (E : Set α)
    (Indep : Set α → Prop)
  (indep_empty : Indep ∅)
  (indep_subset : ∀ ⦃I J⦄, Indep J → I ⊆ J → Indep I)
  (indep_aug : ∀⦃I B⦄, Indep I → I ∉ maximals (· ⊆ ·) {I | Indep I} →
      B ∈ maximals (· ⊆ ·) {I | Indep I} → ∃ x ∈ B \ I, Indep (insert x I))
  (indep_maximal : ∀ X, X ⊆ E → ExistsMaximalSubsetProperty Indep X)
  (subset_ground : ∀ I, Indep I → I ⊆ E)
Arguments: {α : Type u_2} (self : IndepMatroid α) (X : Set α)
Goal: X ⊆ self.E → Matroid.ExistsMaximalSubsetProperty self.Indep X
-- IndepMatroid.indep_subset
structure IndepMatroid (α : Type*) where
    (E : Set α)
    (Indep : Set α → Prop)
  (indep_empty : Indep ∅)
  (indep_subset : ∀ ⦃I J⦄, Indep J → I ⊆ J → Indep I)
  (indep_aug : ∀⦃I B⦄, Indep I → I ∉ maximals (· ⊆ ·) {I | Indep I} →
      B ∈ maximals (· ⊆ ·) {I | Indep I} → ∃ x ∈ B \ I, Indep (insert x I))
  (indep_maximal : ∀ X, X ⊆ E → ExistsMaximalSubsetProperty Indep X)
  (subset_ground : ∀ I, Indep I → I ⊆ E)
Arguments: {α : Type u_2} (self : IndepMatroid α) ⦃I J : Set α⦄
Goal: self.Indep J → I ⊆ J → self.Indep I
-- IndepMatroid.matroid_E
@[simps] protected def matroid (M : IndepMatroid α) : Matroid α 
Arguments: {α : Type u_1} (M : IndepMatroid α)
Goal: M.matroid.E = M.E
-- IndepMatroid.matroid_Base
@[simps] protected def matroid (M : IndepMatroid α) : Matroid α 
Arguments: {α : Type u_1} (M : IndepMatroid α)
Goal: ∀ (x : Set α), M.matroid.Base x = (x ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I})
-- IndepMatroid.matroid_Indep
@[simps] protected def matroid (M : IndepMatroid α) : Matroid α 
Arguments: {α : Type u_1} (M : IndepMatroid α)
Goal: ∀ (a : Set α), M.matroid.Indep a = M.Indep a
-- IndepMatroid.matroid_indep_iff
@[simp] theorem matroid_indep_iff {M : IndepMatroid α} {I : Set α} :
    M.matroid.Indep I ↔ M.Indep I 
Arguments: {α : Type u_1} {M : IndepMatroid α} {I : Set α}
Goal: M.matroid.Indep I ↔ M.Indep I
-- IndepMatroid.ofFinitary_E
@[simps E] protected def ofFinitary (E : Set α) (Indep : Set α → Prop)
    (indep_empty : Indep ∅)
    (indep_subset : ∀ ⦃I J⦄, Indep J → I ⊆ J → Indep I)
    (indep_aug : ∀ ⦃I J⦄, Indep I → I.Finite → Indep J → J.Finite → I.ncard < J.ncard →
      ∃ e ∈ J, e ∉ I ∧ Indep (insert e I))
    (indep_compact : ∀ I, (∀ J, J ⊆ I → J.Finite → Indep J) → Indep I)
    (subset_ground : ∀ I, Indep I → I ⊆ E) : IndepMatroid α 
Arguments: {α : Type u_1} (E : Set α) (Indep : Set α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Set α⦄, Indep J → I ⊆ J → Indep I) (indep_aug :
  ∀ ⦃I J : Set α⦄, Indep I → I.Finite → Indep J → J.Finite → I.ncard < J.ncard → ∃ e ∈ J, e ∉ I ∧ Indep (insert e I)) (indep_compact : ∀ (I : Set α), (∀ J ⊆ I, J.Finite → Indep J) → Indep I) (subset_ground : ∀ (I : Set α), Indep I → I ⊆ E)
Goal: (IndepMatroid.ofFinitary E Indep indep_empty indep_subset indep_aug indep_compact subset_ground).E = E
-- IndepMatroid.ofFinitary_indep
@[simp] theorem ofFinitary_indep (E : Set α) (Indep : Set α → Prop)
    indep_empty indep_subset indep_aug indep_compact subset_ground : (IndepMatroid.ofFinitary
      E Indep indep_empty indep_subset indep_aug indep_compact subset_ground).Indep = Indep 
Arguments: {α : Type u_1} (E : Set α) (Indep : Set α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Set α⦄, Indep J → I ⊆ J → Indep I) (indep_aug :
  ∀ ⦃I J : Set α⦄, Indep I → I.Finite → Indep J → J.Finite → I.ncard < J.ncard → ∃ e ∈ J, e ∉ I ∧ Indep (insert e I)) (indep_compact : ∀ (I : Set α), (∀ J ⊆ I, J.Finite → Indep J) → Indep I) (subset_ground : ∀ (I : Set α), Indep I → I ⊆ E)
Goal: (IndepMatroid.ofFinitary E Indep indep_empty indep_subset indep_aug indep_compact subset_ground).Indep = Indep
-- Matroid.existsMaximalSubsetProperty_of_bdd
theorem _root_.Matroid.existsMaximalSubsetProperty_of_bdd {P : Set α → Prop}
    (hP : ∃ (n : ℕ), ∀ Y, P Y → Y.encard ≤ n) (X : Set α) : ExistsMaximalSubsetProperty P X 
Arguments: {α : Type u_1} {P : Set α → Prop} (hP : ∃ n, ∀ (Y : Set α), P Y → Y.encard ≤ ↑n) (X : Set α)
Goal: Matroid.ExistsMaximalSubsetProperty P X
-- IndepMatroid.ofBdd_E
@[simps E] protected def ofBdd (E : Set α) (Indep : Set α → Prop)
    (indep_empty : Indep ∅)
    (indep_subset : ∀ ⦃I J⦄, Indep J → I ⊆ J → Indep I)
    (indep_aug : ∀⦃I B⦄, Indep I → I ∉ maximals (· ⊆ ·) {I | Indep I} →
      B ∈ maximals (· ⊆ ·) {I | Indep I} → ∃ x ∈ B \ I, Indep (insert x I))
    (subset_ground : ∀ I, Indep I → I ⊆ E)
    (indep_bdd : ∃ (n : ℕ), ∀ I, Indep I → I.encard ≤ n ) : IndepMatroid α 
Arguments: {α : Type u_1} (E : Set α) (Indep : Set α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Set α⦄, Indep J → I ⊆ J → Indep I) (indep_aug :
  ∀ ⦃I B : Set α⦄,
    Indep I →
      I ∉ maximals (fun x x_1 => x ⊆ x_1) {I | Indep I} →
        B ∈ maximals (fun x x_1 => x ⊆ x_1) {I | Indep I} → ∃ x ∈ B \ I, Indep (insert x I)) (subset_ground : ∀ (I : Set α), Indep I → I ⊆ E) (indep_bdd : ∃ n, ∀ (I : Set α), Indep I → I.encard ≤ ↑n)
Goal: (IndepMatroid.ofBdd E Indep indep_empty indep_subset indep_aug subset_ground indep_bdd).E = E
-- IndepMatroid.ofBdd_indep
@[simp] theorem ofBdd_indep (E : Set α) Indep indep_empty indep_subset indep_aug
    subset_ground h_bdd : (IndepMatroid.ofBdd
      E Indep indep_empty indep_subset indep_aug subset_ground h_bdd).Indep = Indep 
Arguments: {α : Type u_1} (E : Set α) (Indep : Set α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Set α⦄, Indep J → I ⊆ J → Indep I) (indep_aug :
  ∀ ⦃I B : Set α⦄,
    Indep I →
      I ∉ maximals (fun x x_1 => x ⊆ x_1) {I | Indep I} →
        B ∈ maximals (fun x x_1 => x ⊆ x_1) {I | Indep I} → ∃ x ∈ B \ I, Indep (insert x I)) (subset_ground : ∀ (I : Set α), Indep I → I ⊆ E) (h_bdd : ∃ n, ∀ (I : Set α), Indep I → I.encard ≤ ↑n)
Goal: (IndepMatroid.ofBdd E Indep indep_empty indep_subset indep_aug subset_ground h_bdd).Indep = Indep
-- IndepMatroid.ofBddAugment_E
@[simp] theorem ofBddAugment_E (E : Set α) Indep indep_empty indep_subset indep_aug
    indep_bdd subset_ground : (IndepMatroid.ofBddAugment
      E Indep indep_empty indep_subset indep_aug indep_bdd subset_ground).E = E 
Arguments: {α : Type u_1} (E : Set α) (Indep : Set α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Set α⦄, Indep J → I ⊆ J → Indep I) (indep_aug : ∀ ⦃I J : Set α⦄, Indep I → Indep J → I.encard < J.encard → ∃ e ∈ J, e ∉ I ∧ Indep (insert e I)) (indep_bdd : ∃ n, ∀ (I : Set α), Indep I → I.encard ≤ ↑n) (subset_ground : ∀ (I : Set α), Indep I → I ⊆ E)
Goal: (IndepMatroid.ofBddAugment E Indep indep_empty indep_subset indep_aug indep_bdd subset_ground).E = E
-- IndepMatroid.ofBddAugment_indep
@[simp] theorem ofBddAugment_indep (E : Set α) Indep indep_empty indep_subset indep_aug
    indep_bdd subset_ground : (IndepMatroid.ofBddAugment
      E Indep indep_empty indep_subset indep_aug indep_bdd subset_ground).Indep = Indep 
Arguments: {α : Type u_1} (E : Set α) (Indep : Set α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Set α⦄, Indep J → I ⊆ J → Indep I) (indep_aug : ∀ ⦃I J : Set α⦄, Indep I → Indep J → I.encard < J.encard → ∃ e ∈ J, e ∉ I ∧ Indep (insert e I)) (indep_bdd : ∃ n, ∀ (I : Set α), Indep I → I.encard ≤ ↑n) (subset_ground : ∀ (I : Set α), Indep I → I ⊆ E)
Goal: (IndepMatroid.ofBddAugment E Indep indep_empty indep_subset indep_aug indep_bdd subset_ground).Indep = Indep
-- IndepMatroid.ofFinite_E
@[simp] theorem ofFinite_E {E : Set α} hE Indep indep_empty indep_subset indep_aug subset_ground :
    (IndepMatroid.ofFinite
      (hE : E.Finite) Indep indep_empty indep_subset indep_aug subset_ground).E = E 
Arguments: {α : Type u_1} {E : Set α} (hE : E.Finite) (Indep : Set α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Set α⦄, Indep J → I ⊆ J → Indep I) (indep_aug : ∀ ⦃I J : Set α⦄, Indep I → Indep J → I.ncard < J.ncard → ∃ e ∈ J, e ∉ I ∧ Indep (insert e I)) (subset_ground : ∀ ⦃I : Set α⦄, Indep I → I ⊆ E)
Goal: (IndepMatroid.ofFinite hE Indep indep_empty indep_subset indep_aug subset_ground).E = E
-- IndepMatroid.ofFinite_indep
@[simp] theorem ofFinite_indep {E : Set α} hE Indep indep_empty indep_subset indep_aug
    subset_ground : (IndepMatroid.ofFinite
      (hE : E.Finite) Indep indep_empty indep_subset indep_aug subset_ground).Indep = Indep 
Arguments: {α : Type u_1} {E : Set α} (hE : E.Finite) (Indep : Set α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Set α⦄, Indep J → I ⊆ J → Indep I) (indep_aug : ∀ ⦃I J : Set α⦄, Indep I → Indep J → I.ncard < J.ncard → ∃ e ∈ J, e ∉ I ∧ Indep (insert e I)) (subset_ground : ∀ ⦃I : Set α⦄, Indep I → I ⊆ E)
Goal: (IndepMatroid.ofFinite hE Indep indep_empty indep_subset indep_aug subset_ground).Indep = Indep
-- IndepMatroid.ofFinset_E
@[simp] theorem ofFinset_E [DecidableEq α] (E : Set α) Indep indep_empty indep_subset indep_aug
    subset_ground : (IndepMatroid.ofFinset
      E Indep indep_empty indep_subset indep_aug subset_ground).E = E 
Arguments: {α : Type u_1} [DecidableEq α] (E : Set α) (Indep : Finset α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Finset α⦄, Indep J → I ⊆ J → Indep I) (indep_aug : ∀ ⦃I J : Finset α⦄, Indep I → Indep J → I.card < J.card → ∃ e ∈ J, e ∉ I ∧ Indep (insert e I)) (subset_ground : ∀ ⦃I : Finset α⦄, Indep I → ↑I ⊆ E)
Goal: (IndepMatroid.ofFinset E Indep indep_empty indep_subset indep_aug subset_ground).E = E
-- IndepMatroid.ofFinset_indep
@[simp] theorem ofFinset_indep [DecidableEq α] (E : Set α) Indep indep_empty indep_subset indep_aug
    subset_ground {I : Finset α} : (IndepMatroid.ofFinset
      E Indep indep_empty indep_subset indep_aug subset_ground).Indep I ↔ Indep I 
Arguments: {α : Type u_1} [DecidableEq α] (E : Set α) (Indep : Finset α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Finset α⦄, Indep J → I ⊆ J → Indep I) (indep_aug : ∀ ⦃I J : Finset α⦄, Indep I → Indep J → I.card < J.card → ∃ e ∈ J, e ∉ I ∧ Indep (insert e I)) (subset_ground : ∀ ⦃I : Finset α⦄, Indep I → ↑I ⊆ E) {I : Finset α}
Goal: (IndepMatroid.ofFinset E Indep indep_empty indep_subset indep_aug subset_ground).Indep ↑I ↔ Indep I
-- IndepMatroid.ofFinset_indep'
theorem ofFinset_indep' [DecidableEq α] (E : Set α) Indep indep_empty indep_subset indep_aug
    subset_ground {I : Set α} : (IndepMatroid.ofFinset
      E Indep indep_empty indep_subset indep_aug subset_ground).Indep I ↔
        ∀ (J : Finset α), (J : Set α) ⊆ I → Indep J 
Arguments: {α : Type u_1} [DecidableEq α] (E : Set α) (Indep : Finset α → Prop) (indep_empty : Indep ∅) (indep_subset : ∀ ⦃I J : Finset α⦄, Indep J → I ⊆ J → Indep I) (indep_aug : ∀ ⦃I J : Finset α⦄, Indep I → Indep J → I.card < J.card → ∃ e ∈ J, e ∉ I ∧ Indep (insert e I)) (subset_ground : ∀ ⦃I : Finset α⦄, Indep I → ↑I ⊆ E) {I : Set α}
Goal: (IndepMatroid.ofFinset E Indep indep_empty indep_subset indep_aug subset_ground).Indep I ↔
  ∀ (J : Finset α), ↑J ⊆ I → Indep J
-- Matroid.ofExistsMatroid_E
@[simps! E] protected def ofExistsMatroid (E : Set α) (Indep : Set α → Prop)
    (hM : ∃ (M : Matroid α), E = M.E ∧ ∀ I, M.Indep I ↔ Indep I) : Matroid α 
Arguments: {α : Type u_1} (E : Set α) (Indep : Set α → Prop) (hM : ∃ M, E = M.E ∧ ∀ (I : Set α), M.Indep I ↔ Indep I)
Goal: (Matroid.ofExistsMatroid E Indep hM).E = E
-- Matroid.ofBase_E
@[simps E] protected def ofBase (E : Set α) (Base : Set α → Prop) (exists_base : ∃ B, Base B)
    (base_exchange : ExchangeProperty Base)
    (maximality : ∀ X, X ⊆ E → Matroid.ExistsMaximalSubsetProperty (∃ B, Base B ∧ · ⊆ B) X)
    (subset_ground : ∀ B, Base B → B ⊆ E) : Matroid α 
Arguments: {α : Type u_1} (E : Set α) (Base : Set α → Prop) (exists_base : ∃ B, Base B) (base_exchange : Matroid.ExchangeProperty Base) (maximality : ∀ X ⊆ E, Matroid.ExistsMaximalSubsetProperty (fun x => ∃ B, Base B ∧ x ⊆ B) X) (subset_ground : ∀ (B : Set α), Base B → B ⊆ E)
Goal: (Matroid.ofBase E Base exists_base base_exchange maximality subset_ground).E = E
-- Matroid.ofExistsFiniteBase_E
@[simps! E] protected def ofExistsFiniteBase (E : Set α) (Base : Set α → Prop)
    (exists_finite_base : ∃ B, Base B ∧ B.Finite) (base_exchange : ExchangeProperty Base)
    (subset_ground : ∀ B, Base B → B ⊆ E) : Matroid α 
Arguments: {α : Type u_1} (E : Set α) (Base : Set α → Prop) (exists_finite_base : ∃ B, Base B ∧ B.Finite) (base_exchange : Matroid.ExchangeProperty Base) (subset_ground : ∀ (B : Set α), Base B → B ⊆ E)
Goal: (Matroid.ofExistsFiniteBase E Base exists_finite_base base_exchange subset_ground).E = E
-- Matroid.ofExistsFiniteBase_base
@[simp] theorem ofExistsFiniteBase_base (E : Set α) Base exists_finite_base
    base_exchange subset_ground : (Matroid.ofExistsFiniteBase
      E Base exists_finite_base base_exchange subset_ground).Base = Base 
Arguments: {α : Type u_1} (E : Set α) (Base : Set α → Prop) (exists_finite_base : ∃ B, Base B ∧ B.Finite) (base_exchange : Matroid.ExchangeProperty Base) (subset_ground : ∀ (B : Set α), Base B → B ⊆ E)
Goal: (Matroid.ofExistsFiniteBase E Base exists_finite_base base_exchange subset_ground).Base = Base