Commit 2024-11-07 22:27 666dec72
View on Github →feat(Combinatorics/Enumerative/Bell): number of ways of partitioning a set into subsets of given cardinalities (#15644)
Multiset.bell mis the number of possibilities of dividing a set withm.sumelements into disjoint subsets with cardinalities indicated bym.Nat.uniformBell m nisMultiset.bell (replicate m n), the number of possibilities of dividing a set withm * nelements intomgroups ofn-element subsets These integers are defined as finite products of integers.Multiset.bell_eqshows that it equals some expression involving fractions of factorials,Multiset.bell_mul_eqshows the equivalent formula without division.Nat.uniformBell_eqshows that it equals(m * n).factorial / (m.factorial * n.factorial ^ m)andNat.uniformBell_mul_factorial_mul_pow_factorialestablishes the equalitymchoose m n * m.factorial * n.factorial ^ m = (m * n).factorial.Nat.choose_mul_addandNat.choose_mul_rightare lemmas forNat.choosethat couldn't lie inMathlib.Data.Nat.Choose.Basicbecause their proof uses theringtactic. Co-authored with María Inés de Frutos-Fernández TODO : solve the enumerative problem.