Cook Theorem
Cook Theorem
Cooks Theorem
Michael Albert
[email protected]
Satisfiability
S ATISFIABILITY
Instance: A CNF formula over a set of variables V .
Problem: Does the formula have a satisfying assignment?
We aim to prove:
Lemma S ATISFIABILITY is in N P .
Motivation
The hard part is proving that S ATISFIABILITY is N P -hard.
To do this we must establish a polynomial time reduction
from any problem in N P to S ATISFIABILITY. Where can we
start? Whats the handle? How do we turn the crank?
Getting started
Lets just look at a few examples before we try to carefully
pin down all the details.
Groups of clauses
Our reducer will convert M and the relevant part of the input
w (i.e. only the first Anc characters) into an instance of
S ATISFIABILITY. There are several groups of clauses in this
instance which play different roles:
Valid tape
There is a symbol at each point on the tape at each time
_
S YMBOL(c, j, t)
c
There are never two symbols at the same point of the tape
at the same time. In other words: For any two symbols, at
least one of them is not on a particular point of the tape at a
particular time.
0
^ `
S YMBOL(c, j, t) S YMBOL(c , j, t)
c, c0
c 6= c0
Valid machine
At each time step the tape head is somewhere.
For 0 t Anc
_
H EAD(j, t)
0jAnc
0
^ `
H EAD(j, t) H EAD(j , t)
0j<j 0 Anc
For 0 t Anc
_
S TATE(qi, t)
0im
...
Initial/Final
The initial state is q0, the read/write head is at position 0
and the first Anc positions of the tape match w
^
S TATE(q0, 0) H EAD(0, 0) S YMBOL(wj , j, 0).
0jAnc
c
S TATE(qa, An ).
Transitions
Only the symbol under the read/write head can change
or
` 0 0 0
H EAD(j, t) Symbol(c, j , t) S YMBOL(c , j , t + 1)
Transitions (contd)
Again propositional logic tells us that a (b c) is
equivalent to (a b) (a c) so we can translate
the above into O(n2c) clauses. However . . .
_
(CNF formula for each transition)
possible transitions
Overview
We have described a mechanical procedure for converting
in polynomial time, a non-deterministic Turing machine
M with polynomial time complexity and an input word
w into a formula (M, w) in CNF, i.e. an instance of
S ATISFIABILITY. This translation is such that if (M, w)
is satisfiable, then any satisfying assignment represents a
series of snapshots of a valid accepting computation of M
on input w.
So:
Phew.