English
For a finite multiset m of natural numbers, bell(m) counts the number of partitions of a set with size sum m into blocks whose sizes are given by the entries of m.
Русский
Для конечного мультимножества m натуральных чисел bell(m) считает число разбиений множества суммарного размера ∑m на блоки таких размеров, как элементы m.
LaTeX
$$$ \\mathrm{bell}(m) = \\operatorname{multinomial}\\left(m^{\\mathrm{toFinset}}, (k \\mapsto k \\cdot m.count(k))\\right) \\\\ \\quad \\cdot \\prod_{k \\in m.toFinset.erase 0} \\prod_{j \\in \\{0,1,\\dots,m.count(k)-1\\}} {jk + k - 1 \\choose k - 1} $$$
Lean4
/-- Number of partitions of a set of cardinality `m.sum`
whose parts have cardinalities given by `m` -/
def bell (m : Multiset ℕ) : ℕ :=
Nat.multinomial m.toFinset (fun k ↦ k * m.count k) *
∏ k ∈ m.toFinset.erase 0, ∏ j ∈ .range (m.count k), (j * k + k - 1).choose (k - 1)