%I #21 Jul 15 2022 08:07:21
%S 2,4,16,256,43146,120510132,4977694100656
%N Number of truth tables generated by 3CNF expressions of n variables.
%C For n=5, computing the number of 3CNF truth tables took 2^32 bytes and 2^38 iterations. Computing the same number for n=6 may require 2^64 bits and 2^71 iterations.
%C I calculated a(6) using a different method; a(7) looks a lot harder. - _Don Knuth_, Dec 10 2012
%D Knuth, Donald E., Satisfiability, Fascicle 6, volume 4 of The Art of Computer Programming. Addison-Wesley, 2015, pages 148 and 220, Problem 191.
%H C. B. Barber, <a href="http://www.qhull.org/download/ttcnf-2005.1.zip">ttcnf 2005.1</a> (April 2005).
%H C. B. Barber, <a href="http://www.qhull.org/ttcnf">www.qhull.org/ttcnf</a>.
%o The following program generates all truth tables of k-CNF expressions of n variables:
%o start with the truth table (2^2^n) - 1 //e.g., 0xFFFF for n=4
%o for each new truth table //e.g., 0xFFFF
%o for each (n choose k) variables //e.g., a, c, d
%o for each (2^k) clause of these variables //e.g., (a or not c or not d)
%o generate a truth table from the clause and previous truth table //e.g., NewTT = PrevTT and (...)
%o Bit operations allow an efficient implementation of the last step. If you represent each variable by its truth table, A, B, ..., in 1-CNF, then the last step is 'NewTT = PrevTT and (A or B or C ...)'. For example, with four variables a, b, c and d, the 1-CNF truth table for 'a' is 0xFF00, 'not c' is 0x3333 and 'not d' is 0x5555. The corresponding step is 'NewTT = PrevTT and 0xFFBB'.
%Y Cf. A034472, A109457 (corresponding sequences for 1CNF and 2CNF), A112650, A000157, A000371, A000613, A000618, A003181.
%K nonn,hard
%O 0,1
%A C. Bradford Barber (bradb(AT)shore.net), Dec 13 2005
%E a(6) from _Don Knuth_, Dec 10 2012