CS254
Chris Pollett
Feb 27, 2017
Recall from last day we stated the Cook-Levin Theorem as:
Theorem.
(1) SAT is `NP`-complete.
(2) 3SAT is `NP`-complete.
Proof. Last day, we showed both of these problems are in `NP`. We also showed that for any `l` variable Boolean function we can represent it with a `l cdot 2^l` size CNF formula. We now show SAT is `NP`-hard.
Which of the following statements is known to be true (by most Theory CS people)?
Lemma. `mbox(SAT) le_p mbox(3SAT)`.
Given an instance `Psi` of SAT, we first scan it to determine the largest index `i` or a variable `u_i` used in the formula. We then scan each clause in `Psi` looking at clauses. If the clause is less than or equal to length 3 we copy it to the output tape. On one of our work tapes we have a counter `j` that starts at the value `i+1` where `i` is the largest index we just found. If a clause is `l_(i_1) vv .. vv l_(i_m)` where `m > 3`, we output the sequence of clauses `l_(i_1) vv l_(i_2) vv u_j`, `bar u_j vv l_(i_3) vv u_(j+1),` ...`, bar u_(j+w) vvl_(i_(m-1)) vv l_(i_m)` where `w` will be around `m/3`. The resulting clauses on the output tape is the value of our reduction on `Psi`. It is easy to check the original clauses will be satisfiable iff only the output clauses are sastifiable. Further the output clauses all have length less than or equal to 3.