Skip to content
This repository has been archived by the owner on Jul 24, 2024. It is now read-only.

Commit

Permalink
feat(data/{multiset/dedup, finset/basic}): add some lemmas about `mul…
Browse files Browse the repository at this point in the history
…tiset.dedup` (#16230)
  • Loading branch information
FR-vdash-bot committed Nov 9, 2022
1 parent 55b3f82 commit 937a36e
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/data/finset/basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -2016,6 +2016,14 @@ finset.val_inj.symm.trans multiset.dedup_eq_zero
@[simp] lemma to_finset_subset (s t : multiset α) : s.to_finset ⊆ t.to_finset ↔ s ⊆ t :=
by simp only [finset.subset_iff, multiset.subset_iff, multiset.mem_to_finset]

@[simp] lemma to_finset_dedup (m : multiset α) :
m.dedup.to_finset = m.to_finset :=
by simp_rw [to_finset, dedup_idempotent]

@[simp] lemma to_finset_bind_dedup [decidable_eq β] (m : multiset α) (f : α → multiset β) :
(m.dedup.bind f).to_finset = (m.bind f).to_finset :=
by simp_rw [to_finset, dedup_bind_dedup]

end multiset

namespace finset
Expand Down
12 changes: 12 additions & 0 deletions src/data/multiset/dedup.lean
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,18 @@ theorem dedup_eq_self {s : multiset α} : dedup s = s ↔ nodup s :=

alias dedup_eq_self ↔ _ nodup.dedup

lemma count_dedup (m : multiset α) (a : α) :
m.dedup.count a = if a ∈ m then 1 else 0 :=
quot.induction_on m $ λ l, count_dedup _ _

@[simp] lemma dedup_idempotent {m : multiset α} :
m.dedup.dedup = m.dedup :=
quot.induction_on m $ λ l, @congr_arg _ _ _ _ coe dedup_idempotent

@[simp] lemma dedup_bind_dedup [decidable_eq β] (m : multiset α) (f : α → multiset β) :
(m.dedup.bind f).dedup = (m.bind f).dedup :=
by { ext x, simp_rw [count_dedup, mem_bind, mem_dedup], }

theorem dedup_eq_zero {s : multiset α} : dedup s = 0 ↔ s = 0 :=
⟨λ h, eq_zero_of_subset_zero $ h ▸ subset_dedup _,
λ h, h.symm ▸ dedup_zero⟩
Expand Down

0 comments on commit 937a36e

Please sign in to comment.