OFFSET
0,2
COMMENTS
Number of Boolean functions distinct under complementation/permutation.
REFERENCES
M. A. Harrison, Introduction to Switching and Automata Theory. McGraw Hill, NY, 1965, p. 153.
M. A. Harrison, The Number of Transitivity Sets of Boolean Functions. Journal of the Society for Industrial and Applied Mathematics, Vol. 11, No. 3 (Sep., 1963), pp. 806-828
D. E. Knuth, The Art of Computer Programming, Vol. 4A, Section 7.1.1, p. 79.
S. Muroga, Threshold Logic and Its Applications. Wiley, NY, 1971, p. 38, Table 2.3.2. - Row 16.
N. J. A. Sloane, A Handbook of Integer Sequences, Academic Press, 1973 (includes this sequence).
N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).
LINKS
Matthew House, Table of n, a(n) for n = 0..11
Michael A. Harrison, The number of equivalence classes of Boolean functions under groups containing negation, IEEE Trans. Electron. Comput. 12 (1963), 559-561.
Michael A. Harrison, The number of equivalence classes of Boolean functions under groups containing negation, IEEE Trans. Electron. Comput. 12 (1963), 559-561. [Annotated scanned copy]
Michael A. Harrison, On asymptotic estimates in switching and automata theory, J. ACM, 13(1) (Jan. 1966), 151-157.
Saburo Muroga, Threshold Logic and Its Applications, Wiley, NY, 1971 [Annotated scans of a few pages]
Saburo Muroga, TeiƬchi Tsuboi, and Charles R. Baugh, Enumeration of threshold functions of eight variables, IEEE Trans. Computers, 19 (1970), 818-825. [Annotated scanned copy]
Gorgi Pavlov, The Banach-Butterfly Invariant: Influence-Adaptive Walsh Geometry for Ternary Polynomial Threshold Functions, arXiv:2605.01637 [cs.LG], 2026. See pp. 3, 16.
Juling Zhang, Guowu Yang, William N. N. Hung, Tian Liu, Xiaoyu Song, and Marek A. Perkowski, A Group Algebraic Approach to NPN Classification of Boolean Functions, Theory of Computing Systems (2018), 1-20.
FORMULA
a(n) is asymptotic to 2^{2^n} / ( n! * 2^{n+1} ) as n -> oo. This follows from a theorem of Michael Harrison. See Theorem 3 in Harrison (JACM, 1966). - Eric Bach, Aug 07 2017
PROG
(Python)
def partition_lin(n, d, depth=0):
if d == depth:
if n==0: yield ()
else: yield from (item + (i, ) for i in range(n+1) for item in partition_lin(n-i*(depth+1), d, depth=depth+1))
def get_num_equiv_bool_func(n, sc=False):
import math, operator, functools
from sympy import mobius
def e(k): return sum((1<<d)*mobius(k//d) for d in range(1, k+1) if k % d == 0)//k
def g(two_k): return sum((1<<(d//2))*mobius(two_k//d) for d in range(1, two_k+1) if two_k % d == 0 and two_k//2 % d != 0)//two_k
return sum(math.factorial(n)*(1<<n)//functools.reduce(operator.mul, (math.factorial(ji)*(2*(n-i))**ji for i, ji in enumerate(j)), 1)*sum(functools.reduce(operator.mul, (0 if sc and d&1 else 1<<x for d, x in a), 1) for a in ([[(1, 1)]] if n==0 else functools.reduce(lambda x, y: [[(math.lcm(p, q), math.gcd(p, q)*ip*jq) for p, ip in a for q, jq in b] for a in x for b in y], ([[(d, e(d)) for d in range(1, i+1) if i % d ==0], [(d, g(d)) for d in range(1, 2*i+1) if 2*i % d == 0 and i % d != 0]] for i in range(1, n+1) for _ in range(j[n-i]))))) for j in partition_lin(n, n))//(math.factorial(n)*(1<<n))
[(get_num_equiv_bool_func(n)+get_num_equiv_bool_func(n, True))//2 for n in range(0, 10)] # Gregory Morse, Dec 23 2024
CROSSREFS
KEYWORD
nonn,nice,changed
AUTHOR
EXTENSIONS
More terms from Vladeta Jovovic, Feb 23 2000
STATUS
approved
