OFFSET
0,1
COMMENTS
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.
I calculated a(6) using a different method; a(7) looks a lot harder. - Don Knuth, Dec 10 2012
REFERENCES
Knuth, Donald E., Satisfiability, Fascicle 6, volume 4 of The Art of Computer Programming. Addison-Wesley, 2015, pages 148 and 220, Problem 191.
LINKS
C. B. Barber, ttcnf 2005.1 (April 2005).
C. B. Barber, www.qhull.org/ttcnf.
PROG
The following program generates all truth tables of k-CNF expressions of n variables:
start with the truth table (2^2^n) - 1 //e.g., 0xFFFF for n=4
for each new truth table //e.g., 0xFFFF
for each (n choose k) variables //e.g., a, c, d
for each (2^k) clause of these variables //e.g., (a or not c or not d)
generate a truth table from the clause and previous truth table //e.g., NewTT = PrevTT and (...)
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'.
CROSSREFS
KEYWORD
nonn,hard
AUTHOR
C. Bradford Barber (bradb(AT)shore.net), Dec 13 2005
EXTENSIONS
a(6) from Don Knuth, Dec 10 2012
STATUS
approved