Equivalence between Multiset and ℕ-valued finitely supported functions #
This defines DFinsupp.toMultiset the equivalence between Π₀ a : α, ℕ and Multiset α, along
with Multiset.toDFinsupp the reverse equivalence.
@[implicit_reducible]
instance
DFinsupp.addZeroClass'
{α : Type u_1}
{β : Type u_2}
[AddZeroClass β]
:
AddZeroClass (Π₀ (x : α), β)
Non-dependent special case of DFinsupp.addZeroClass to help typeclass search.
A DFinsupp version of Finsupp.toMultiset.
Instances For
@[simp]
theorem
DFinsupp.toMultiset_single
{α : Type u_1}
[DecidableEq α]
(a : α)
(n : ℕ)
:
(toMultiset fun₀ | a => n) = Multiset.replicate n a
A DFinsupp version of Multiset.toFinsupp.
Instances For
@[simp]
theorem
Multiset.toDFinsupp_apply
{α : Type u_1}
[DecidableEq α]
(s : Multiset α)
(a : α)
:
(toDFinsupp s) a = count a s
@[simp]
theorem
Multiset.toDFinsupp_support
{α : Type u_1}
[DecidableEq α]
(s : Multiset α)
:
(toDFinsupp s).support = s.toFinset
@[simp]
theorem
Multiset.toDFinsupp_replicate
{α : Type u_1}
[DecidableEq α]
(a : α)
(n : ℕ)
:
toDFinsupp (replicate n a) = fun₀ | a => n
@[simp]
theorem
Multiset.toDFinsupp_singleton
{α : Type u_1}
[DecidableEq α]
(a : α)
:
toDFinsupp {a} = fun₀ | a => 1
Multiset.toDFinsupp as an AddEquiv.
Instances For
@[simp]
theorem
Multiset.equivDFinsupp_apply
{α : Type u_1}
[DecidableEq α]
(a : Multiset α)
:
equivDFinsupp a = toDFinsupp a
@[simp]
@[simp]
theorem
Multiset.toDFinsupp_toMultiset
{α : Type u_1}
[DecidableEq α]
(s : Multiset α)
:
DFinsupp.toMultiset (toDFinsupp s) = s
theorem
Multiset.toDFinsupp_injective
{α : Type u_1}
[DecidableEq α]
:
Function.Injective ⇑toDFinsupp
@[simp]
theorem
Multiset.toDFinsupp_inj
{α : Type u_1}
[DecidableEq α]
{s t : Multiset α}
:
toDFinsupp s = toDFinsupp t ↔ s = t
@[simp]
theorem
Multiset.toDFinsupp_le_toDFinsupp
{α : Type u_1}
[DecidableEq α]
{s t : Multiset α}
:
toDFinsupp s ≤ toDFinsupp t ↔ s ≤ t
@[simp]
theorem
Multiset.toDFinsupp_lt_toDFinsupp
{α : Type u_1}
[DecidableEq α]
{s t : Multiset α}
:
toDFinsupp s < toDFinsupp t ↔ s < t
@[simp]
theorem
Multiset.toDFinsupp_inter
{α : Type u_1}
[DecidableEq α]
(s t : Multiset α)
:
toDFinsupp (s ∩ t) = toDFinsupp s ⊓ toDFinsupp t
@[simp]
theorem
Multiset.toDFinsupp_union
{α : Type u_1}
[DecidableEq α]
(s t : Multiset α)
:
toDFinsupp (s ∪ t) = toDFinsupp s ⊔ toDFinsupp t
@[simp]
theorem
DFinsupp.toMultiset_toDFinsupp
{α : Type u_1}
[DecidableEq α]
(f : Π₀ (x : α), ℕ)
:
Multiset.toDFinsupp (toMultiset f) = f
theorem
DFinsupp.toMultiset_injective
{α : Type u_1}
[DecidableEq α]
:
Function.Injective ⇑toMultiset
@[simp]
theorem
DFinsupp.toMultiset_inj
{α : Type u_1}
[DecidableEq α]
{f g : Π₀ (_a : α), ℕ}
:
toMultiset f = toMultiset g ↔ f = g
@[simp]
theorem
DFinsupp.toMultiset_le_toMultiset
{α : Type u_1}
[DecidableEq α]
{f g : Π₀ (_a : α), ℕ}
:
toMultiset f ≤ toMultiset g ↔ f ≤ g
@[simp]
theorem
DFinsupp.toMultiset_lt_toMultiset
{α : Type u_1}
[DecidableEq α]
{f g : Π₀ (_a : α), ℕ}
:
toMultiset f < toMultiset g ↔ f < g
@[simp]
theorem
DFinsupp.toMultiset_inf
{α : Type u_1}
[DecidableEq α]
(f g : Π₀ (_a : α), ℕ)
:
toMultiset (f ⊓ g) = toMultiset f ∩ toMultiset g
@[simp]
theorem
DFinsupp.toMultiset_sup
{α : Type u_1}
[DecidableEq α]
(f g : Π₀ (_a : α), ℕ)
:
toMultiset (f ⊔ g) = toMultiset f ∪ toMultiset g