Stephen Cook is most famously associated with one monumental theorem that essentially created an entire field of computer science.
The Cook-Levin Theorem (Cook's Theorem)
This is, without a doubt, the most important theorem attributed to Stephen Cook.
What it states: The theorem proves that the Boolean Satisfiability Problem (SAT) is NP-complete.
-
Why it matters:
It was the first: This was the very first problem ever proven to be NP-complete.
It established a foundation: Cook's 1971 paper, "The Complexity of Theorem-Proving Procedures," formally defined the concept of NP-completeness and established the significance of the P vs. NP problem
It provides a "master" problem: The theorem shows that any problem in the class NP can be reduced (in polynomial time) to SAT. This means if someone were to find an efficient, polynomial-time algorithm for solving SAT, it would automatically provide an efficient algorithm for every single problem in NP, thus proving P = NP.
Other Major Contributions & Related Work
While the Cook-Levin theorem is his most famous named theorem, Cook's work includes many other foundational results and definitions in computational complexity and proof complexity.
Formalization of P vs. NP: His 1971 paper is credited with formally defining the class NP (Nondeterministic Polynomial time) and posing the P versus NP problem as a major open question in mathematics and computer science.
-
Proof Complexity: Cook is a leading figure in proof complexity, which studies the length of proofs in formal logical systems.
Cook-Reckhow Thesis: Along with Robert A. Reckhow, he defined "p-simulation" and characterized the relationship between proof systems and complexity classes. Their work suggests that NP = co-NP if and only if there exists a propositional proof system in which every tautology has a polynomial-length proof.
Parallel Computation: Cook helped define and explore the complexity class NC (Nick's Class). This class contains problems that can be solved very efficiently on a parallel computer (in polylogarithmic time using a polynomial number of processors).
Bounded Arithmetic: He has done extensive work on systems of "bounded arithmetic" (like $PV$), which are weak logical theories used to formally capture the concept of polynomial-time reasoning.
This is a foundational proof in computer science, and its "rigor" comes from a very clever, step-by-step construction. Explaining it rigorously without any notation is a challenge, but the core logic can be described in plain English.
To prove the Boolean Satisfiability Problem (SAT) is NP-complete, we must prove two separate things:
SAT is in the class NP.
SAT is NP-hard.
Let's break down each part.
Part 1: Proving SAT is in NP
What this means: "NP" stands for "Nondeterministic Polynomial time." A simpler way to think about it is "efficiently verifiable." If someone hands you a problem and a potential solution, can you check if the solution is correct quickly (in polynomial time)?
-
The Proof:
Imagine a SAT problem (a big logical formula) and a potential solution (a list of TRUE/FALSE assignments for every variable, also called a "certificate").
To verify this solution, you simply plug the TRUE/FALSE values into the formula.
You then evaluate the formula, step-by-step, just like a calculator. You check each small clause ("A or not B"), see if it's TRUE, and then check if all the clauses are TRUE.
This checking process is very fast. The time it takes is directly proportional to the size of the formula. Because this verification is efficient and fast, SAT is, by definition, in the class NP.
This is the easy part of the proof.
Part 2: Proving SAT is NP-hard
What this means: This is the hard part and the core of Cook's Theorem. We must prove that every other problem in NP can be transformed (or "reduced") into an equivalent SAT problem quickly (in polynomial time).
If this is true, it means SAT is at least as hard as every other problem in NP. If you could solve SAT efficiently, you could solve everything in NP efficiently.
-
The Proof (The "Grand Construction"):
The "Checking Machine": First, we must agree on a universal model for a computer that "checks" solutions. The formal model for this is a Turing machine, but we can just think of it as a basic, idealized computer. Let's call it our "Checker." Since any problem in NP is efficiently verifiable (from Part 1), we know that for any NP problem, there is a "Checker" program that can verify a "YES" answer in a quick, limited number of steps (a polynomial number).
The Goal: Cook's brilliant idea was to prove that you can take any of these "Checker" programs (for any NP problem) and automatically convert it into one, massive SAT formula. This formula will be satisfiable if and only if the "Checker" program would have output "YES."
The Construction: We build this giant formula by creating variables and rules that perfectly simulate the "Checker" machine's computation, step-by-step.
-
Step A: Define the Variables. We create millions of Boolean (TRUE/FALSE) variables to describe the entire state of the "Checker" at every single step of its computation.
Tape Variables: For every tape square on the machine, and for every step in time, we create a variable. For example:
Is_Tape_Square_5_Symbol_A_at_Step_12?(This would be TRUE or FALSE).Head Variables: For every tape square and every step in time:
Is_Machine_Head_at_Square_7_at_Step_3?State Variables: For every machine state and every step in time:
Is_Machine_in_State_Q_at_Step_8?
-
Step B: Define the Rules (The Clauses). Now we add logical rules (the clauses of our SAT formula) to force these variables to behave like a real computation.
Start Rule: We add clauses that force the variables at "Step 0" to match the machine's starting conditions (e.g., the input problem is written on the tape).
-
Transition Rules: This is the biggest part. We add clauses that enforce the machine's logic. For every step t, these rules ensure that the machine's state at step t+1 is a valid next move from its state at step t. For example, a rule might say:
"IF (at step 5, the head is at square 20) AND (the symbol at square 20 is a '1') AND (the machine is in 'State K')
THEN
(at step 6, the head must be at square 21) AND (the symbol at square 20 must now be a '0') AND (the machine must be in 'State L')."
This entire logical statement is just a (complex) clause in our SAT formula.
Uniqueness Rules: We add rules to prevent impossible situations, like the machine's head being in two places at once, or a single tape square containing two different symbols at the same time.
Final "Accept" Rule: We add one last, simple rule: "At some point in time before the final step, the machine must enter the 'YES, the answer is correct' state."
-
The Conclusion of the Proof: We have now built a giant SAT formula.
If a "YES" answer for the original problem exists: Then a valid computation history of the "Checker" machine also exists. This history (the exact sequence of head moves, state changes, and tape symbols) provides a set of TRUE/FALSE assignments for all our variables that makes our entire formula TRUE. Therefore, the formula is satisfiable.
If no "YES" answer exists: Then no possible computation of the "Checker" can ever reach the "YES" state. This means it is impossible to find a set of TRUE/FALSE assignments that satisfies all our rules at once. Therefore, the formula is unsatisfiable.
This process shows that any NP problem can be transformed into a SAT problem. Because this transformation is itself a systematic, fast (polynomial-time) process, it proves that SAT is NP-hard.
Final Summary
Because we proved (1) SAT is in NP (it's easy to check a given answer) and (2) SAT is NP-hard (every other NP problem can be converted into it), we have proven that SAT is NP-complete.