ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Matroid.Base.exchange_base_of_indep'
theorem Base.exchange_base_of_indep' (hB : M.Base B) (he : e ∈ B) (hf : f ∉ B)
    (hI : M.Indep (insert f B \ {e})) : M.Base (insert f B \ {e}) 
Arguments: {α : Type u_1} {M : Matroid α} {B : Set α} {e f : α} (hB : M.Base B) (he : e ∈ B) (hf : f ∉ B) (hI : M.Indep (insert f B \ {e}))
Goal: M.Base (insert f B \ {e})
-- Matroid.Base.insert_dep
theorem Base.insert_dep (hB : M.Base B) (h : e ∈ M.E \ B) : M.Dep (insert e B) 
Arguments: {α : Type u_1} {M : Matroid α} {B : Set α} {e : α} (hB : M.Base B) (h : e ∈ M.E \ B)
Goal: M.Dep (insert e B)
-- Matroid.Indep.exists_insert_of_not_base
theorem Indep.exists_insert_of_not_base (hI : M.Indep I) (hI' : ¬M.Base I) (hB : M.Base B) :
    ∃ e ∈ B \ I, M.Indep (insert e I) 
Arguments: {α : Type u_1} {M : Matroid α} {B I : Set α} (hI : M.Indep I) (hI' : ¬M.Base I) (hB : M.Base B)
Goal: ∃ e ∈ B \ I, M.Indep (insert e I)
-- Matroid.Indep.exists_insert_of_not_mem_maximals
theorem Indep.exists_insert_of_not_mem_maximals (M : Matroid α) ⦃I B : Set α⦄ (hI : M.Indep I)
    (hInotmax : I ∉ maximals (· ⊆ ·) {I | M.Indep I}) (hB : B ∈ maximals (· ⊆ ·) {I | M.Indep I}) :
    ∃ x ∈ B \ I, M.Indep (insert x I) 
Arguments: {α : Type u_1} (M : Matroid α) ⦃I B : Set α⦄ (hI : M.Indep I) (hInotmax : I ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}) (hB : B ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I})
Goal: ∃ x ∈ B \ I, M.Indep (insert x I)
-- Matroid.Indep.base_of_forall_insert
theorem Indep.base_of_forall_insert (hB : M.Indep B)
    (hBmax : ∀ e ∈ M.E \ B, ¬ M.Indep (insert e B)) : M.Base B 
Arguments: {α : Type u_1} {M : Matroid α} {B : Set α} (hB : M.Indep B) (hBmax : ∀ e ∈ M.E \ B, ¬M.Indep (insert e B))
Goal: M.Base B
-- Matroid.ground_indep_iff_base
theorem ground_indep_iff_base : M.Indep M.E ↔ M.Base M.E 
Arguments: {α : Type u_1} {M : Matroid α}
Goal: M.Indep M.E ↔ M.Base M.E
-- Matroid.Base.exists_insert_of_ssubset
theorem Base.exists_insert_of_ssubset (hB : M.Base B) (hIB : I ⊂ B) (hB' : M.Base B') :
    ∃ e ∈ B' \ I, M.Indep (insert e I) 
Arguments: {α : Type u_1} {M : Matroid α} {B B' I : Set α} (hB : M.Base B) (hIB : I ⊂ B) (hB' : M.Base B')
Goal: ∃ e ∈ B' \ I, M.Indep (insert e I)
-- Matroid.eq_of_indep_iff_indep_forall
theorem eq_of_indep_iff_indep_forall {M₁ M₂ : Matroid α} (hE : M₁.E = M₂.E)
    (h : ∀ I, I ⊆ M₁.E → (M₁.Indep I ↔ M₂.Indep I)) : M₁ = M₂ 
Arguments: {α : Type u_1} {M₁ M₂ : Matroid α} (hE : M₁.E = M₂.E) (h : ∀ I ⊆ M₁.E, M₁.Indep I ↔ M₂.Indep I)
Goal: M₁ = M₂
-- Matroid.eq_iff_indep_iff_indep_forall
theorem eq_iff_indep_iff_indep_forall {M₁ M₂ : Matroid α} :
    M₁ = M₂ ↔ (M₁.E = M₂.E) ∧ ∀ I, I ⊆ M₁.E → (M₁.Indep I ↔ M₂.Indep I) 
Arguments: {α : Type u_1} {M₁ M₂ : Matroid α}
Goal: M₁ = M₂ ↔ M₁.E = M₂.E ∧ ∀ I ⊆ M₁.E, M₁.Indep I ↔ M₂.Indep I
-- Matroid.Finitary.indep_of_forall_finite
class Finitary (M : Matroid α) : Prop where
    indep_of_forall_finite : ∀ I, (∀ J, J ⊆ I → J.Finite → M.Indep J) → M.Indep I
Arguments: {α : Type u_1} {M : Matroid α} [self : M.Finitary] (I : Set α)
Goal: (∀ J ⊆ I, J.Finite → M.Indep J) → M.Indep I
-- Matroid.indep_of_forall_finite_subset_indep
theorem indep_of_forall_finite_subset_indep {M : Matroid α} [Finitary M] (I : Set α)
    (h : ∀ J, J ⊆ I → J.Finite → M.Indep J) : M.Indep I 
Arguments: {α : Type u_1} {M : Matroid α} [M.Finitary] (I : Set α) (h : ∀ J ⊆ I, J.Finite → M.Indep J)
Goal: M.Indep I
-- Matroid.indep_iff_forall_finite_subset_indep
theorem indep_iff_forall_finite_subset_indep {M : Matroid α} [Finitary M] :
    M.Indep I ↔ ∀ J, J ⊆ I → J.Finite → M.Indep J 
Arguments: {α : Type u_1} {I : Set α} {M : Matroid α} [M.Finitary]
Goal: M.Indep I ↔ ∀ J ⊆ I, J.Finite → M.Indep J
-- Matroid.existsMaximalSubsetProperty_indep
theorem existsMaximalSubsetProperty_indep (M : Matroid α) :
    ∀ X, X ⊆ M.E → ExistsMaximalSubsetProperty M.Indep X 
Arguments: {α : Type u_1} (M : Matroid α) (X : Set α)
Goal: X ⊆ M.E → Matroid.ExistsMaximalSubsetProperty M.Indep X
-- Matroid.Basis'.indep
theorem Basis'.indep (hI : M.Basis' I X) : M.Indep I 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis' I X)
Goal: M.Indep I
-- Matroid.Basis.indep
theorem Basis.indep (hI : M.Basis I X) : M.Indep I 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis I X)
Goal: M.Indep I
-- Matroid.Basis.subset
theorem Basis.subset (hI : M.Basis I X) : I ⊆ X 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis I X)
Goal: I ⊆ X
-- Matroid.Basis.basis'
theorem Basis.basis' (hI : M.Basis I X) : M.Basis' I X 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis I X)
Goal: M.Basis' I X
-- Matroid.Basis'.basis
theorem Basis'.basis (hI : M.Basis' I X) (hX : X ⊆ M.E := by aesop_mat) : M.Basis I X 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis' I X) (hX : X ⊆ M.E := by aesop_mat)
Goal: M.Basis I X
-- Matroid.Basis'.subset
theorem Basis'.subset (hI : M.Basis' I X) : I ⊆ X 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis' I X)
Goal: I ⊆ X
-- Matroid.setOf_basis_eq
theorem setOf_basis_eq (M : Matroid α) (hX : X ⊆ M.E := by aesop_mat) :
    {I | M.Basis I X} = maximals (· ⊆ ·) ({I | M.Indep I} ∩ Iic X) 
Arguments: {α : Type u_1} {X : Set α} (M : Matroid α) (hX : X ⊆ M.E := by aesop_mat)
Goal: {I | M.Basis I X} = maximals (fun x x_1 => x ⊆ x_1) ({I | M.Indep I} ∩ Set.Iic X)
-- Matroid.Basis.subset_ground
@[aesop unsafe 15% (rule_sets := [Matroid])]
theorem Basis.subset_ground (hI : M.Basis I X) : X ⊆ M.E 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis I X)
Goal: X ⊆ M.E
-- Matroid.Basis.basis_inter_ground
theorem Basis.basis_inter_ground (hI : M.Basis I X) : M.Basis I (X ∩ M.E) 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis I X)
Goal: M.Basis I (X ∩ M.E)
-- Matroid.Basis.left_subset_ground
@[aesop unsafe 15% (rule_sets := [Matroid])]
theorem Basis.left_subset_ground (hI : M.Basis I X) : I ⊆ M.E 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis I X)
Goal: I ⊆ M.E
-- Matroid.Basis.eq_of_subset_indep
theorem Basis.eq_of_subset_indep (hI : M.Basis I X) (hJ : M.Indep J) (hIJ : I ⊆ J) (hJX : J ⊆ X) :
    I = J 
Arguments: {α : Type u_1} {M : Matroid α} {I J X : Set α} (hI : M.Basis I X) (hJ : M.Indep J) (hIJ : I ⊆ J) (hJX : J ⊆ X)
Goal: I = J
-- Matroid.Basis.Finite
theorem Basis.Finite (hI : M.Basis I X) [FiniteRk M] : I.Finite 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis I X) [M.FiniteRk]
Goal: I.Finite
-- Matroid.basis_iff'
theorem basis_iff' :
    M.Basis I X ↔ (M.Indep I ∧ I ⊆ X ∧ ∀ J, M.Indep J → I ⊆ J → J ⊆ X → I = J) ∧ X ⊆ M.E 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α}
Goal: M.Basis I X ↔ (M.Indep I ∧ I ⊆ X ∧ ∀ (J : Set α), M.Indep J → I ⊆ J → J ⊆ X → I = J) ∧ X ⊆ M.E
-- Matroid.basis_iff
theorem basis_iff (hX : X ⊆ M.E := by aesop_mat) :
    M.Basis I X ↔ (M.Indep I ∧ I ⊆ X ∧ ∀ J, M.Indep J → I ⊆ J → J ⊆ X → I = J) 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hX : X ⊆ M.E := by aesop_mat)
Goal: M.Basis I X ↔ M.Indep I ∧ I ⊆ X ∧ ∀ (J : Set α), M.Indep J → I ⊆ J → J ⊆ X → I = J
-- Matroid.basis'_iff_basis_inter_ground
theorem basis'_iff_basis_inter_ground : M.Basis' I X ↔ M.Basis I (X ∩ M.E) 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α}
Goal: M.Basis' I X ↔ M.Basis I (X ∩ M.E)
-- Matroid.basis'_iff_basis
theorem basis'_iff_basis (hX : X ⊆ M.E := by aesop_mat) : M.Basis' I X ↔ M.Basis I X 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hX : X ⊆ M.E := by aesop_mat)
Goal: M.Basis' I X ↔ M.Basis I X
-- Matroid.basis_iff_basis'_subset_ground
theorem basis_iff_basis'_subset_ground : M.Basis I X ↔ M.Basis' I X ∧ X ⊆ M.E 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α}
Goal: M.Basis I X ↔ M.Basis' I X ∧ X ⊆ M.E
-- Matroid.Basis'.basis_inter_ground
theorem Basis'.basis_inter_ground (hIX : M.Basis' I X) : M.Basis I (X ∩ M.E) 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hIX : M.Basis' I X)
Goal: M.Basis I (X ∩ M.E)
-- Matroid.Basis'.eq_of_subset_indep
theorem Basis'.eq_of_subset_indep (hI : M.Basis' I X) (hJ : M.Indep J) (hIJ : I ⊆ J)
    (hJX : J ⊆ X) : I = J 
Arguments: {α : Type u_1} {M : Matroid α} {I J X : Set α} (hI : M.Basis' I X) (hJ : M.Indep J) (hIJ : I ⊆ J) (hJX : J ⊆ X)
Goal: I = J
-- Matroid.Basis'.insert_not_indep
theorem Basis'.insert_not_indep (hI : M.Basis' I X) (he : e ∈ X \ I) : ¬ M.Indep (insert e I) 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} {e : α} (hI : M.Basis' I X) (he : e ∈ X \ I)
Goal: ¬M.Indep (insert e I)
-- Matroid.basis_iff_mem_maximals
theorem basis_iff_mem_maximals (hX : X ⊆ M.E := by aesop_mat) :
    M.Basis I X ↔ I ∈ maximals (· ⊆ ·) {I | M.Indep I ∧ I ⊆ X} 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hX : X ⊆ M.E := by aesop_mat)
Goal: M.Basis I X ↔ I ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I ∧ I ⊆ X}
-- Matroid.basis_iff_mem_maximals_Prop
theorem basis_iff_mem_maximals_Prop (hX : X ⊆ M.E := by aesop_mat) :
    M.Basis I X ↔ I ∈ maximals (· ⊆ ·) (fun I ↦ M.Indep I ∧ I ⊆ X) 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hX : X ⊆ M.E := by aesop_mat)
Goal: M.Basis I X ↔ I ∈ maximals (fun x x_1 => x ⊆ x_1) fun I => M.Indep I ∧ I ⊆ X
-- Matroid.Indep.basis_of_maximal_subset
theorem Indep.basis_of_maximal_subset (hI : M.Indep I) (hIX : I ⊆ X)
    (hmax : ∀ ⦃J⦄, M.Indep J → I ⊆ J → J ⊆ X → J ⊆ I) (hX : X ⊆ M.E := by aesop_mat) :
    M.Basis I X 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Indep I) (hIX : I ⊆ X) (hmax : ∀ ⦃J : Set α⦄, M.Indep J → I ⊆ J → J ⊆ X → J ⊆ I) (hX : X ⊆ M.E := by aesop_mat)
Goal: M.Basis I X
-- Matroid.Basis.basis_subset
theorem Basis.basis_subset (hI : M.Basis I X) (hIY : I ⊆ Y) (hYX : Y ⊆ X) : M.Basis I Y 
Arguments: {α : Type u_1} {M : Matroid α} {I X Y : Set α} (hI : M.Basis I X) (hIY : I ⊆ Y) (hYX : Y ⊆ X)
Goal: M.Basis I Y
-- Matroid.basis_self_iff_indep
@[simp] theorem basis_self_iff_indep : M.Basis I I ↔ M.Indep I 
Arguments: {α : Type u_1} {M : Matroid α} {I : Set α}
Goal: M.Basis I I ↔ M.Indep I
-- Matroid.Indep.basis_self
theorem Indep.basis_self (h : M.Indep I) : M.Basis I I 
Arguments: {α : Type u_1} {M : Matroid α} {I : Set α} (h : M.Indep I)
Goal: M.Basis I I
-- Matroid.basis_empty_iff
@[simp] theorem basis_empty_iff (M : Matroid α) : M.Basis I ∅ ↔ I = ∅ 
Arguments: {α : Type u_1} {I : Set α} (M : Matroid α)
Goal: M.Basis I ∅ ↔ I = ∅
-- Matroid.Basis.dep_of_ssubset
theorem Basis.dep_of_ssubset (hI : M.Basis I X) (hIY : I ⊂ Y) (hYX : Y ⊆ X) : M.Dep Y 
Arguments: {α : Type u_1} {M : Matroid α} {I X Y : Set α} (hI : M.Basis I X) (hIY : I ⊂ Y) (hYX : Y ⊆ X)
Goal: M.Dep Y
-- Matroid.Basis.insert_dep
theorem Basis.insert_dep (hI : M.Basis I X) (he : e ∈ X \ I) : M.Dep (insert e I) 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} {e : α} (hI : M.Basis I X) (he : e ∈ X \ I)
Goal: M.Dep (insert e I)
-- Matroid.Basis.mem_of_insert_indep
theorem Basis.mem_of_insert_indep (hI : M.Basis I X) (he : e ∈ X) (hIe : M.Indep (insert e I)) :
    e ∈ I 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} {e : α} (hI : M.Basis I X) (he : e ∈ X) (hIe : M.Indep (insert e I))
Goal: e ∈ I
-- Matroid.Basis'.mem_of_insert_indep
theorem Basis'.mem_of_insert_indep (hI : M.Basis' I X) (he : e ∈ X) (hIe : M.Indep (insert e I)) :
    e ∈ I 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} {e : α} (hI : M.Basis' I X) (he : e ∈ X) (hIe : M.Indep (insert e I))
Goal: e ∈ I
-- Matroid.Basis.not_basis_of_ssubset
theorem Basis.not_basis_of_ssubset (hI : M.Basis I X) (hJI : J ⊂ I) : ¬ M.Basis J X 
Arguments: {α : Type u_1} {M : Matroid α} {I J X : Set α} (hI : M.Basis I X) (hJI : J ⊂ I)
Goal: ¬M.Basis J X
-- Matroid.Indep.subset_basis_of_subset
theorem Indep.subset_basis_of_subset (hI : M.Indep I) (hIX : I ⊆ X) (hX : X ⊆ M.E := by aesop_mat) :
    ∃ J, M.Basis J X ∧ I ⊆ J 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Indep I) (hIX : I ⊆ X) (hX : X ⊆ M.E := by aesop_mat)
Goal: ∃ J, M.Basis J X ∧ I ⊆ J
-- Matroid.Indep.subset_basis'_of_subset
theorem Indep.subset_basis'_of_subset (hI : M.Indep I) (hIX : I ⊆ X) :
    ∃ J, M.Basis' J X ∧ I ⊆ J 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Indep I) (hIX : I ⊆ X)
Goal: ∃ J, M.Basis' J X ∧ I ⊆ J
-- Matroid.exists_basis
theorem exists_basis (M : Matroid α) (X : Set α) (hX : X ⊆ M.E := by aesop_mat) :
    ∃ I, M.Basis I X 
Arguments: {α : Type u_1} (M : Matroid α) (X : Set α) (hX : X ⊆ M.E := by aesop_mat)
Goal: ∃ I, M.Basis I X
-- Matroid.exists_basis'
theorem exists_basis' (M : Matroid α) (X : Set α) : ∃ I, M.Basis' I X 
Arguments: {α : Type u_1} (M : Matroid α) (X : Set α)
Goal: ∃ I, M.Basis' I X
-- Matroid.exists_basis_subset_basis
theorem exists_basis_subset_basis (M : Matroid α) (hXY : X ⊆ Y) (hY : Y ⊆ M.E := by aesop_mat) :
    ∃ I J, M.Basis I X ∧ M.Basis J Y ∧ I ⊆ J 
Arguments: {α : Type u_1} {X Y : Set α} (M : Matroid α) (hXY : X ⊆ Y) (hY : Y ⊆ M.E := by aesop_mat)
Goal: ∃ I J, M.Basis I X ∧ M.Basis J Y ∧ I ⊆ J
-- Matroid.Basis.exists_basis_inter_eq_of_superset
theorem Basis.exists_basis_inter_eq_of_superset (hI : M.Basis I X) (hXY : X ⊆ Y)
    (hY : Y ⊆ M.E := by aesop_mat) : ∃ J, M.Basis J Y ∧ J ∩ X = I 
Arguments: {α : Type u_1} {M : Matroid α} {I X Y : Set α} (hI : M.Basis I X) (hXY : X ⊆ Y) (hY : Y ⊆ M.E := by aesop_mat)
Goal: ∃ J, M.Basis J Y ∧ J ∩ X = I
-- Matroid.exists_basis_union_inter_basis
theorem exists_basis_union_inter_basis (M : Matroid α) (X Y : Set α) (hX : X ⊆ M.E := by aesop_mat)
    (hY : Y ⊆ M.E := by aesop_mat) : ∃ I, M.Basis I (X ∪ Y) ∧ M.Basis (I ∩ Y) Y 
Arguments: {α : Type u_1} (M : Matroid α) (X Y : Set α) (hX : X ⊆ M.E := by aesop_mat) (hY : Y ⊆ M.E := by aesop_mat)
Goal: ∃ I, M.Basis I (X ∪ Y) ∧ M.Basis (I ∩ Y) Y
-- Matroid.Indep.eq_of_basis
theorem Indep.eq_of_basis (hI : M.Indep I) (hJ : M.Basis J I) : J = I 
Arguments: {α : Type u_1} {M : Matroid α} {I J : Set α} (hI : M.Indep I) (hJ : M.Basis J I)
Goal: J = I
-- Matroid.Basis.exists_base
theorem Basis.exists_base (hI : M.Basis I X) : ∃ B, M.Base B ∧ I = B ∩ X 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Basis I X)
Goal: ∃ B, M.Base B ∧ I = B ∩ X
-- Matroid.basis_ground_iff
@[simp] theorem basis_ground_iff : M.Basis B M.E ↔ M.Base B 
Arguments: {α : Type u_1} {M : Matroid α} {B : Set α}
Goal: M.Basis B M.E ↔ M.Base B
-- Matroid.Base.basis_ground
theorem Base.basis_ground (hB : M.Base B) : M.Basis B M.E 
Arguments: {α : Type u_1} {M : Matroid α} {B : Set α} (hB : M.Base B)
Goal: M.Basis B M.E
-- Matroid.Indep.basis_iff_forall_insert_dep
theorem Indep.basis_iff_forall_insert_dep (hI : M.Indep I) (hIX : I ⊆ X) :
    M.Basis I X ↔ ∀ e ∈ X \ I, M.Dep (insert e I) 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Indep I) (hIX : I ⊆ X)
Goal: M.Basis I X ↔ ∀ e ∈ X \ I, M.Dep (insert e I)
-- Matroid.Indep.basis_of_forall_insert
theorem Indep.basis_of_forall_insert (hI : M.Indep I) (hIX : I ⊆ X)
    (he : ∀ e ∈ X \ I, M.Dep (insert e I)) : M.Basis I X 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} (hI : M.Indep I) (hIX : I ⊆ X) (he : ∀ e ∈ X \ I, M.Dep (insert e I))
Goal: M.Basis I X
-- Matroid.Indep.basis_insert_iff
theorem Indep.basis_insert_iff (hI : M.Indep I) :
    M.Basis I (insert e I) ↔ M.Dep (insert e I) ∨ e ∈ I 
Arguments: {α : Type u_1} {M : Matroid α} {I : Set α} {e : α} (hI : M.Indep I)
Goal: M.Basis I (insert e I) ↔ M.Dep (insert e I) ∨ e ∈ I
-- Matroid.Basis.iUnion_basis_iUnion
theorem Basis.iUnion_basis_iUnion {ι : Type _} (X I : ι → Set α) (hI : ∀ i, M.Basis (I i) (X i))
    (h_ind : M.Indep (⋃ i, I i)) : M.Basis (⋃ i, I i) (⋃ i, X i) 
Arguments: {α : Type u_1} {M : Matroid α} {ι : Type u_2} (X I : ι → Set α) (hI : ∀ (i : ι), M.Basis (I i) (X i)) (h_ind : M.Indep (⋃ i, I i))
Goal: M.Basis (⋃ i, I i) (⋃ i, X i)
-- Matroid.Basis.basis_iUnion
theorem Basis.basis_iUnion {ι : Type _} [Nonempty ι] (X : ι → Set α)
    (hI : ∀ i, M.Basis I (X i)) : M.Basis I (⋃ i, X i) 
Arguments: {α : Type u_1} {M : Matroid α} {I : Set α} {ι : Type u_2} [Nonempty ι] (X : ι → Set α) (hI : ∀ (i : ι), M.Basis I (X i))
Goal: M.Basis I (⋃ i, X i)
-- Matroid.Basis.basis_sUnion
theorem Basis.basis_sUnion {Xs : Set (Set α)} (hne : Xs.Nonempty) (h : ∀ X ∈ Xs, M.Basis I X) :
    M.Basis I (⋃₀ Xs) 
Arguments: {α : Type u_1} {M : Matroid α} {I : Set α} {Xs : Set (Set α)} (hne : Xs.Nonempty) (h : ∀ X ∈ Xs, M.Basis I X)
Goal: M.Basis I (⋃₀ Xs)
-- Matroid.Indep.basis_setOf_insert_basis
theorem Indep.basis_setOf_insert_basis (hI : M.Indep I) :
    M.Basis I {x | M.Basis I (insert x I)} 
Arguments: {α : Type u_1} {M : Matroid α} {I : Set α} (hI : M.Indep I)
Goal: M.Basis I {x | M.Basis I (insert x I)}
-- Matroid.Basis.union_basis_union
theorem Basis.union_basis_union (hIX : M.Basis I X) (hJY : M.Basis J Y) (h : M.Indep (I ∪ J)) :
    M.Basis (I ∪ J) (X ∪ Y) 
Arguments: {α : Type u_1} {M : Matroid α} {I J X Y : Set α} (hIX : M.Basis I X) (hJY : M.Basis J Y) (h : M.Indep (I ∪ J))
Goal: M.Basis (I ∪ J) (X ∪ Y)
-- Matroid.Basis.basis_union
theorem Basis.basis_union (hIX : M.Basis I X) (hIY : M.Basis I Y) : M.Basis I (X ∪ Y) 
Arguments: {α : Type u_1} {M : Matroid α} {I X Y : Set α} (hIX : M.Basis I X) (hIY : M.Basis I Y)
Goal: M.Basis I (X ∪ Y)
-- Matroid.Basis.basis_union_of_subset
theorem Basis.basis_union_of_subset (hI : M.Basis I X) (hJ : M.Indep J) (hIJ : I ⊆ J) :
    M.Basis J (J ∪ X) 
Arguments: {α : Type u_1} {M : Matroid α} {I J X : Set α} (hI : M.Basis I X) (hJ : M.Indep J) (hIJ : I ⊆ J)
Goal: M.Basis J (J ∪ X)
-- Matroid.Basis.insert_basis_insert
theorem Basis.insert_basis_insert (hI : M.Basis I X) (h : M.Indep (insert e I)) :
    M.Basis (insert e I) (insert e X) 
Arguments: {α : Type u_1} {M : Matroid α} {I X : Set α} {e : α} (hI : M.Basis I X) (h : M.Indep (insert e I))
Goal: M.Basis (insert e I) (insert e X)
-- Matroid.Base.base_of_basis_superset
theorem Base.base_of_basis_superset (hB : M.Base B) (hBX : B ⊆ X) (hIX : M.Basis I X) :
    M.Base I 
Arguments: {α : Type u_1} {M : Matroid α} {B I X : Set α} (hB : M.Base B) (hBX : B ⊆ X) (hIX : M.Basis I X)
Goal: M.Base I
-- Matroid.Indep.exists_base_subset_union_base
theorem Indep.exists_base_subset_union_base (hI : M.Indep I) (hB : M.Base B) :
    ∃ B', M.Base B' ∧ I ⊆ B' ∧ B' ⊆ I ∪ B 
Arguments: {α : Type u_1} {M : Matroid α} {B I : Set α} (hI : M.Indep I) (hB : M.Base B)
Goal: ∃ B', M.Base B' ∧ I ⊆ B' ∧ B' ⊆ I ∪ B
-- Matroid.Basis.inter_eq_of_subset_indep
theorem Basis.inter_eq_of_subset_indep (hIX : M.Basis I X) (hIJ : I ⊆ J) (hJ : M.Indep J) :
    J ∩ X = I 
Arguments: {α : Type u_1} {M : Matroid α} {I J X : Set α} (hIX : M.Basis I X) (hIJ : I ⊆ J) (hJ : M.Indep J)
Goal: J ∩ X = I
-- Matroid.Basis'.inter_eq_of_subset_indep
theorem Basis'.inter_eq_of_subset_indep (hI : M.Basis' I X) (hIJ : I ⊆ J) (hJ : M.Indep J) :
    J ∩ X = I 
Arguments: {α : Type u_1} {M : Matroid α} {I J X : Set α} (hI : M.Basis' I X) (hIJ : I ⊆ J) (hJ : M.Indep J)
Goal: J ∩ X = I
-- Matroid.Base.basis_of_subset
theorem Base.basis_of_subset (hX : X ⊆ M.E := by aesop_mat) (hB : M.Base B) (hBX : B ⊆ X) :
    M.Basis B X 
Arguments: {α : Type u_1} {M : Matroid α} {B X : Set α} (hX : X ⊆ M.E := by aesop_mat) (hB : M.Base B) (hBX : B ⊆ X)
Goal: M.Basis B X
-- Matroid.exists_basis_disjoint_basis_of_subset
theorem exists_basis_disjoint_basis_of_subset (M : Matroid α) {X Y : Set α} (hXY : X ⊆ Y)
    (hY : Y ⊆ M.E := by aesop_mat) : ∃ I J, M.Basis I X ∧ M.Basis (I ∪ J) Y ∧ Disjoint X J 
Arguments: {α : Type u_1} (M : Matroid α) {X Y : Set α} (hXY : X ⊆ Y) (hY : Y ⊆ M.E := by aesop_mat)
Goal: ∃ I J, M.Basis I X ∧ M.Basis (I ∪ J) Y ∧ Disjoint X J
-- Matroid.finite_setOf_matroid
theorem finite_setOf_matroid {E : Set α} (hE : E.Finite) : {M : Matroid α | M.E ⊆ E}.Finite 
Arguments: {α : Type u_1} {E : Set α} (hE : E.Finite)
Goal: {M | M.E ⊆ E}.Finite
-- Matroid.finite_setOf_matroid'
theorem finite_setOf_matroid' {E : Set α} (hE : E.Finite) : {M : Matroid α | M.E = E}.Finite 
Arguments: {α : Type u_1} {E : Set α} (hE : E.Finite)
Goal: {M | M.E = E}.Finite
-- PLift.up_injective
theorem up_injective : Injective (@up α) 
Arguments: {α : Sort u}
Goal: Function.Injective PLift.up
-- PLift.up_surjective
theorem up_surjective : Surjective (@up α) 
Arguments: {α : Sort u}
Goal: Function.Surjective PLift.up
-- PLift.up_bijective
theorem up_bijective : Bijective (@up α) 
Arguments: {α : Sort u}
Goal: Function.Bijective PLift.up
-- PLift.up_inj
@[simp]
theorem up_inj {x y : α} : up x = up y ↔ x = y 
Arguments: {α : Sort u} {x y : α}
Goal: { down := x } = { down := y } ↔ x = y
-- PLift.down_surjective
theorem down_surjective : Surjective (@down α) 
Arguments: {α : Sort u}
Goal: Function.Surjective PLift.down
-- PLift.down_bijective
theorem down_bijective : Bijective (@down α) 
Arguments: {α : Sort u}
Goal: Function.Bijective PLift.down
-- PLift.forall
@[simp]
theorem «forall» {p : PLift α → Prop} : (∀ x, p x) ↔ ∀ x : α, p (PLift.up x) 
Arguments: {α : Sort u} {p : PLift α → Prop}
Goal: (∀ (x : PLift α), p x) ↔ ∀ (x : α), p { down := x }
-- PLift.exists
@[simp]
theorem «exists» {p : PLift α → Prop} : (∃ x, p x) ↔ ∃ x : α, p (PLift.up x) 
Arguments: {α : Sort u} {p : PLift α → Prop}
Goal: (∃ x, p x) ↔ ∃ x, p { down := x }
-- PLift.map_injective
@[simp] lemma map_injective : Injective (PLift.map f) ↔ Injective f 
Arguments: {α : Sort u} {β : Sort v} {f : α → β}
Goal: Function.Injective (PLift.map f) ↔ Function.Injective f
-- PLift.map_surjective
@[simp] lemma map_surjective : Surjective (PLift.map f) ↔ Surjective f 
Arguments: {α : Sort u} {β : Sort v} {f : α → β}
Goal: Function.Surjective (PLift.map f) ↔ Function.Surjective f
-- PLift.map_bijective
@[simp] lemma map_bijective : Bijective (PLift.map f) ↔ Bijective f 
Arguments: {α : Sort u} {β : Sort v} {f : α → β}
Goal: Function.Bijective (PLift.map f) ↔ Function.Bijective f
-- ULift.up_injective
theorem up_injective : Injective (@up α) 
Arguments: {α : Type u}
Goal: Function.Injective ULift.up
-- ULift.up_surjective
theorem up_surjective : Surjective (@up α) 
Arguments: {α : Type u}
Goal: Function.Surjective ULift.up
-- ULift.up_bijective
theorem up_bijective : Bijective (@up α) 
Arguments: {α : Type u}
Goal: Function.Bijective ULift.up
-- ULift.up_inj
@[simp]
theorem up_inj {x y : α} : up x = up y ↔ x = y 
Arguments: {α : Type u} {x y : α}
Goal: { down := x } = { down := y } ↔ x = y
-- ULift.down_surjective
theorem down_surjective : Surjective (@down α) 
Arguments: {α : Type u}
Goal: Function.Surjective ULift.down
-- ULift.down_bijective
theorem down_bijective : Bijective (@down α) 
Arguments: {α : Type u}
Goal: Function.Bijective ULift.down
-- ULift.forall
@[simp]
theorem «forall» {p : ULift α → Prop} : (∀ x, p x) ↔ ∀ x : α, p (ULift.up x) 
Arguments: {α : Type u} {p : ULift.{u_1, u} α → Prop}
Goal: (∀ (x : ULift.{u_1, u} α), p x) ↔ ∀ (x : α), p { down := x }
-- ULift.exists
@[simp]
theorem «exists» {p : ULift α → Prop} : (∃ x, p x) ↔ ∃ x : α, p (ULift.up x) 
Arguments: {α : Type u} {p : ULift.{u_1, u} α → Prop}
Goal: (∃ x, p x) ↔ ∃ x, p { down := x }
-- ULift.map_injective
@[simp] lemma map_injective : Injective (ULift.map f : ULift.{u'} α → ULift.{v'} β) ↔ Injective f 
Arguments: {α : Type u} {β : Type v} {f : α → β}
Goal: Function.Injective (ULift.map f) ↔ Function.Injective f
-- ULift.map_surjective
@[simp] lemma map_surjective :
    Surjective (ULift.map f : ULift.{u'} α → ULift.{v'} β) ↔ Surjective f 
Arguments: {α : Type u} {β : Type v} {f : α → β}
Goal: Function.Surjective (ULift.map f) ↔ Function.Surjective f
-- ULift.map_bijective
@[simp] lemma map_bijective : Bijective (ULift.map f : ULift.{u'} α → ULift.{v'} β) ↔ Bijective f 
Arguments: {α : Type u} {β : Type v} {f : α → β}
Goal: Function.Bijective (ULift.map f) ↔ Function.Bijective f
-- ULift.ext
@[ext]
theorem ext (x y : ULift α) (h : x.down = y.down) : x = y 
Arguments: {α : Type u} (x y : ULift.{u_1, u} α) (h : x.down = y.down)
Goal: x = y
-- ULift.ext_iff
theorem ext_iff {α : Type*} (x y : ULift α) : x = y ↔ x.down = y.down 
Arguments: {α : Type u_1} (x y : ULift.{u_2, u_1} α)
Goal: x = y ↔ x.down = y.down
-- Finset.sup_def
theorem sup_def : s.sup f = (s.1.map f).sup 
Arguments: {α : Type u_2} {β : Type u_3} [SemilatticeSup α] [OrderBot α] {s : Finset β} {f : β → α}
Goal: s.sup f = (Multiset.map f s.val).sup
-- Finset.sup_empty
@[simp]
theorem sup_empty : (∅ : Finset β).sup f = ⊥ 
Arguments: {α : Type u_2} {β : Type u_3} [SemilatticeSup α] [OrderBot α] {f : β → α}
Goal: ∅.sup f = ⊥