Module docstring
{"# Erasing an element from a finite set
Main declarations
Finset.erase: For anya : α,erase s areturnsswith the elementaremoved.
Tags
finite sets, finset
","### erase "}
{"# Erasing an element from a finite set
Finset.erase: For any a : α, erase s a returns s with the element a removed.finite sets, finset
","### erase "}
Finset.erase
definition
(s : Finset α) (a : α) : Finset α
/-- `erase s a` is the set `s - {a}`, that is, the elements of `s` which are
not equal to `a`. -/
def erase (s : Finset α) (a : α) : Finset α :=
⟨_, s.2.erase a⟩
Finset.erase_val
theorem
(s : Finset α) (a : α) : (erase s a).1 = s.1.erase a
Finset.mem_erase
theorem
{a b : α} {s : Finset α} : a ∈ erase s b ↔ a ≠ b ∧ a ∈ s
@[simp]
theorem mem_erase {a b : α} {s : Finset α} : a ∈ erase s ba ∈ erase s b ↔ a ≠ b ∧ a ∈ s :=
s.2.mem_erase_iff
Finset.not_mem_erase
theorem
(a : α) (s : Finset α) : a ∉ erase s a
theorem not_mem_erase (a : α) (s : Finset α) : a ∉ erase s a :=
s.2.not_mem_erase
Finset.ne_of_mem_erase
theorem
: b ∈ erase s a → b ≠ a
theorem ne_of_mem_erase : b ∈ erase s a → b ≠ a := fun h => (mem_erase.1 h).1
Finset.mem_of_mem_erase
theorem
: b ∈ erase s a → b ∈ s
theorem mem_of_mem_erase : b ∈ erase s a → b ∈ s :=
Multiset.mem_of_mem_erase
Finset.mem_erase_of_ne_of_mem
theorem
: a ≠ b → a ∈ s → a ∈ erase s b
theorem mem_erase_of_ne_of_mem : a ≠ b → a ∈ s → a ∈ erase s b := by
simp only [mem_erase]; exact And.intro
Finset.erase_eq_of_not_mem
theorem
{a : α} {s : Finset α} (h : a ∉ s) : erase s a = s
@[simp]
theorem erase_eq_of_not_mem {a : α} {s : Finset α} (h : a ∉ s) : erase s a = s :=
eq_of_veq <| erase_of_not_mem h
Finset.erase_eq_self
theorem
: s.erase a = s ↔ a ∉ s
@[simp]
theorem erase_eq_self : s.erase a = s ↔ a ∉ s :=
⟨fun h => h ▸ not_mem_erase _ _, erase_eq_of_not_mem⟩
Finset.erase_ne_self
theorem
: s.erase a ≠ s ↔ a ∈ s
theorem erase_ne_self : s.erase a ≠ ss.erase a ≠ s ↔ a ∈ s :=
erase_eq_self.not_left
Finset.erase_subset_erase
theorem
(a : α) {s t : Finset α} (h : s ⊆ t) : erase s a ⊆ erase t a
theorem erase_subset_erase (a : α) {s t : Finset α} (h : s ⊆ t) : eraseerase s a ⊆ erase t a :=
val_le_iff.1 <| erase_le_erase _ <| val_le_iff.2 h
Finset.erase_subset
theorem
(a : α) (s : Finset α) : erase s a ⊆ s
theorem erase_subset (a : α) (s : Finset α) : eraseerase s a ⊆ s :=
Multiset.erase_subset _ _
Finset.subset_erase
theorem
{a : α} {s t : Finset α} : s ⊆ t.erase a ↔ s ⊆ t ∧ a ∉ s
Finset.coe_erase
theorem
(a : α) (s : Finset α) : ↑(erase s a) = (s \ { a } : Set α)
Finset.erase_idem
theorem
{a : α} {s : Finset α} : erase (erase s a) a = erase s a
theorem erase_idem {a : α} {s : Finset α} : erase (erase s a) a = erase s a := by simp
Finset.erase_right_comm
theorem
{a b : α} {s : Finset α} : erase (erase s a) b = erase (erase s b) a
theorem erase_right_comm {a b : α} {s : Finset α} : erase (erase s a) b = erase (erase s b) a := by
ext x
simp only [mem_erase, ← and_assoc]
rw [@and_comm (x ≠ a)]
Finset.erase_inj
theorem
{x y : α} (s : Finset α) (hx : x ∈ s) : s.erase x = s.erase y ↔ x = y
theorem erase_inj {x y : α} (s : Finset α) (hx : x ∈ s) : s.erase x = s.erase y ↔ x = y := by
refine ⟨fun h => eq_of_mem_of_not_mem_erase hx ?_, congr_arg _⟩
rw [← h]
simp
Finset.erase_injOn
theorem
(s : Finset α) : Set.InjOn s.erase s