On Converting CNF to DNF [chapter]

Peter Bro Miltersen, Jaikumar Radhakrishnan, Ingo Wegener
2003 Lecture Notes in Computer Science  
We study how big the blow-up in size can be when one switches between the CNF and DNF representations of Boolean functions. For a function f : {0, 1} n → {0, 1}, cnfsize(f ) denotes the minimum number of clauses in a CNF for f; similarly, dnfsize(f ) denotes the minimum number of terms in a DNF for f. For 0 m 2 n−1 , let dnfsize(m, n) be the maximum dnfsize(f ) for a function f : {0, 1} n → {0, 1} with cnfsize(f ) m. We show that there are constants c 1 , c 2 1 and > 0, such that for all large
more » ... and all m ∈ [ 1 n, 2 n ], we have 2 n−c 1 (n/ log(m/n)) dnfsize(m, n) 2 n−c 2 (n/ log(m/n)) . In particular, when m is the polynomial n c , we get dnfsize(n c , n) = 2 n− (c −1 (n/ log n)) .
doi:10.1007/978-3-540-45138-9_55 fatcat:6zcxfdpl4nedhjsmgj3mgfu524