Dedekind Numbers #
A Dedekind number M(n) counts the number of monotone Boolean functions on n variables,
or equivalently, the number of antichains (Sperner families) in the Boolean lattice 2^[n].
For example, $$M ( 0 ) = 2 , M ( 1 ) = 3 , M ( 2 ) = 6 , and M ( 3 ) = 20 .$$ The first few values grew slowly: $$M ( 4 ) = 168 , M ( 5 ) = 7581$$, but then rapidly: $$M ( 6 ) = 7828354 , M ( 7 ) = 2414682040998 , M ( 8 ) = 56130437228687557907788$$, and $$M ( 9 ) = 286386577668298411128469151667598498812366$$ (computed in 2023).
We formalize two definitions:
M n: the number of monotone Boolean functions(Fin n → Bool) → BoolM' n: the number of antichains (Sperner families) ofFinset (Fin n)
We prove their values for small n and show that the two definitions agree for all n.
The problem is to determine the exact values of $M(n)$ for $n ≥ 10$. In particular, the value of $M(10)$ is currently unknown.
References:
Equations
$M(n)$ is the number of monotone Boolean functions on $n$ variables.
Instances For
A Sperner family (antichain) of subsets of Fin n: a family of sets such that
no member is a subset of another.
Equations
- DedekindNumber.IsSperner A = IsAntichain (fun (s t : Finset (Fin n)) => s ⊆ t) ↑A
Instances For
Equations
- DedekindNumber.isSpernerDecidable A = id (id (id (⋯.mpr inferInstance)))
$M'(n)$ is the number of antichains (Sperner families) of subsets of Fin n.
Equations
- DedekindNumber.M' n = Fintype.card { A : Finset (Finset (Fin n)) // DedekindNumber.IsSperner A }
Instances For
Forward map: monotone function → Sperner family (the minimal true sets).
Equations
- DedekindNumber.toSperner f = {s : Finset (Fin n) | f (DedekindNumber.χ s) = true ∧ ∀ t ⊆ s, f (DedekindNumber.χ t) = true → s ⊆ t}
Instances For
The set of monotone Boolean functions on n variables is in bijection
with the set of Sperner families of subsets of Fin n.
Equations
- One or more equations did not get rendered due to their size.
Instances For
No closed form for the Dedekind numbers are currently unknown.
In particular, the Dedekind number for n = 10 is currently unknown.