ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Finset.not_nontrivial_empty
@[simp]
theorem not_nontrivial_empty : ¬ (∅ : Finset α).Nontrivial 
Arguments: {α : Type u_1}
Goal: ¬∅.Nontrivial
-- Finset.not_nontrivial_singleton
@[simp]
theorem not_nontrivial_singleton : ¬ ({a} : Finset α).Nontrivial 
Arguments: {α : Type u_1} {a : α}
Goal: ¬{a}.Nontrivial
-- Finset.Nontrivial.ne_singleton
theorem Nontrivial.ne_singleton (hs : s.Nontrivial) : s ≠ {a} 
Arguments: {α : Type u_1} {s : Finset α} {a : α} (hs : s.Nontrivial)
Goal: s ≠ {a}
-- Finset.Nontrivial.exists_ne
nonrec lemma Nontrivial.exists_ne (hs : s.Nontrivial) (a : α) : ∃ b ∈ s, b ≠ a 
Arguments: {α : Type u_1} {s : Finset α} (hs : s.Nontrivial) (a : α)
Goal: ∃ b ∈ s, b ≠ a
-- Finset.eq_singleton_or_nontrivial
theorem eq_singleton_or_nontrivial (ha : a ∈ s) : s = {a} ∨ s.Nontrivial 
Arguments: {α : Type u_1} {s : Finset α} {a : α} (ha : a ∈ s)
Goal: s = {a} ∨ s.Nontrivial
-- Finset.nontrivial_iff_ne_singleton
theorem nontrivial_iff_ne_singleton (ha : a ∈ s) : s.Nontrivial ↔ s ≠ {a} 
Arguments: {α : Type u_1} {s : Finset α} {a : α} (ha : a ∈ s)
Goal: s.Nontrivial ↔ s ≠ {a}
-- Finset.Nonempty.exists_eq_singleton_or_nontrivial
theorem Nonempty.exists_eq_singleton_or_nontrivial : s.Nonempty → (∃ a, s = {a}) ∨ s.Nontrivial 
Arguments: {α : Type u_1} {s : Finset α}
Goal: s.Nonempty → (∃ a, s = {a}) ∨ s.Nontrivial
-- Finset.default_singleton
@[simp]
lemma default_singleton (i : α) : ((default : ({i} : Finset α)) : α) = i 
Arguments: {α : Type u_1} (i : α)
Goal: ↑default = i
-- Finset.mem_cons
@[simp]
theorem mem_cons {h} : b ∈ s.cons a h ↔ b = a ∨ b ∈ s 
Arguments: {α : Type u_1} {s : Finset α} {a b : α} {h : a ∉ s}
Goal: b ∈ Finset.cons a s h ↔ b = a ∨ b ∈ s
-- Finset.mem_cons_of_mem
theorem mem_cons_of_mem {a b : α} {s : Finset α} {hb : b ∉ s} (ha : a ∈ s) : a ∈ cons b s hb 
Arguments: {α : Type u_1} {a b : α} {s : Finset α} {hb : b ∉ s} (ha : a ∈ s)
Goal: a ∈ Finset.cons b s hb
-- Finset.mem_cons_self
theorem mem_cons_self (a : α) (s : Finset α) {h} : a ∈ cons a s h 
Arguments: {α : Type u_1} (a : α) (s : Finset α) {h : a ∉ s}
Goal: a ∈ Finset.cons a s h
-- Finset.cons_val
@[simp]
theorem cons_val (h : a ∉ s) : (cons a s h).1 = a ::ₘ s.1 
Arguments: {α : Type u_1} {s : Finset α} {a : α} (h : a ∉ s)
Goal: (Finset.cons a s h).val = a ::ₘ s.val
-- Finset.forall_mem_cons
theorem forall_mem_cons (h : a ∉ s) (p : α → Prop) :
    (∀ x, x ∈ cons a s h → p x) ↔ p a ∧ ∀ x, x ∈ s → p x 
Arguments: {α : Type u_1} {s : Finset α} {a : α} (h : a ∉ s) (p : α → Prop)
Goal: (∀ x ∈ Finset.cons a s h, p x) ↔ p a ∧ ∀ x ∈ s, p x
-- Finset.forall_of_forall_cons
theorem forall_of_forall_cons {p : α → Prop} {h : a ∉ s} (H : ∀ x, x ∈ cons a s h → p x) (x)
    (h : x ∈ s) : p x 
Arguments: {α : Type u_1} {s : Finset α} {a : α} {p : α → Prop} {h : a ∉ s} (H : ∀ x ∈ Finset.cons a s h, p x) (x : α)
Goal: x ∈ s → p x
-- Finset.mk_cons
@[simp]
theorem mk_cons {s : Multiset α} (h : (a ::ₘ s).Nodup) :
    (⟨a ::ₘ s, h⟩ : Finset α) = cons a ⟨s, (nodup_cons.1 h).2⟩ (nodup_cons.1 h).1 
Arguments: {α : Type u_1} {a : α} {s : Multiset α} (h : (a ::ₘ s).Nodup)
Goal: { val := a ::ₘ s, nodup := h } = Finset.cons a { val := s, nodup := ⋯ } ⋯
-- Finset.cons_empty
@[simp]
theorem cons_empty (a : α) : cons a ∅ (not_mem_empty _) = {a} 
Arguments: {α : Type u_1} (a : α)
Goal: Finset.cons a ∅ ⋯ = {a}
-- Finset.nonempty_cons
@[simp, aesop safe apply (rule_sets := [finsetNonempty])]
theorem nonempty_cons (h : a ∉ s) : (cons a s h).Nonempty 
Arguments: {α : Type u_1} {s : Finset α} {a : α} (h : a ∉ s)
Goal: (Finset.cons a s h).Nonempty
-- Finset.nonempty_mk
@[simp]
theorem nonempty_mk {m : Multiset α} {hm} : (⟨m, hm⟩ : Finset α).Nonempty ↔ m ≠ 0 
Arguments: {α : Type u_1} {m : Multiset α} {hm : m.Nodup}
Goal: { val := m, nodup := hm }.Nonempty ↔ m ≠ 0
-- Finset.coe_cons
@[simp]
theorem coe_cons {a s h} : (@cons α a s h : Set α) = insert a (s : Set α) 
Arguments: {α : Type u_1} {a : α} {s : Finset α} {h : a ∉ s}
Goal: ↑(Finset.cons a s h) = insert a ↑s
-- Finset.subset_cons
theorem subset_cons (h : a ∉ s) : s ⊆ s.cons a h 
Arguments: {α : Type u_1} {s : Finset α} {a : α} (h : a ∉ s)
Goal: s ⊆ Finset.cons a s h
-- Finset.ssubset_cons
theorem ssubset_cons (h : a ∉ s) : s ⊂ s.cons a h 
Arguments: {α : Type u_1} {s : Finset α} {a : α} (h : a ∉ s)
Goal: s ⊂ Finset.cons a s h
-- Finset.cons_subset
theorem cons_subset {h : a ∉ s} : s.cons a h ⊆ t ↔ a ∈ t ∧ s ⊆ t 
Arguments: {α : Type u_1} {s t : Finset α} {a : α} {h : a ∉ s}
Goal: Finset.cons a s h ⊆ t ↔ a ∈ t ∧ s ⊆ t
-- Finset.cons_subset_cons
@[simp]
theorem cons_subset_cons {hs ht} : s.cons a hs ⊆ t.cons a ht ↔ s ⊆ t 
Arguments: {α : Type u_1} {s t : Finset α} {a : α} {hs : a ∉ s} {ht : a ∉ t}
Goal: Finset.cons a s hs ⊆ Finset.cons a t ht ↔ s ⊆ t
-- Finset.ssubset_iff_exists_cons_subset
theorem ssubset_iff_exists_cons_subset : s ⊂ t ↔ ∃ (a : _) (h : a ∉ s), s.cons a h ⊆ t 
Arguments: {α : Type u_1} {s t : Finset α}
Goal: s ⊂ t ↔ ∃ a, ∃ (h : a ∉ s), Finset.cons a s h ⊆ t
-- Finset.disjoint_left
theorem disjoint_left : Disjoint s t ↔ ∀ ⦃a⦄, a ∈ s → a ∉ t 
Arguments: {α : Type u_1} {s t : Finset α}
Goal: Disjoint s t ↔ ∀ ⦃a : α⦄, a ∈ s → a ∉ t
-- Finset.disjoint_right
theorem disjoint_right : Disjoint s t ↔ ∀ ⦃a⦄, a ∈ t → a ∉ s 
Arguments: {α : Type u_1} {s t : Finset α}
Goal: Disjoint s t ↔ ∀ ⦃a : α⦄, a ∈ t → a ∉ s
-- Finset.disjoint_iff_ne
theorem disjoint_iff_ne : Disjoint s t ↔ ∀ a ∈ s, ∀ b ∈ t, a ≠ b 
Arguments: {α : Type u_1} {s t : Finset α}
Goal: Disjoint s t ↔ ∀ a ∈ s, ∀ b ∈ t, a ≠ b
-- Finset.disjoint_val
@[simp]
theorem disjoint_val : s.1.Disjoint t.1 ↔ Disjoint s t 
Arguments: {α : Type u_1} {s t : Finset α}
Goal: s.val.Disjoint t.val ↔ Disjoint s t
-- Disjoint.forall_ne_finset
theorem _root_.Disjoint.forall_ne_finset (h : Disjoint s t) (ha : a ∈ s) (hb : b ∈ t) : a ≠ b 
Arguments: {α : Type u_1} {s t : Finset α} {a b : α} (h : Disjoint s t) (ha : a ∈ s) (hb : b ∈ t)
Goal: a ≠ b
-- Finset.not_disjoint_iff
theorem not_disjoint_iff : ¬Disjoint s t ↔ ∃ a, a ∈ s ∧ a ∈ t 
Arguments: {α : Type u_1} {s t : Finset α}
Goal: ¬Disjoint s t ↔ ∃ a ∈ s, a ∈ t
-- Finset.disjoint_of_subset_left
theorem disjoint_of_subset_left (h : s ⊆ u) (d : Disjoint u t) : Disjoint s t 
Arguments: {α : Type u_1} {s t u : Finset α} (h : s ⊆ u) (d : Disjoint u t)
Goal: Disjoint s t
-- Finset.disjoint_of_subset_right
theorem disjoint_of_subset_right (h : t ⊆ u) (d : Disjoint s u) : Disjoint s t 
Arguments: {α : Type u_1} {s t u : Finset α} (h : t ⊆ u) (d : Disjoint s u)
Goal: Disjoint s t
-- Finset.disjoint_empty_left
@[simp]
theorem disjoint_empty_left (s : Finset α) : Disjoint ∅ s 
Arguments: {α : Type u_1} (s : Finset α)
Goal: Disjoint ∅ s
-- Finset.disjoint_empty_right
@[simp]
theorem disjoint_empty_right (s : Finset α) : Disjoint s ∅ 
Arguments: {α : Type u_1} (s : Finset α)
Goal: Disjoint s ∅
-- Finset.disjoint_singleton_left
@[simp]
theorem disjoint_singleton_left : Disjoint (singleton a) s ↔ a ∉ s 
Arguments: {α : Type u_1} {s : Finset α} {a : α}
Goal: Disjoint {a} s ↔ a ∉ s
-- Finset.disjoint_singleton_right
@[simp]
theorem disjoint_singleton_right : Disjoint s (singleton a) ↔ a ∉ s 
Arguments: {α : Type u_1} {s : Finset α} {a : α}
Goal: Disjoint s {a} ↔ a ∉ s
-- Finset.disjoint_singleton
theorem disjoint_singleton : Disjoint ({a} : Finset α) {b} ↔ a ≠ b 
Arguments: {α : Type u_1} {a b : α}
Goal: Disjoint {a} {b} ↔ a ≠ b
-- Finset.disjoint_self_iff_empty
theorem disjoint_self_iff_empty (s : Finset α) : Disjoint s s ↔ s = ∅ 
Arguments: {α : Type u_1} (s : Finset α)
Goal: Disjoint s s ↔ s = ∅
-- Finset.disjoint_coe
@[simp, norm_cast]
theorem disjoint_coe : Disjoint (s : Set α) t ↔ Disjoint s t 
Arguments: {α : Type u_1} {s t : Finset α}
Goal: Disjoint ↑s ↑t ↔ Disjoint s t
-- Finset.pairwiseDisjoint_coe
@[simp, norm_cast]
theorem pairwiseDisjoint_coe {ι : Type*} {s : Set ι} {f : ι → Finset α} :
    s.PairwiseDisjoint (fun i => f i : ι → Set α) ↔ s.PairwiseDisjoint f 
Arguments: {α : Type u_1} {ι : Type u_4} {s : Set ι} {f : ι → Finset α}
Goal: (s.PairwiseDisjoint fun i => ↑(f i)) ↔ s.PairwiseDisjoint f
-- Finset.mem_disjUnion
@[simp]
theorem mem_disjUnion {α s t h a} : a ∈ @disjUnion α s t h ↔ a ∈ s ∨ a ∈ t 
Arguments: {α : Type u_4} {s t : Finset α} {h : Disjoint s t} {a : α}
Goal: a ∈ s.disjUnion t h ↔ a ∈ s ∨ a ∈ t
-- Finset.coe_disjUnion
@[simp, norm_cast]
theorem coe_disjUnion {s t : Finset α} (h : Disjoint s t) :
    (disjUnion s t h : Set α) = (s : Set α) ∪ t 
Arguments: {α : Type u_1} {s t : Finset α} (h : Disjoint s t)
Goal: ↑(s.disjUnion t h) = ↑s ∪ ↑t
-- Finset.disjUnion_comm
theorem disjUnion_comm (s t : Finset α) (h : Disjoint s t) :
    disjUnion s t h = disjUnion t s h.symm 
Arguments: {α : Type u_1} (s t : Finset α) (h : Disjoint s t)
Goal: s.disjUnion t h = t.disjUnion s ⋯
-- Finset.empty_disjUnion
@[simp]
theorem empty_disjUnion (t : Finset α) (h : Disjoint ∅ t := disjoint_bot_left) :
    disjUnion ∅ t h = t 
Arguments: {α : Type u_1} (t : Finset α) (h : Disjoint ∅ t := ⋯)
Goal: ∅.disjUnion t h = t
-- Finset.disjUnion_empty
@[simp]
theorem disjUnion_empty (s : Finset α) (h : Disjoint s ∅ := disjoint_bot_right) :
    disjUnion s ∅ h = s 
Arguments: {α : Type u_1} (s : Finset α) (h : Disjoint s ∅ := ⋯)
Goal: s.disjUnion ∅ h = s
-- Finset.singleton_disjUnion
theorem singleton_disjUnion (a : α) (t : Finset α) (h : Disjoint {a} t) :
    disjUnion {a} t h = cons a t (disjoint_singleton_left.mp h) 
Arguments: {α : Type u_1} (a : α) (t : Finset α) (h : Disjoint {a} t)
Goal: {a}.disjUnion t h = Finset.cons a t ⋯
-- Finset.disjUnion_singleton
theorem disjUnion_singleton (s : Finset α) (a : α) (h : Disjoint s {a}) :
    disjUnion s {a} h = cons a s (disjoint_singleton_right.mp h) 
Arguments: {α : Type u_1} (s : Finset α) (a : α) (h : Disjoint s {a})
Goal: s.disjUnion {a} h = Finset.cons a s ⋯
-- Finset.insert_def
theorem insert_def (a : α) (s : Finset α) : insert a s = ⟨_, s.2.ndinsert a⟩ 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α)
Goal: insert a s = { val := Multiset.ndinsert a s.val, nodup := ⋯ }
-- Finset.insert_val
@[simp]
theorem insert_val (a : α) (s : Finset α) : (insert a s).1 = ndinsert a s.1 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α)
Goal: (insert a s).val = Multiset.ndinsert a s.val
-- Finset.insert_val'
theorem insert_val' (a : α) (s : Finset α) : (insert a s).1 = dedup (a ::ₘ s.1) 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α)
Goal: (insert a s).val = (a ::ₘ s.val).dedup
-- Finset.insert_val_of_not_mem
theorem insert_val_of_not_mem {a : α} {s : Finset α} (h : a ∉ s) : (insert a s).1 = a ::ₘ s.1 
Arguments: {α : Type u_1} [DecidableEq α] {a : α} {s : Finset α} (h : a ∉ s)
Goal: (insert a s).val = a ::ₘ s.val
-- Finset.mem_insert
@[simp]
theorem mem_insert : a ∈ insert b s ↔ a = b ∨ a ∈ s 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a b : α}
Goal: a ∈ insert b s ↔ a = b ∨ a ∈ s
-- Finset.mem_insert_self
theorem mem_insert_self (a : α) (s : Finset α) : a ∈ insert a s 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α)
Goal: a ∈ insert a s
-- Finset.mem_insert_of_mem
theorem mem_insert_of_mem (h : a ∈ s) : a ∈ insert b s 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a b : α} (h : a ∈ s)
Goal: a ∈ insert b s
-- Finset.mem_of_mem_insert_of_ne
theorem mem_of_mem_insert_of_ne (h : b ∈ insert a s) : b ≠ a → b ∈ s 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a b : α} (h : b ∈ insert a s)
Goal: b ≠ a → b ∈ s
-- Finset.eq_of_not_mem_of_mem_insert
theorem eq_of_not_mem_of_mem_insert (ha : b ∈ insert a s) (hb : b ∉ s) : b = a 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a b : α} (ha : b ∈ insert a s) (hb : b ∉ s)
Goal: b = a
-- Finset.insert_empty
@[simp] lemma insert_empty : insert a (∅ : Finset α) = {a} 
Arguments: {α : Type u_1} [DecidableEq α] {a : α}
Goal: insert a ∅ = {a}
-- Finset.cons_eq_insert
@[simp]
theorem cons_eq_insert (a s h) : @cons α a s h = insert a s 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α) (h : a ∉ s)
Goal: Finset.cons a s h = insert a s
-- Finset.coe_insert
@[simp, norm_cast]
theorem coe_insert (a : α) (s : Finset α) : ↑(insert a s) = (insert a s : Set α) 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α)
Goal: ↑(insert a s) = insert a ↑s
-- Finset.mem_insert_coe
theorem mem_insert_coe {s : Finset α} {x y : α} : x ∈ insert y s ↔ x ∈ insert y (s : Set α) 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {x y : α}
Goal: x ∈ insert y s ↔ x ∈ insert y ↑s
-- Finset.insert_eq_of_mem
@[simp]
theorem insert_eq_of_mem (h : a ∈ s) : insert a s = s 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a : α} (h : a ∈ s)
Goal: insert a s = s
-- Finset.insert_eq_self
@[simp]
theorem insert_eq_self : insert a s = s ↔ a ∈ s 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a : α}
Goal: insert a s = s ↔ a ∈ s
-- Finset.insert_ne_self
theorem insert_ne_self : insert a s ≠ s ↔ a ∉ s 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a : α}
Goal: insert a s ≠ s ↔ a ∉ s
-- Finset.pair_eq_singleton
theorem pair_eq_singleton (a : α) : ({a, a} : Finset α) = {a} 
Arguments: {α : Type u_1} [DecidableEq α] (a : α)
Goal: {a, a} = {a}
-- Finset.Insert.comm
theorem Insert.comm (a b : α) (s : Finset α) : insert a (insert b s) = insert b (insert a s) 
Arguments: {α : Type u_1} [DecidableEq α] (a b : α) (s : Finset α)
Goal: insert a (insert b s) = insert b (insert a s)
-- Finset.coe_pair
@[norm_cast]
theorem coe_pair {a b : α} : (({a, b} : Finset α) : Set α) = {a, b} 
Arguments: {α : Type u_1} [DecidableEq α] {a b : α}
Goal: ↑{a, b} = {a, b}
-- Finset.coe_eq_pair
@[simp, norm_cast]
theorem coe_eq_pair {s : Finset α} {a b : α} : (s : Set α) = {a, b} ↔ s = {a, b} 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a b : α}
Goal: ↑s = {a, b} ↔ s = {a, b}
-- Finset.pair_comm
theorem pair_comm (a b : α) : ({a, b} : Finset α) = {b, a} 
Arguments: {α : Type u_1} [DecidableEq α] (a b : α)
Goal: {a, b} = {b, a}
-- Finset.insert_idem
theorem insert_idem (a : α) (s : Finset α) : insert a (insert a s) = insert a s 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α)
Goal: insert a (insert a s) = insert a s
-- Finset.insert_nonempty
@[simp, aesop safe apply (rule_sets := [finsetNonempty])]
theorem insert_nonempty (a : α) (s : Finset α) : (insert a s).Nonempty 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α)
Goal: (insert a s).Nonempty
-- Finset.insert_ne_empty
@[simp]
theorem insert_ne_empty (a : α) (s : Finset α) : insert a s ≠ ∅ 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α)
Goal: insert a s ≠ ∅
-- Finset.ne_insert_of_not_mem
theorem ne_insert_of_not_mem (s t : Finset α) {a : α} (h : a ∉ s) : s ≠ insert a t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α) {a : α} (h : a ∉ s)
Goal: s ≠ insert a t
-- Finset.insert_subset_iff
theorem insert_subset_iff : insert a s ⊆ t ↔ a ∈ t ∧ s ⊆ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α}
Goal: insert a s ⊆ t ↔ a ∈ t ∧ s ⊆ t
-- Finset.insert_subset
theorem insert_subset (ha : a ∈ t) (hs : s ⊆ t) : insert a s ⊆ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α} (ha : a ∈ t) (hs : s ⊆ t)
Goal: insert a s ⊆ t
-- Finset.subset_insert
@[simp] theorem subset_insert (a : α) (s : Finset α) : s ⊆ insert a s 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) (s : Finset α)
Goal: s ⊆ insert a s
-- Finset.insert_subset_insert
@[gcongr]
theorem insert_subset_insert (a : α) {s t : Finset α} (h : s ⊆ t) : insert a s ⊆ insert a t 
Arguments: {α : Type u_1} [DecidableEq α] (a : α) {s t : Finset α} (h : s ⊆ t)
Goal: insert a s ⊆ insert a t
-- Finset.insert_subset_insert_iff
@[simp] lemma insert_subset_insert_iff (ha : a ∉ s) : insert a s ⊆ insert a t ↔ s ⊆ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α} (ha : a ∉ s)
Goal: insert a s ⊆ insert a t ↔ s ⊆ t
-- Finset.insert_inj
theorem insert_inj (ha : a ∉ s) : insert a s = insert b s ↔ a = b 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a b : α} (ha : a ∉ s)
Goal: insert a s = insert b s ↔ a = b
-- Finset.insert_inj_on
theorem insert_inj_on (s : Finset α) : Set.InjOn (fun a => insert a s) sᶜ 
Arguments: {α : Type u_1} [DecidableEq α] (s : Finset α)
Goal: Set.InjOn (fun a => insert a s) (↑s)ᶜ
-- Finset.ssubset_iff
theorem ssubset_iff : s ⊂ t ↔ ∃ a ∉ s, insert a s ⊆ t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: s ⊂ t ↔ ∃ a ∉ s, insert a s ⊆ t
-- Finset.ssubset_insert
theorem ssubset_insert (h : a ∉ s) : s ⊂ insert a s 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a : α} (h : a ∉ s)
Goal: s ⊂ insert a s
-- Finset.cons_induction
@[elab_as_elim]
theorem cons_induction {α : Type*} {p : Finset α → Prop} (empty : p ∅)
    (cons : ∀ (a : α) (s : Finset α) (h : a ∉ s), p s → p (cons a s h)) : ∀ s, p s
  
Arguments: {α : Type u_4} {p : Finset α → Prop} (empty : p ∅) (cons : ∀ (a : α) (s : Finset α) (h : a ∉ s), p s → p (Finset.cons a s h)) (s : Finset α)
Goal: p s
-- Finset.cons_induction_on
@[elab_as_elim]
theorem cons_induction_on {α : Type*} {p : Finset α → Prop} (s : Finset α) (h₁ : p ∅)
    (h₂ : ∀ ⦃a : α⦄ {s : Finset α} (h : a ∉ s), p s → p (cons a s h)) : p s 
Arguments: {α : Type u_4} {p : Finset α → Prop} (s : Finset α) (h₁ : p ∅) (h₂ : ∀ ⦃a : α⦄ {s : Finset α} (h : a ∉ s), p s → p (Finset.cons a s h))
Goal: p s
-- Finset.induction
@[elab_as_elim]
protected theorem induction {α : Type*} {p : Finset α → Prop} [DecidableEq α] (empty : p ∅)
    (insert : ∀ ⦃a : α⦄ {s : Finset α}, a ∉ s → p s → p (insert a s)) : ∀ s, p s 
Arguments: {α : Type u_4} {p : Finset α → Prop} [DecidableEq α] (empty : p ∅) (insert : ∀ ⦃a : α⦄ {s : Finset α}, a ∉ s → p s → p (insert a s)) (s : Finset α)
Goal: p s
-- Finset.induction_on
@[elab_as_elim]
protected theorem induction_on {α : Type*} {p : Finset α → Prop} [DecidableEq α] (s : Finset α)
    (empty : p ∅) (insert : ∀ ⦃a : α⦄ {s : Finset α}, a ∉ s → p s → p (insert a s)) : p s 
Arguments: {α : Type u_4} {p : Finset α → Prop} [DecidableEq α] (s : Finset α) (empty : p ∅) (insert : ∀ ⦃a : α⦄ {s : Finset α}, a ∉ s → p s → p (insert a s))
Goal: p s
-- Finset.induction_on'
@[elab_as_elim]
theorem induction_on' {α : Type*} {p : Finset α → Prop} [DecidableEq α] (S : Finset α) (h₁ : p ∅)
    (h₂ : ∀ {a s}, a ∈ S → s ⊆ S → a ∉ s → p s → p (insert a s)) : p S 
Arguments: {α : Type u_4} {p : Finset α → Prop} [DecidableEq α] (S : Finset α) (h₁ : p ∅) (h₂ : ∀ {a : α} {s : Finset α}, a ∈ S → s ⊆ S → a ∉ s → p s → p (insert a s))
Goal: p S
-- Finset.Nonempty.cons_induction
@[elab_as_elim]
theorem Nonempty.cons_induction {α : Type*} {p : ∀ s : Finset α, s.Nonempty → Prop}
    (singleton : ∀ a, p {a} (singleton_nonempty _))
    (cons : ∀ a s (h : a ∉ s) (hs), p s hs → p (Finset.cons a s h) (nonempty_cons h))
    {s : Finset α} (hs : s.Nonempty) : p s hs 
Arguments: {α : Type u_4} {p : (s : Finset α) → s.Nonempty → Prop} (singleton : ∀ (a : α), p {a} ⋯) (cons : ∀ (a : α) (s : Finset α) (h : a ∉ s) (hs : s.Nonempty), p s hs → p (Finset.cons a s h) ⋯) {s : Finset α} (hs : s.Nonempty)
Goal: p s hs
-- Finset.Nonempty.exists_cons_eq
lemma Nonempty.exists_cons_eq {α} {s : Finset α} (hs : s.Nonempty) : ∃ t a ha, cons a t ha = s 
Arguments: {α : Type u_4} {s : Finset α} (hs : s.Nonempty)
Goal: ∃ t a, ∃ (ha : a ∉ t), Finset.cons a t ha = s
-- Finset.disjoint_insert_left
@[simp]
theorem disjoint_insert_left : Disjoint (insert a s) t ↔ a ∉ t ∧ Disjoint s t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α}
Goal: Disjoint (insert a s) t ↔ a ∉ t ∧ Disjoint s t
-- Finset.disjoint_insert_right
@[simp]
theorem disjoint_insert_right : Disjoint s (insert a t) ↔ a ∉ s ∧ Disjoint s t 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {a : α}
Goal: Disjoint s (insert a t) ↔ a ∉ s ∧ Disjoint s t
-- Finset.sup_eq_union
@[simp]
theorem sup_eq_union : (Sup.sup : Finset α → Finset α → Finset α) = Union.union 
Arguments: {α : Type u_1} [DecidableEq α]
Goal: Sup.sup = Union.union
-- Finset.inf_eq_inter
@[simp]
theorem inf_eq_inter : (Inf.inf : Finset α → Finset α → Finset α) = Inter.inter 
Arguments: {α : Type u_1} [DecidableEq α]
Goal: Inf.inf = Inter.inter
-- Finset.disjoint_iff_inter_eq_empty
theorem disjoint_iff_inter_eq_empty : Disjoint s t ↔ s ∩ t = ∅ 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α}
Goal: Disjoint s t ↔ s ∩ t = ∅
-- Finset.union_val_nd
theorem union_val_nd (s t : Finset α) : (s ∪ t).1 = ndunion s.1 t.1 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: (s ∪ t).val = s.val.ndunion t.val
-- Finset.union_val
@[simp]
theorem union_val (s t : Finset α) : (s ∪ t).1 = s.1 ∪ t.1 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α)
Goal: (s ∪ t).val = s.val ∪ t.val
-- Finset.mem_union
@[simp]
theorem mem_union : 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.disjUnion_eq_union
@[simp]
theorem disjUnion_eq_union (s t h) : @disjUnion α s t h = s ∪ t 
Arguments: {α : Type u_1} [DecidableEq α] (s t : Finset α) (h : Disjoint s t)
Goal: s.disjUnion t h = s ∪ t
-- Finset.mem_union_left
theorem mem_union_left (t : Finset α) (h : a ∈ s) : a ∈ s ∪ t 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {a : α} (t : Finset α) (h : a ∈ s)
Goal: a ∈ s ∪ t
-- Finset.mem_union_right
theorem mem_union_right (s : Finset α) (h : a ∈ t) : a ∈ s ∪ t 
Arguments: {α : Type u_1} [DecidableEq α] {t : Finset α} {a : α} (s : Finset α) (h : a ∈ t)
Goal: a ∈ s ∪ t
-- Finset.forall_mem_union
theorem forall_mem_union {p : α → Prop} : (∀ a ∈ s ∪ t, p a) ↔ (∀ a ∈ s, p a) ∧ ∀ a ∈ t, p a 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {p : α → Prop}
Goal: (∀ a ∈ s ∪ t, p a) ↔ (∀ a ∈ s, p a) ∧ ∀ a ∈ t, p a
-- Finset.not_mem_union
theorem not_mem_union : 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.coe_union
@[simp, norm_cast]
theorem coe_union (s₁ s₂ : Finset α) : ↑(s₁ ∪ s₂) = (s₁ ∪ s₂ : Set α) 
Arguments: {α : Type u_1} [DecidableEq α] (s₁ s₂ : Finset α)
Goal: ↑(s₁ ∪ s₂) = ↑s₁ ∪ ↑s₂
-- Finset.union_subset
theorem union_subset (hs : s ⊆ u) : t ⊆ u → s ∪ t ⊆ u 
Arguments: {α : Type u_1} [DecidableEq α] {s t u : Finset α} (hs : s ⊆ u)
Goal: t ⊆ u → s ∪ t ⊆ u
-- Finset.subset_union_left
theorem subset_union_left {s₁ s₂ : Finset α} : s₁ ⊆ s₁ ∪ s₂ 
Arguments: {α : Type u_1} [DecidableEq α] {s₁ s₂ : Finset α}
Goal: s₁ ⊆ s₁ ∪ s₂
-- Finset.subset_union_right
theorem subset_union_right {s₁ s₂ : Finset α} : s₂ ⊆ s₁ ∪ s₂ 
Arguments: {α : Type u_1} [DecidableEq α] {s₁ s₂ : Finset α}
Goal: s₂ ⊆ s₁ ∪ s₂
-- Finset.union_subset_union
@[gcongr]
theorem union_subset_union (hsu : s ⊆ u) (htv : t ⊆ v) : s ∪ t ⊆ u ∪ v 
Arguments: {α : Type u_1} [DecidableEq α] {s t u v : Finset α} (hsu : s ⊆ u) (htv : t ⊆ v)
Goal: s ∪ t ⊆ u ∪ v
-- Finset.union_subset_union_left
@[gcongr]
theorem union_subset_union_left (h : s₁ ⊆ s₂) : s₁ ∪ t ⊆ s₂ ∪ t 
Arguments: {α : Type u_1} [DecidableEq α] {s₁ s₂ t : Finset α} (h : s₁ ⊆ s₂)
Goal: s₁ ∪ t ⊆ s₂ ∪ t
-- Finset.union_subset_union_right
@[gcongr]
theorem union_subset_union_right (h : t₁ ⊆ t₂) : s ∪ t₁ ⊆ s ∪ t₂ 
Arguments: {α : Type u_1} [DecidableEq α] {s t₁ t₂ : Finset α} (h : t₁ ⊆ t₂)
Goal: s ∪ t₁ ⊆ s ∪ t₂
-- Finset.union_comm
theorem union_comm (s₁ s₂ : Finset α) : s₁ ∪ s₂ = s₂ ∪ s₁ 
Arguments: {α : Type u_1} [DecidableEq α] (s₁ s₂ : Finset α)
Goal: s₁ ∪ s₂ = s₂ ∪ s₁
-- Finset.union_assoc
@[simp]
theorem union_assoc (s₁ s₂ s₃ : Finset α) : s₁ ∪ s₂ ∪ s₃ = s₁ ∪ (s₂ ∪ s₃) 
Arguments: {α : Type u_1} [DecidableEq α] (s₁ s₂ s₃ : Finset α)
Goal: s₁ ∪ s₂ ∪ s₃ = s₁ ∪ (s₂ ∪ s₃)
-- Finset.union_idempotent
@[simp]
theorem union_idempotent (s : Finset α) : s ∪ s = s 
Arguments: {α : Type u_1} [DecidableEq α] (s : Finset α)
Goal: s ∪ s = s
-- Finset.union_subset_left
theorem union_subset_left (h : s ∪ t ⊆ u) : s ⊆ u 
Arguments: {α : Type u_1} [DecidableEq α] {s t u : Finset α} (h : s ∪ t ⊆ u)
Goal: s ⊆ u
-- Finset.union_subset_right
theorem union_subset_right {s t u : Finset α} (h : s ∪ t ⊆ u) : t ⊆ u 
Arguments: {α : Type u_1} [DecidableEq α] {s t u : Finset α} (h : s ∪ t ⊆ u)
Goal: t ⊆ u
-- Finset.union_left_comm
theorem union_left_comm (s t u : Finset α) : s ∪ (t ∪ u) = t ∪ (s ∪ u) 
Arguments: {α : Type u_1} [DecidableEq α] (s t u : Finset α)
Goal: s ∪ (t ∪ u) = t ∪ (s ∪ u)