We will show that CNF-SAT
is NP-complete.
Let A be a language in NP accepted by a nondeterministic Turing
machine M. Fix an input x. We will create a 3CNF formula φ that
will be satisfiable if and only if there is a proper
tableau for M and x.
Let m be the running time of M on x. m is bounded by a polynomial in
|x| since A is in NP. m is also a bound on the size of the
configurations of M(x).
We will create a set of Boolean variables to describe a tableau and a
set of clauses that will all be true if and only if the tableau is
proper. The variables are as follows.
qij: true if confi is in state j.
hik: true if the head in confi is at
location k.
tikr: true if the tape cell in location k of
confi has element r.
We create four clause groups to check that the tableau is proper.
Every configuration has exactly one state, head location and each
tape cell has one element.
conf0 is the initial configuration.
confm is accepting.
For each i≤m, confi+1 follows from confi
in one step.
1. We will just do this for states. The others are
similar. Suppose we have u possible states.
Each configuration in at least one state. For each i we have
qi0 OR qi1 OR ... OR qiu
Each configuration in at most one state. For each i and possible
states v and w, v≠w
(NOT qiv) OR (NOT qiw)
2. Let x=x1...xn, b the blank character and
state 0 the initial state. We have the following single
variable clauses,
q00
h01
t0ixi for i≤n
t0ib for i>n
3. Let a be the accept state. We need only one single variable clause.
qma
4. We need two parts. First if the head is not over a tape location
then it should not change.
((NOT hik) AND tikr)→ ti(k+1)r
Now this doesn't look like an OR of literals. We now apply the facts
that P→Q is the same as (NOT P) OR Q and NOT(R AND S) is equivalent to
(NOT R) OR (NOT S) to get
hik OR (NOT tikr) OR t(i+1)kr
At this point none of the formula has been dependent on the machine M.
Our last set of clauses will take care of this. Recall the program of a
Turing machine is a mapping from current state and tape character
under the head to a new state, a possibly new character under the head
and a movement of the tape head one space right or left. A
nondeterministic machine may allow for several of these
possibilities. We add clauses to prevent the wrong operations.
Suppose that the following is NOT a legitimate transition of M: In
state j and tape symbol r, will write s, move left and go to state
v. We prevent this possibility with the following set of clauses (for
all appropriate i and k).
(qij AND hik AND tikr)→
NOT(t(i+1)ks AND hi(k-1) AND q(i+1)v)
which is equivalent to
(NOT qij) OR (NOT hik) OR (NOT tikr)
OR (NOT t(i+1)ks) OR (NOT hi(k-1))
OR (NOT q(i+1)v)
We do this for every possible illegitimate transition. Finally we just
need to make sure the head must go one square right or left in each
turn.
(NOT hik) OR h(i+1)(k-1) OR h(i+1)(k+1)
Just to note in the above formula we need special care to
handle the boundary conditions (where k is 1 or m) but this is
straightforward.