Difference of finite sets #
Main declarations #
Finset.instSDiff: Defines the set differences \ tfor finsetssandt.Finset.instGeneralizedBooleanAlgebra: Finsets almost have a Boolean algebra structure
Tags #
finite sets, finset
sdiff #
@[implicit_reducible]
s \ t is the set consisting of the elements of s that are not in t.
@[simp]
@[simp]
theorem
Finset.mem_sdiff
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
{a : α}
:
a ∈ s \ t ↔ a ∈ s ∧ a ∉ t
@[simp]
theorem
Finset.inter_sdiff_self
{α : Type u_1}
[DecidableEq α]
(s₁ s₂ : Finset α)
:
s₁ ∩ (s₂ \ s₁) = ∅
@[implicit_reducible]
theorem
Finset.notMem_sdiff_of_mem_right
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
{a : α}
(h : a ∈ t)
:
a ∉ s \ t
theorem
Finset.notMem_sdiff_of_notMem_left
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
{a : α}
(h : a ∉ s)
:
a ∉ s \ t
theorem
Finset.union_sdiff_of_subset
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
(h : s ⊆ t)
:
s ∪ t \ s = t
theorem
Finset.sdiff_union_of_subset
{α : Type u_1}
[DecidableEq α]
{s₁ s₂ : Finset α}
(h : s₁ ⊆ s₂)
:
s₂ \ s₁ ∪ s₁ = s₂
See also Finset.sdiff_inter_right_comm.
See also Finset.inter_sdiff_assoc.
@[simp]
@[simp]
@[simp]
@[simp]
theorem
Finset.sdiff_subset_sdiff
{α : Type u_1}
[DecidableEq α]
{s t u v : Finset α}
(hst : s ⊆ t)
(hvu : v ⊆ u)
:
theorem
Finset.sdiff_subset_sdiff_iff_subset
{α : Type u_1}
[DecidableEq α]
{s t r : Finset α}
(hs : s ⊆ r)
(ht : t ⊆ r)
:
@[simp]
@[simp]
theorem
Finset.union_sdiff_self_eq_union
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
:
s ∪ t \ s = s ∪ t
@[simp]
theorem
Finset.sdiff_union_self_eq_union
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
:
s \ t ∪ t = s ∪ t
theorem
Finset.union_sdiff_cancel_left
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
(h : Disjoint s t)
:
(s ∪ t) \ s = t
theorem
Finset.union_sdiff_cancel_right
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
(h : Disjoint s t)
:
(s ∪ t) \ t = s
@[simp]
theorem
Finset.sdiff_eq_empty_iff_subset
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
:
s \ t = ∅ ↔ s ⊆ t
@[simp]
@[simp]
theorem
Finset.insert_sdiff_self_of_mem
{α : Type u_1}
[DecidableEq α]
{s : Finset α}
{a : α}
(ha : a ∈ s)
:
insert a (s \ {a}) = s
@[simp]
theorem
Finset.insert_sdiff_cancel
{α : Type u_1}
[DecidableEq α]
{s : Finset α}
{a : α}
(ha : a ∉ s)
:
insert a s \ s = {a}
@[simp]
theorem
Finset.insert_sdiff_insert'
{α : Type u_1}
[DecidableEq α]
{s : Finset α}
{a b : α}
(hab : a ≠ b)
(ha : a ∉ s)
:
insert a s \ insert b s = {a}
@[simp]
theorem
Finset.sdiff_ssubset
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
(h : t ⊆ s)
(ht : t.Nonempty)
:
s \ t ⊂ s
theorem
Finset.Nontrivial.sdiff_singleton_nonempty
{α : Type u_1}
[DecidableEq α]
{c : α}
{s : Finset α}
(hS : s.Nontrivial)
:
theorem
Finset.sdiff_eq_sdiff_iff_inter_eq_inter
{α : Type u_1}
[DecidableEq α]
{s t₁ t₂ : Finset α}
:
theorem
Finset.union_eq_sdiff_union_sdiff_union_inter
{α : Type u_1}
[DecidableEq α]
(s t : Finset α)
:
theorem
Finset.sdiff_eq_self_of_disjoint
{α : Type u_1}
[DecidableEq α]
{s t : Finset α}
(h : Disjoint s t)
:
s \ t = s