Advanced Topic 38 of 51 Theory & Discrete Math
Cook-Levin Theorem
Result proving SAT is NP-complete.
How it works
The Cook-Levin theorem, proved by Stephen Cook in 1971 and independently by Leonid Levin, states that the Boolean satisfiability problem is NP-complete. The proof shows that any problem in NP, decided by a nondeterministic polynomial-time Turing machine, can be encoded as a Boolean formula that is satisfiable exactly when the machine accepts, by representing the computation's tableau of configurations with variables and constraints. It was the first NP-complete problem.
Step-by-step walkthrough
- Take any problem in NP with a polynomial verifier.
- Describe the machine's computation as Boolean formulas.
- The formula is satisfiable exactly when the answer is yes.
- So every NP problem reduces to SAT.
- This was the first NP-complete problem.
Where it is used
It provides the starting point for proving other problems NP-complete by reduction from SAT or 3-SAT, creating thousands of known NP-complete problems. It also motivated SAT solvers, since many problems can be encoded in SAT.
Common pitfall
The encoding is polynomial in size but large, and the theorem is about worst-case encodings, not practical solving. Do not confuse showing SAT is NP-hard with solving all NP problems fast. Constructions in proofs must carefully handle polynomial bounds on time and space. Study the tableau idea rather than memorizing formulas.
Where it fits in the course
Cook-Levin Theorem is topic 38 of 51 in Theory & Discrete Math, rated Advanced. It follows NP-Completeness. The next topic is P vs NP.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Theory & Discrete Math quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Theory & Discrete Math quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Cook-Levin Theorem?
Where do people use Cook-Levin Theorem?
What is the most common mistake with Cook-Levin Theorem?
What should I learn before this topic?
How can I practice it?
Is Cook-Levin Theorem hard to learn?
How long does it take to learn Cook-Levin Theorem?
Which topics are related to Cook-Levin Theorem?
What should I study after Cook-Levin Theorem?
Related topics
- NP-Completeness (Theory & Discrete Math)
- P vs NP (Theory & Discrete Math)
- Class NP (Theory & Discrete Math)
- SAT Problem (Theory & Discrete Math)
- Bayes' Theorem (Math for Computing)
- Master Theorem (Algorithms)
- Central Limit Theorem (Math for Computing)