Write and Explain Cook’s Theorem (Cook–Levin Theorem) — A Complete Learning Section
Cook’s theorem—often grouped with the Cook–Levin theorem—states that the Boolean satisfiability problem is NP-complete. In a standard form:
- SAT
- NP
Cook proved that SAT is in NP and that every language in NP can be reduced to SAT in polynomial time, establishing NP-completeness.2
A common way to “explain” the theorem (without skipping the math) is:
- Take an arbitrary language .
- Model its membership using a nondeterministic polynomial-time verifier.
- Encode the existence of an accepting computation as a Boolean formula.
- Show the formula is satisfiable iff the verifier accepts.
- Conclude SAT is NP-hard; combined with SAT NP, SAT is NP-complete.2
Key concepts used throughout:
- NP-complete
- Cook reduction
- Certificate
- Reduction
Footnotes
-
Stephen A. Cook, “The Complexity of Theorem-Proving Procedures,” Proceedings of the Third Annual ACM Symposium on Theory of Computing (1971). https://dl.acm.org/doi/10.1145/800157.801047 - Original SAT NP-completeness result. ↩ ↩2
-
Wikipedia, “Boolean satisfiability problem.” https://en.wikipedia.org/wiki/Boolean_satisfiability_problem - SAT is NP-complete; common references to Cook’s theorem. ↩
-
Wikipedia, “Cook's theorem (computer science).” https://en.wikipedia.org/wiki/Cook%27s_theorem - Statement and explanation of NP-completeness framework. ↩
Cook–Levin (Cook’s) Theorem: SAT is NP-complete (Intuition to Proof)
Formal setup: what “write and explain Cook’s theorem” means
1) Decision problems and reductions
To prove a problem is NP-complete, we show:
- (i) Membership in NP: the problem can be verified in polynomial time.
- (ii) NP-hardness: every problem in NP reduces to it by a polynomial-time many-one reduction.
Cook’s theorem is commonly summarized as:
- SAT is NP-complete.2
2) The verifier view of NP
For any , there exists a polynomial-time verifier such that:
- iff there exists a certificate with accepting within polynomial time.
Cook’s proof works (at a high level) by translating the existence of an accepting computation of such a verifier into a Boolean satisfiability instance.2
Footnotes
-
Wikipedia, “Boolean satisfiability problem.” https://en.wikipedia.org/wiki/Boolean_satisfiability_problem - SAT is NP-complete; common references to Cook’s theorem. ↩
-
Wikipedia, “Cook's theorem (computer science).” https://en.wikipedia.org/wiki/Cook%27s_theorem - Statement and explanation of NP-completeness framework. ↩ ↩2
-
Stephen A. Cook, “The Complexity of Theorem-Proving Procedures,” Proceedings of the Third Annual ACM Symposium on Theory of Computing (1971). https://dl.acm.org/doi/10.1145/800157.801047 - Original SAT NP-completeness result. ↩
Cook’s theorem construction: from an NP verifier to a SAT instance
- 1Step 1
Let . Choose a nondeterministic (or equivalent verifier) machine that decides in polynomial time.
- 2Step 2
If runs in time , then any computation on input has at most steps, so the “computation tableau” has polynomial size.
- 3Step 3
Create variables representing what is doing at each time step: tape symbol, head position, and control state at each .
- 4Step 4
Encode that at time , the tape contains the input in the correct format and the head starts in the initial position with the start state.
- 5Step 5
For each step , add clauses that ensure the chosen state/head/symbol at time follows from the transition rules of .
- 6Step 6
Add “consistency” clauses: at each time , exactly one machine state is active, the head is at exactly one position, and the tape symbols match the variables.
- 7Step 7
Include clauses forcing that at some time the accepting state is reached (or equivalently, the final configuration satisfies acceptance).
- 8Step 8
Let be the conjunction of all tableau clauses. Its size is polynomial in .
- 9Step 9
If , there exists an accepting computation; setting tableau variables according to that computation satisfies . Conversely, a satisfying assignment defines a valid accepting computation.
- 10Step 10
The mapping is computable in polynomial time and preserves the yes/no answer, so .
Why the construction works (the “explain” part)
Cook’s central idea is: a SAT instance can express the existence of a valid computation history.
Tableau encoding intuition
Think of a nondeterministic computation as a sequence of configurations. The proof encodes the entire history into a grid/tableau:
- Columns: time steps
- Rows: tape cells (or head/tape components)
- Variables: what symbols/states appear at each location in the tableau
Then:
- Constraints ensure local consistency: each step obeys the machine’s transition function.
- If the constraints all hold globally, the tableau spells out a complete accepting run.2
From NP-hardness to NP-completeness
Once we show every reduces to SAT, SAT is NP-hard. Since SAT is also in NP (a satisfying assignment is a certificate that can be checked in polynomial time), SAT becomes NP-complete.2
Footnotes
-
Stephen A. Cook, “The Complexity of Theorem-Proving Procedures,” Proceedings of the Third Annual ACM Symposium on Theory of Computing (1971). https://dl.acm.org/doi/10.1145/800157.801047 - Original SAT NP-completeness result. ↩
-
Wikipedia, “Cook's theorem (computer science).” https://en.wikipedia.org/wiki/Cook%27s_theorem - Statement and explanation of NP-completeness framework. ↩ ↩2
-
Wikipedia, “Boolean satisfiability problem.” https://en.wikipedia.org/wiki/Boolean_satisfiability_problem - SAT is NP-complete; common references to Cook’s theorem. ↩
type="tip" title="Pro Tip" content="When explaining Cook’s theorem, focus on the iff proof: satisfiable formula ↔ valid accepting computation history. Most confusion comes from skipping the correctness argument."
type="warning" title="Common pitfall" content="Don’t claim Cook’s theorem uses an “efficient algorithm to find satisfying assignments.” NP-completeness is about decision problems and reductions, not about tractability of finding solutions."
Relationship to variants (SAT, 3-SAT, and Levin)
Many courses next ask why we can replace SAT by restricted forms like 3-SAT. The typical story is:
- SAT is NP-complete (Cook).
- There are standard polynomial reductions from SAT to 3-SAT, preserving satisfiability.
- Therefore 3-SAT is NP-complete.
This is part of the “NP-completeness ecosystem” that emerged after Cook’s original theorem and subsequent refinements.2
Footnotes
-
Wikipedia, “Boolean satisfiability problem.” https://en.wikipedia.org/wiki/Boolean_satisfiability_problem - SAT is NP-complete; common references to Cook’s theorem. ↩
-
Wikipedia, “Cook's theorem (computer science).” https://en.wikipedia.org/wiki/Cook%27s_theorem - Statement and explanation of NP-completeness framework. ↩
Cook’s theorem proof structure (high-level checklist)
What you must establish to claim NP-completeness.
Historical/Conceptual Roadmap
Define NP via certificates
NP verifier viewMembership can be verified in polynomial time for some witness."
Reduce any NP problem to SAT
Cook reduction frameworkConstruct a formula that represents an accepting computation."
Encode computation history as logic
Tableau + constraintsLocal transition constraints imply global validity."
Combine SAT ∈ NP with NP-hardness
NP-completeness conclusionSAT is NP-complete under polynomial-time reductions."
Frequently asked explanation details
Cook’s theorem — self-check deck
Knowledge Check
Which two properties are required to prove SAT is NP-complete?