The Cook-Levin Theorem

Cook-Levin Theorem

The Cook-Levin Theorem states that the Boolean Satisfiability Problem (SAT) is NP-complete.

Link to original

Proof

We want to show that every problem can be reduced to SAT.

  1. Let be any problem belonging to class NP.
  2. By definition of class NP, there must be some NDTM such that has a polynomial-length computation that accepts .
  3. For each state :
    • Where symbol .
    • Where integers (i, t are less than termination time on the input ).
    • Let be whether the cell of the ‘s tape contains the symbol at some given time .
    • Let be whether the tape head is in position at a given time .
    • Let be whether the machine is in state at a given time .

Example

Using these newly introduced propositional variables, we can argue things such as:

  • : “The machine cannot be in both state and at the given time
  • : “At the given time , the tape head must be in positions or
  • : “At the given time , if cell contains an then it must not contain a
  • : “At the given time , if the machine is in state and the tape head is in position and the corresponding cell contains an , then at time : the machine will be in state , the tape head will move to position and cell will now contain a
  1. With these propositional variables, we can construct a formula: has a polynomial-length computation that accepts .
  2. We also have that .
  3. Hence it follows that for all .
  4. Since we we already know that SAT belongs to NP, it must follow that SAT is NP-complete.