ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Finset.erase_injOn
theorem erase_injOn (s : Finset α) : Set.InjOn s.erase s 
Arguments: {α : Type u_1} [DecidableEq α] (s : Finset α)
Goal: Set.InjOn s.erase ↑s
-- Finset.erase_injOn'
theorem erase_injOn' (a : α) : { s : Finset α | a ∈ s }.InjOn fun s => erase s a 
Arguments: {α : Type u_1} [DecidableEq α] (a : α)
Goal: Set.InjOn (fun s => s.erase a) {s | a ∈ s}
-- Finset.Nontrivial.exists_cons_eq
lemma Nontrivial.exists_cons_eq {s : Finset α} (hs : s.Nontrivial) :
    ∃ t a ha b hb hab, (cons b t hb).cons a (mem_cons.not.2 <| not_or_intro hab ha) = s 
Arguments: {α : Type u_1} {s : Finset α} (hs : s.Nontrivial)
Goal: ∃ t a, ∃ (ha : a ∉ t), ∃ b, ∃ (hb : b ∉ t) (hab : ¬a = b), Finset.cons a (Finset.cons b t hb) ⋯ = s
-- Finset.sdiff_val
@[simp]
theorem sdiff_val (s₁ s₂ : Finset α) : (s₁ \ s₂).val = s₁.val - s₂.val 
Arguments: {α : Type u_1} [DecidableEq α] (s₁ s₂ : Finset α)
Goal: (s₁ \ s₂).val = s₁.val - s₂.val
-- Finset.mem_sdiff
@[simp]
theorem mem_sdiff : a ∈ s \ t ↔ a ∈ s ∧ a ∉ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α}
Goal: a ∈ s \ t ↔ a ∈ s ∧ a ∉ t
-- Finset.inter_sdiff_self
@[simp]
theorem inter_sdiff_self (s₁ s₂ : Finset α) : s₁ ∩ (s₂ \ s₁) = ∅ 
Arguments: {α : Type u_1} [DecidableEq α] (s₁ s₂ : Finset α)
Goal: s₁ ∩ (s₂ \ s₁) = ∅
-- Finset.not_mem_sdiff_of_mem_right
theorem not_mem_sdiff_of_mem_right (h : a ∈ t) : a ∉ s \ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α} (h : a ∈ t)
Goal: a ∉ s \ t
-- Finset.not_mem_sdiff_of_not_mem_left
theorem not_mem_sdiff_of_not_mem_left (h : a ∉ s) : a ∉ s \ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α} (h : a ∉ s)
Goal: a ∉ s \ t
-- Finset.union_sdiff_of_subset
theorem union_sdiff_of_subset (h : s ⊆ t) : s ∪ t \ s = t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} (h : s ⊆ t)
Goal: s ∪ t \ s = t
-- Finset.sdiff_union_of_subset
theorem sdiff_union_of_subset {s₁ s₂ : Finset α} (h : s₁ ⊆ s₂) : s₂ \ s₁ ∪ s₁ = s₂ 
Arguments: {α : Type u_1} [DecidableEq α] {s₁ s₂ : Finset α} (h : s₁ ⊆ s₂)
Goal: s₂ \ s₁ ∪ s₁ = s₂
-- Finset.inter_sdiff_assoc
lemma inter_sdiff_assoc (s t u : Finset α) : (s ∩ t) \ u = s ∩ (t \ u) 
Arguments: {α : Type u_1} [DecidableEq α] (s t u : Finset α)
Goal: (s ∩ t) \ u = s ∩ (t \ u)
-- Finset.inter_sdiff
@[deprecated inter_sdiff_assoc (since := "2024-05-01")]
theorem inter_sdiff (s t u : Finset α) : s ∩ (t \ u) = (s ∩ t) \ u 
Arguments: {α : Type u_1} [DecidableEq α] (s t u : Finset α)
Goal: s ∩ (t \ u) = (s ∩ t) \ u
-- Finset.sdiff_inter_self
@[simp]
theorem sdiff_inter_self (s₁ s₂ : Finset α) : s₂ \ s₁ ∩ s₁ = ∅ 
Arguments: {α : Type u_1} [DecidableEq α] (s₁ s₂ : Finset α)
Goal: s₂ \ s₁ ∩ s₁ = ∅
-- Finset.sdiff_self
protected theorem sdiff_self (s₁ : Finset α) : s₁ \ s₁ = ∅ 
Arguments: {α : Type u_1} [DecidableEq α] (s₁ : Finset α)
Goal: s₁ \ s₁ = ∅
-- Finset.sdiff_inter_distrib_right
theorem sdiff_inter_distrib_right (s t u : Finset α) : s \ (t ∩ u) = s \ t ∪ s \ u 
Arguments: {α : Type u_1} [DecidableEq α] (s t u : Finset α)
Goal: s \ (t ∩ u) = s \ t ∪ s \ u
-- Finset.sdiff_inter_self_left
@[simp]
theorem sdiff_inter_self_left (s t : Finset α) : s \ (s ∩ t) = s \ t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: s \ (s ∩ t) = s \ t
-- Finset.sdiff_inter_self_right
@[simp]
theorem sdiff_inter_self_right (s t : Finset α) : s \ (t ∩ s) = s \ t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: s \ (t ∩ s) = s \ t
-- Finset.sdiff_empty
@[simp]
theorem sdiff_empty : s \ ∅ = s 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α}
Goal: s \ ∅ = s
-- Finset.sdiff_subset_sdiff
@[mono, gcongr]
theorem sdiff_subset_sdiff (hst : s ⊆ t) (hvu : v ⊆ u) : s \ u ⊆ t \ v 
Arguments: {α : Type u_1} [DecidableEq α] {s t u v : Finset α} (hst : s ⊆ t) (hvu : v ⊆ u)
Goal: s \ u ⊆ t \ v
-- Finset.coe_sdiff
@[simp, norm_cast]
theorem coe_sdiff (s₁ s₂ : Finset α) : ↑(s₁ \ s₂) = (s₁ \ s₂ : Set α) 
Arguments: {α : Type u_1} [DecidableEq α] (s₁ s₂ : Finset α)
Goal: ↑(s₁ \ s₂) = ↑s₁ \ ↑s₂
-- Finset.union_sdiff_self_eq_union
@[simp]
theorem union_sdiff_self_eq_union : s ∪ t \ s = s ∪ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: s ∪ t \ s = s ∪ t
-- Finset.sdiff_union_self_eq_union
@[simp]
theorem sdiff_union_self_eq_union : s \ t ∪ t = s ∪ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: s \ t ∪ t = s ∪ t
-- Finset.union_sdiff_left
theorem union_sdiff_left (s t : Finset α) : (s ∪ t) \ s = t \ s 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: (s ∪ t) \ s = t \ s
-- Finset.union_sdiff_right
theorem union_sdiff_right (s t : Finset α) : (s ∪ t) \ t = s \ t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: (s ∪ t) \ t = s \ t
-- Finset.union_sdiff_cancel_left
theorem union_sdiff_cancel_left (h : Disjoint s t) : (s ∪ t) \ s = t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} (h : Disjoint s t)
Goal: (s ∪ t) \ s = t
-- Finset.union_sdiff_cancel_right
theorem union_sdiff_cancel_right (h : Disjoint s t) : (s ∪ t) \ t = s 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} (h : Disjoint s t)
Goal: (s ∪ t) \ t = s
-- Finset.union_sdiff_symm
theorem union_sdiff_symm : s ∪ t \ s = t ∪ s \ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: s ∪ t \ s = t ∪ s \ t
-- Finset.sdiff_union_inter
theorem sdiff_union_inter (s t : Finset α) : s \ t ∪ s ∩ t = s 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: s \ t ∪ s ∩ t = s
-- Finset.sdiff_idem
theorem sdiff_idem (s t : Finset α) : (s \ t) \ t = s \ t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: (s \ t) \ t = s \ t
-- Finset.subset_sdiff
theorem subset_sdiff : s ⊆ t \ u ↔ s ⊆ t ∧ Disjoint s u 
Arguments: {α : Type u_1} [DecidableEq α] {s t u : Finset α}
Goal: s ⊆ t \ u ↔ s ⊆ t ∧ Disjoint s u
-- Finset.sdiff_eq_empty_iff_subset
@[simp]
theorem sdiff_eq_empty_iff_subset : s \ t = ∅ ↔ s ⊆ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: s \ t = ∅ ↔ s ⊆ t
-- Finset.sdiff_nonempty
theorem sdiff_nonempty : (s \ t).Nonempty ↔ ¬s ⊆ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: (s \ t).Nonempty ↔ ¬s ⊆ t
-- Finset.empty_sdiff
@[simp]
theorem empty_sdiff (s : Finset α) : ∅ \ s = ∅ 
Arguments: {α : Type u_1} [DecidableEq α] (s : Finset α)
Goal: ∅ \ s = ∅
-- Finset.insert_sdiff_of_not_mem
theorem insert_sdiff_of_not_mem (s : Finset α) {t : Finset α} {x : α} (h : x ∉ t) :
    insert x s \ t = insert x (s \ t) 
Arguments: {α : Type u_1} [DecidableEq α] (s : Finset α) {t : Finset α} {x : α} (h : x ∉ t)
Goal: insert x s \ t = insert x (s \ t)
-- Finset.insert_sdiff_of_mem
theorem insert_sdiff_of_mem (s : Finset α) {x : α} (h : x ∈ t) : insert x s \ t = s \ t 
Arguments: {α : Type u_1} [DecidableEq α] {t : Finset α} (s : Finset α) {x : α} (h : x ∈ t)
Goal: insert x s \ t = s \ t
-- Finset.insert_sdiff_cancel
@[simp] lemma insert_sdiff_cancel (ha : a ∉ s) : insert a s \ s = {a} 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a : α} (ha : a ∉ s)
Goal: insert a s \ s = {a}
-- Finset.insert_sdiff_insert
@[simp]
theorem insert_sdiff_insert (s t : Finset α) (x : α) : insert x s \ insert x t = s \ insert x t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α) (x : α)
Goal: insert x s \ insert x t = s \ insert x t
-- Finset.insert_sdiff_insert'
lemma insert_sdiff_insert' (hab : a ≠ b) (ha : a ∉ s) : insert a s \ insert b s = {a} 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a b : α} (hab : a ≠ b) (ha : a ∉ s)
Goal: insert a s \ insert b s = {a}
-- Finset.erase_sdiff_erase
lemma erase_sdiff_erase (hab : a ≠ b) (hb : b ∈ s) : s.erase a \ s.erase b = {b} 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a b : α} (hab : a ≠ b) (hb : b ∈ s)
Goal: s.erase a \ s.erase b = {b}
-- Finset.cons_sdiff_cons
lemma cons_sdiff_cons (hab : a ≠ b) (ha hb) : s.cons a ha \ s.cons b hb = {a} 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a b : α} (hab : a ≠ b) (ha : a ∉ s) (hb : b ∉ s)
Goal: Finset.cons a s ha \ Finset.cons b s hb = {a}
-- Finset.sdiff_insert_of_not_mem
theorem sdiff_insert_of_not_mem {x : α} (h : x ∉ s) (t : Finset α) : s \ insert x t = s \ t 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {x : α} (h : x ∉ s) (t : Finset α)
Goal: s \ insert x t = s \ t
-- Finset.sdiff_subset
@[simp] theorem sdiff_subset {s t : Finset α} : s \ t ⊆ s 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: s \ t ⊆ s
-- Finset.sdiff_ssubset
theorem sdiff_ssubset (h : t ⊆ s) (ht : t.Nonempty) : s \ t ⊂ s 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} (h : t ⊆ s) (ht : t.Nonempty)
Goal: s \ t ⊂ s
-- Finset.union_sdiff_distrib
theorem union_sdiff_distrib (s₁ s₂ t : Finset α) : (s₁ ∪ s₂) \ t = s₁ \ t ∪ s₂ \ t 
Arguments: {α : Type u_1} [DecidableEq α] (s₁ s₂ t : Finset α)
Goal: (s₁ ∪ s₂) \ t = s₁ \ t ∪ s₂ \ t
-- Finset.sdiff_union_distrib
theorem sdiff_union_distrib (s t₁ t₂ : Finset α) : s \ (t₁ ∪ t₂) = s \ t₁ ∩ (s \ t₂) 
Arguments: {α : Type u_1} [DecidableEq α] (s t₁ t₂ : Finset α)
Goal: s \ (t₁ ∪ t₂) = s \ t₁ ∩ (s \ t₂)
-- Finset.union_sdiff_self
theorem union_sdiff_self (s t : Finset α) : (s ∪ t) \ t = s \ t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: (s ∪ t) \ t = s \ t
-- Finset.sdiff_singleton_eq_erase
theorem sdiff_singleton_eq_erase (a : α) (s : Finset α) : s \ singleton a = erase s a 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α)
Goal: s \ {a} = s.erase a
-- Finset.erase_eq
theorem erase_eq (s : Finset α) (a : α) : s.erase a = s \ {a} 
Arguments: {α : Type u_1} [DecidableEq α] (s : Finset α) (a : α)
Goal: s.erase a = s \ {a}
-- Finset.disjoint_erase_comm
theorem disjoint_erase_comm : Disjoint (s.erase a) t ↔ Disjoint s (t.erase a) 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α}
Goal: Disjoint (s.erase a) t ↔ Disjoint s (t.erase a)
-- Finset.disjoint_insert_erase
lemma disjoint_insert_erase (ha : a ∉ t) : Disjoint (s.erase a) (insert a t) ↔ Disjoint s t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α} (ha : a ∉ t)
Goal: Disjoint (s.erase a) (insert a t) ↔ Disjoint s t
-- Finset.disjoint_erase_insert
lemma disjoint_erase_insert (ha : a ∉ s) : Disjoint (insert a s) (t.erase a) ↔ Disjoint s t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α} (ha : a ∉ s)
Goal: Disjoint (insert a s) (t.erase a) ↔ Disjoint s t
-- Finset.disjoint_of_erase_left
theorem disjoint_of_erase_left (ha : a ∉ t) (hst : Disjoint (s.erase a) t) : Disjoint s t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α} (ha : a ∉ t) (hst : Disjoint (s.erase a) t)
Goal: Disjoint s t
-- Finset.disjoint_of_erase_right
theorem disjoint_of_erase_right (ha : a ∉ s) (hst : Disjoint s (t.erase a)) : Disjoint s t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α} (ha : a ∉ s) (hst : Disjoint s (t.erase a))
Goal: Disjoint s t
-- Finset.inter_erase
theorem inter_erase (a : α) (s t : Finset α) : s ∩ t.erase a = (s ∩ t).erase a 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s t : Finset α)
Goal: s ∩ t.erase a = (s ∩ t).erase a
-- Finset.erase_inter
@[simp]
theorem erase_inter (a : α) (s t : Finset α) : s.erase a ∩ t = (s ∩ t).erase a 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s t : Finset α)
Goal: s.erase a ∩ t = (s ∩ t).erase a
-- Finset.erase_sdiff_comm
theorem erase_sdiff_comm (s t : Finset α) (a : α) : s.erase a \ t = (s \ t).erase a 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α) (a : α)
Goal: s.erase a \ t = (s \ t).erase a
-- Finset.insert_union_comm
theorem insert_union_comm (s t : Finset α) (a : α) : insert a s ∪ t = s ∪ insert a t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α) (a : α)
Goal: insert a s ∪ t = s ∪ insert a t
-- Finset.erase_inter_comm
theorem erase_inter_comm (s t : Finset α) (a : α) : s.erase a ∩ t = s ∩ t.erase a 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α) (a : α)
Goal: s.erase a ∩ t = s ∩ t.erase a
-- Finset.erase_union_distrib
theorem erase_union_distrib (s t : Finset α) (a : α) : (s ∪ t).erase a = s.erase a ∪ t.erase a 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α) (a : α)
Goal: (s ∪ t).erase a = s.erase a ∪ t.erase a
-- Finset.insert_inter_distrib
theorem insert_inter_distrib (s t : Finset α) (a : α) :
    insert a (s ∩ t) = insert a s ∩ insert a t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α) (a : α)
Goal: insert a (s ∩ t) = insert a s ∩ insert a t
-- Finset.erase_sdiff_distrib
theorem erase_sdiff_distrib (s t : Finset α) (a : α) : (s \ t).erase a = s.erase a \ t.erase a 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α) (a : α)
Goal: (s \ t).erase a = s.erase a \ t.erase a
-- Finset.erase_union_of_mem
theorem erase_union_of_mem (ha : a ∈ t) (s : Finset α) : s.erase a ∪ t = s ∪ t 
Arguments: {α : Type u_1} [DecidableEq α] {t : Finset α} {a : α} (ha : a ∈ t) (s : Finset α)
Goal: s.erase a ∪ t = s ∪ t
-- Finset.union_erase_of_mem
theorem union_erase_of_mem (ha : a ∈ s) (t : Finset α) : s ∪ t.erase a = s ∪ t 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a : α} (ha : a ∈ s) (t : Finset α)
Goal: s ∪ t.erase a = s ∪ t
-- Finset.sdiff_singleton_eq_self
@[simp]
theorem sdiff_singleton_eq_self (ha : a ∉ s) : s \ {a} = s 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a : α} (ha : a ∉ s)
Goal: s \ {a} = s
-- Finset.Nontrivial.sdiff_singleton_nonempty
theorem Nontrivial.sdiff_singleton_nonempty {c : α} {s : Finset α} (hS : s.Nontrivial) :
    (s \ {c}).Nonempty 
Arguments: {α : Type u_1} [DecidableEq α] {c : α} {s : Finset α} (hS : s.Nontrivial)
Goal: (s \ {c}).Nonempty
-- Finset.sdiff_sdiff_left'
theorem sdiff_sdiff_left' (s t u : Finset α) : (s \ t) \ u = s \ t ∩ (s \ u) 
Arguments: {α : Type u_1} [DecidableEq α] (s t u : Finset α)
Goal: (s \ t) \ u = s \ t ∩ (s \ u)
-- Finset.sdiff_union_sdiff_cancel
theorem sdiff_union_sdiff_cancel (hts : t ⊆ s) (hut : u ⊆ t) : s \ t ∪ t \ u = s \ u 
Arguments: {α : Type u_1} [DecidableEq α] {s t u : Finset α} (hts : t ⊆ s) (hut : u ⊆ t)
Goal: s \ t ∪ t \ u = s \ u
-- Finset.sdiff_union_erase_cancel
theorem sdiff_union_erase_cancel (hts : t ⊆ s) (ha : a ∈ t) : s \ t ∪ t.erase a = s.erase a 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α} (hts : t ⊆ s) (ha : a ∈ t)
Goal: s \ t ∪ t.erase a = s.erase a
-- Finset.sdiff_sdiff_eq_sdiff_union
theorem sdiff_sdiff_eq_sdiff_union (h : u ⊆ s) : s \ (t \ u) = s \ t ∪ u 
Arguments: {α : Type u_1} [DecidableEq α] {s t u : Finset α} (h : u ⊆ s)
Goal: s \ (t \ u) = s \ t ∪ u
-- Finset.sdiff_insert
theorem sdiff_insert (s t : Finset α) (x : α) : s \ insert x t = (s \ t).erase x 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α) (x : α)
Goal: s \ insert x t = (s \ t).erase x
-- Finset.sdiff_insert_insert_of_mem_of_not_mem
theorem sdiff_insert_insert_of_mem_of_not_mem {s t : Finset α} {x : α} (hxs : x ∈ s) (hxt : x ∉ t) :
    insert x (s \ insert x t) = s \ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {x : α} (hxs : x ∈ s) (hxt : x ∉ t)
Goal: insert x (s \ insert x t) = s \ t
-- Finset.sdiff_erase
theorem sdiff_erase (h : a ∈ s) : s \ t.erase a = insert a (s \ t) 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α} (h : a ∈ s)
Goal: s \ t.erase a = insert a (s \ t)
-- Finset.sdiff_erase_self
theorem sdiff_erase_self (ha : a ∈ s) : s \ s.erase a = {a} 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a : α} (ha : a ∈ s)
Goal: s \ s.erase a = {a}
-- Finset.sdiff_sdiff_self_left
theorem sdiff_sdiff_self_left (s t : Finset α) : s \ (s \ t) = s ∩ t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: s \ (s \ t) = s ∩ t
-- Finset.sdiff_sdiff_eq_self
theorem sdiff_sdiff_eq_self (h : t ⊆ s) : s \ (s \ t) = t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} (h : t ⊆ s)
Goal: s \ (s \ t) = t
-- Finset.sdiff_eq_sdiff_iff_inter_eq_inter
theorem sdiff_eq_sdiff_iff_inter_eq_inter {s t₁ t₂ : Finset α} :
    s \ t₁ = s \ t₂ ↔ s ∩ t₁ = s ∩ t₂ 
Arguments: {α : Type u_1} [DecidableEq α] {s t₁ t₂ : Finset α}
Goal: s \ t₁ = s \ t₂ ↔ s ∩ t₁ = s ∩ t₂
-- Finset.union_eq_sdiff_union_sdiff_union_inter
theorem union_eq_sdiff_union_sdiff_union_inter (s t : Finset α) : s ∪ t = s \ t ∪ t \ s ∪ s ∩ t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: s ∪ t = s \ t ∪ t \ s ∪ s ∩ t
-- Finset.erase_eq_empty_iff
theorem erase_eq_empty_iff (s : Finset α) (a : α) : s.erase a = ∅ ↔ s = ∅ ∨ s = {a} 
Arguments: {α : Type u_1} [DecidableEq α] (s : Finset α) (a : α)
Goal: s.erase a = ∅ ↔ s = ∅ ∨ s = {a}
-- Finset.sdiff_disjoint
theorem sdiff_disjoint : Disjoint (t \ s) s 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: Disjoint (t \ s) s
-- Finset.disjoint_sdiff
theorem disjoint_sdiff : Disjoint s (t \ s) 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: Disjoint s (t \ s)
-- Finset.disjoint_sdiff_inter
theorem disjoint_sdiff_inter (s t : Finset α) : Disjoint (s \ t) (s ∩ t) 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: Disjoint (s \ t) (s ∩ t)
-- Finset.sdiff_eq_self_iff_disjoint
theorem sdiff_eq_self_iff_disjoint : s \ t = s ↔ Disjoint s t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: s \ t = s ↔ Disjoint s t
-- Finset.sdiff_eq_self_of_disjoint
theorem sdiff_eq_self_of_disjoint (h : Disjoint s t) : s \ t = s 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} (h : Disjoint s t)
Goal: s \ t = s
-- Finset.mem_symmDiff
theorem mem_symmDiff : a ∈ s ∆ t ↔ a ∈ s ∧ a ∉ t ∨ a ∈ t ∧ a ∉ s 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α}
Goal: a ∈ symmDiff s t ↔ a ∈ s ∧ a ∉ t ∨ a ∈ t ∧ a ∉ s
-- Finset.coe_symmDiff
@[simp, norm_cast]
theorem coe_symmDiff : (↑(s ∆ t) : Set α) = (s : Set α) ∆ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: ↑(symmDiff s t) = symmDiff ↑s ↑t
-- Finset.symmDiff_eq_empty
@[simp] lemma symmDiff_eq_empty : s ∆ t = ∅ ↔ s = t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: symmDiff s t = ∅ ↔ s = t
-- Finset.symmDiff_nonempty
@[simp] lemma symmDiff_nonempty : (s ∆ t).Nonempty ↔ s ≠ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: (symmDiff s t).Nonempty ↔ s ≠ t
-- Finset.sizeOf_lt_sizeOf_of_mem
theorem sizeOf_lt_sizeOf_of_mem [SizeOf α] {x : α} {s : Finset α} (hx : x ∈ s) :
    SizeOf.sizeOf x < SizeOf.sizeOf s 
Arguments: {α : Type u_1} [SizeOf α] {x : α} {s : Finset α} (hx : x ∈ s)
Goal: sizeOf x < sizeOf s
-- Finset.attach_val
@[simp]
theorem attach_val (s : Finset α) : s.attach.1 = s.1.attach 
Arguments: {α : Type u_1} (s : Finset α)
Goal: s.attach.val = s.val.attach
-- Finset.mem_attach
@[simp]
theorem mem_attach (s : Finset α) : ∀ x, x ∈ s.attach 
Arguments: {α : Type u_1} (s : Finset α) (x : { x // x ∈ s })
Goal: x ∈ s.attach
-- Finset.attach_empty
@[simp]
theorem attach_empty : attach (∅ : Finset α) = ∅ 
Arguments: {α : Type u_1}
Goal: ∅.attach = ∅
-- Finset.attach_nonempty_iff
@[simp, aesop safe apply (rule_sets := [finsetNonempty])]
theorem attach_nonempty_iff {s : Finset α} : s.attach.Nonempty ↔ s.Nonempty 
Arguments: {α : Type u_1} {s : Finset α}
Goal: s.attach.Nonempty ↔ s.Nonempty
-- Finset.attach_eq_empty_iff
@[simp]
theorem attach_eq_empty_iff {s : Finset α} : s.attach = ∅ ↔ s = ∅ 
Arguments: {α : Type u_1} {s : Finset α}
Goal: s.attach = ∅ ↔ s = ∅
-- Finset.filter_val
@[simp]
theorem filter_val (s : Finset α) : (filter p s).1 = s.1.filter p 
Arguments: {α : Type u_1} (p : α → Prop) [DecidablePred p] (s : Finset α)
Goal: (Finset.filter p s).val = Multiset.filter p s.val
-- Finset.filter_subset
@[simp]
theorem filter_subset (s : Finset α) : s.filter p ⊆ s 
Arguments: {α : Type u_1} (p : α → Prop) [DecidablePred p] (s : Finset α)
Goal: Finset.filter p s ⊆ s
-- Finset.mem_filter
@[simp]
theorem mem_filter {s : Finset α} {a : α} : a ∈ s.filter p ↔ a ∈ s ∧ p a 
Arguments: {α : Type u_1} {p : α → Prop} [DecidablePred p] {s : Finset α} {a : α}
Goal: a ∈ Finset.filter p s ↔ a ∈ s ∧ p a
-- Finset.mem_of_mem_filter
theorem mem_of_mem_filter {s : Finset α} (x : α) (h : x ∈ s.filter p) : x ∈ s 
Arguments: {α : Type u_1} {p : α → Prop} [DecidablePred p] {s : Finset α} (x : α) (h : x ∈ Finset.filter p s)
Goal: x ∈ s
-- Finset.filter_ssubset
theorem filter_ssubset {s : Finset α} : s.filter p ⊂ s ↔ ∃ x ∈ s, ¬p x 
Arguments: {α : Type u_1} {p : α → Prop} [DecidablePred p] {s : Finset α}
Goal: Finset.filter p s ⊂ s ↔ ∃ x ∈ s, ¬p x
-- Finset.filter_filter
theorem filter_filter (s : Finset α) : (s.filter p).filter q = s.filter fun a => p a ∧ q a 
Arguments: {α : Type u_1} (p q : α → Prop) [DecidablePred p] [DecidablePred q] (s : Finset α)
Goal: Finset.filter q (Finset.filter p s) = Finset.filter (fun a => p a ∧ q a) s
-- Finset.filter_comm
theorem filter_comm (s : Finset α) : (s.filter p).filter q = (s.filter q).filter p 
Arguments: {α : Type u_1} (p q : α → Prop) [DecidablePred p] [DecidablePred q] (s : Finset α)
Goal: Finset.filter q (Finset.filter p s) = Finset.filter p (Finset.filter q s)
-- Finset.filter_congr_decidable
theorem filter_congr_decidable (s : Finset α) (p : α → Prop) (h : DecidablePred p)
    [DecidablePred p] : @filter α p h s = s.filter p 
Arguments: {α : Type u_1} (s : Finset α) (p : α → Prop) (h : DecidablePred p) [DecidablePred p]
Goal: Finset.filter p s = Finset.filter p s
-- Finset.filter_True
@[simp]
theorem filter_True {h} (s : Finset α) : @filter _ (fun _ => True) h s = s 
Arguments: {α : Type u_1} {h : DecidablePred fun x => True} (s : Finset α)
Goal: Finset.filter (fun x => True) s = s
-- Finset.filter_False
@[simp]
theorem filter_False {h} (s : Finset α) : @filter _ (fun _ => False) h s = ∅ 
Arguments: {α : Type u_1} {h : DecidablePred fun x => False} (s : Finset α)
Goal: Finset.filter (fun x => False) s = ∅
-- Finset.filter_eq_self
lemma filter_eq_self : s.filter p = s ↔ ∀ x ∈ s, p x 
Arguments: {α : Type u_1} {p : α → Prop} [DecidablePred p] {s : Finset α}
Goal: Finset.filter p s = s ↔ ∀ x ∈ s, p x
-- Finset.filter_eq_empty_iff
theorem filter_eq_empty_iff : s.filter p = ∅ ↔ ∀ ⦃x⦄, x ∈ s → ¬p x 
Arguments: {α : Type u_1} {p : α → Prop} [DecidablePred p] {s : Finset α}
Goal: Finset.filter p s = ∅ ↔ ∀ ⦃x : α⦄, x ∈ s → ¬p x
-- Finset.filter_nonempty_iff
theorem filter_nonempty_iff : (s.filter p).Nonempty ↔ ∃ a ∈ s, p a 
Arguments: {α : Type u_1} {p : α → Prop} [DecidablePred p] {s : Finset α}
Goal: (Finset.filter p s).Nonempty ↔ ∃ a ∈ s, p a
-- Finset.filter_true_of_mem
theorem filter_true_of_mem (h : ∀ x ∈ s, p x) : s.filter p = s 
Arguments: {α : Type u_1} {p : α → Prop} [DecidablePred p] {s : Finset α} (h : ∀ x ∈ s, p x)
Goal: Finset.filter p s = s
-- Finset.filter_false_of_mem
theorem filter_false_of_mem (h : ∀ x ∈ s, ¬p x) : s.filter p = ∅ 
Arguments: {α : Type u_1} {p : α → Prop} [DecidablePred p] {s : Finset α} (h : ∀ x ∈ s, ¬p x)
Goal: Finset.filter p s = ∅
-- Finset.filter_const
@[simp]
theorem filter_const (p : Prop) [Decidable p] (s : Finset α) :
    (s.filter fun _a => p) = if p then s else ∅ 
Arguments: {α : Type u_1} (p : Prop) [Decidable p] (s : Finset α)
Goal: Finset.filter (fun _a => p) s = if p then s else ∅
-- Finset.filter_congr
theorem filter_congr {s : Finset α} (H : ∀ x ∈ s, p x ↔ q x) : filter p s = filter q s 
Arguments: {α : Type u_1} {p q : α → Prop} [DecidablePred p] [DecidablePred q] {s : Finset α} (H : ∀ x ∈ s, p x ↔ q x)
Goal: Finset.filter p s = Finset.filter q s
-- Finset.filter_empty
@[simp]
theorem filter_empty : filter p ∅ = ∅ 
Arguments: {α : Type u_1} (p : α → Prop) [DecidablePred p]
Goal: Finset.filter p ∅ = ∅
-- Finset.filter_subset_filter
@[gcongr]
theorem filter_subset_filter {s t : Finset α} (h : s ⊆ t) : s.filter p ⊆ t.filter p 
Arguments: {α : Type u_1} (p : α → Prop) [DecidablePred p] {s t : Finset α} (h : s ⊆ t)
Goal: Finset.filter p s ⊆ Finset.filter p t
-- Finset.monotone_filter_left
theorem monotone_filter_left : Monotone (filter p) 
Arguments: {α : Type u_1} (p : α → Prop) [DecidablePred p]
Goal: Monotone (Finset.filter p)
-- Finset.monotone_filter_right
theorem monotone_filter_right (s : Finset α) ⦃p q : α → Prop⦄ [DecidablePred p] [DecidablePred q]
    (h : p ≤ q) : s.filter p ⊆ s.filter q 
Arguments: {α : Type u_1} (s : Finset α) ⦃p q : α → Prop⦄ [DecidablePred p] [DecidablePred q] (h : p ≤ q)
Goal: Finset.filter p s ⊆ Finset.filter q s