Deduplicating Multisets to make Finsets #
This file concerns Multiset.dedup and List.dedup as a way to create Finsets.
Tags #
finite sets, finset
@[simp]
dedup on list and multiset #
toFinset s removes duplicates from the multiset s to produce a finset.
Instances For
@[simp]
@[simp]
theorem
Multiset.mem_toFinset
{α : Type u_1}
[DecidableEq α]
{a : α}
{s : Multiset α}
:
a ∈ s.toFinset ↔ a ∈ s
@[simp]
@[simp]
@[simp]
instance
Multiset.isWellFounded_ssubset
{β : Type u_2}
:
IsWellFounded (Multiset β) fun (x1 x2 : Multiset β) => x1 ⊂ x2
@[simp]
toFinset l removes duplicates from the list l to produce a finset.
Instances For
@[simp]
@[simp]
@[simp]
theorem
List.mem_toFinset
{α : Type u_1}
[DecidableEq α]
{l : List α}
{a : α}
:
a ∈ l.toFinset ↔ a ∈ l
@[simp]
theorem
List.perm_of_nodup_nodup_toFinset_eq
{α : Type u_1}
[DecidableEq α]
{l l' : List α}
(hl : l.Nodup)
(hl' : l'.Nodup)
(h : l.toFinset = l'.toFinset)
:
l.Perm l'
@[simp]
Produce a list of the elements in the finite set using choice.
Instances For
@[simp]
@[simp]
@[simp]
theorem
Finset.exists_list_nodup_eq
{α : Type u_1}
[DecidableEq α]
(s : Finset α)
:
∃ (l : List α), l.Nodup ∧ l.toFinset = s
@[simp]