next up previous
Next: Up: Previous:

SAT $\in$ NPC

Proof:

1.
SAT $\in$ NP
Replace each variable with 0 or 1 as specified by the certificate and evaluate (poly-time).



2.
Select L' = CIRCUIT-SAT



3.
Reduction from CIRCUIT-SAT to SAT.
Straight-forward technique of computing the formula of each gate output as a combination of the input formulae may cause exponential instantiations of a variable as outputs are copied to multiple inputs. Instead, let each gate output be a variable.
AND the output variable with expressions for each gate describing the equivalence between the gate's output and input variables.

Example

Circuit C



\psfig{figure=figures/f27-4.ps}

Formula


\begin{displaymath}\phi \;=\; x_6 \;\wedge\; (x_4 \;\leftrightarrow\; (x_1 \wedg...
...g x_3)
\;\wedge\; (x_6 \;\leftrightarrow\; (x_4 \;\vee\; x_5))\end{displaymath}

Constructing this formula takes polynomial time.


next up previous
Next: Up: Previous: