A topic in the Open Knowledge Graph — a free, open map of 15,290 topics and the order to learn them in.

Boolean Satisfiability, Cook-Levin, and Reductions

Graduate Depth 99 in the knowledge graph ☐ I know this ☆ Set as goal
48topics build on this
501prerequisites beneath it
See this on the map →
The Cook-Levin TheoremNP-Completeness and Cook-Levin Theorem→→3-SAT and k-SAT VariantsBounded Model Checking+4 more
sat 3sat cook-levin cnf reduction canonical

Core Idea

SAT (Boolean satisfiability) asks if a CNF formula has a satisfying assignment. Cook-Levin theorem proves SAT is NP-complete by showing every NP language reduces to SAT—establishing SAT as canonical. 3-SAT (3 literals per clause) is NP-complete. Reductions from SAT prove other problems NP-complete: map satisfying assignments to solutions of the target problem.

Explainer

The Boolean satisfiability problem (SAT) asks a seemingly straightforward question: given a Boolean formula — a logical expression built from variables, AND, OR, and NOT — is there some assignment of true/false values to the variables that makes the entire formula evaluate to true? The formula is typically presented in conjunctive normal form (CNF): a conjunction (AND) of clauses, where each clause is a disjunction (OR) of literals (variables or their negations). For example, (x₁ ∨ ¬x₂) ∧ (x₂ ∨ x₃) ∧ (¬x₁ ∨ ¬x₃) is a CNF formula with three clauses. You need to find values for x₁, x₂, x₃ that satisfy all three clauses simultaneously — or determine that no such assignment exists.

SAT is clearly in NP: if someone hands you a proposed assignment, you can plug in the values and check each clause in linear time. But the Cook-Levin theorem proves something far deeper — SAT is NP-complete, meaning it is at least as hard as every other problem in NP. The proof works by showing that for *any* language L in NP, with its nondeterministic polynomial-time TM M, you can construct a CNF formula that is satisfiable if and only if M accepts the input. The formula encodes the entire computation: variables represent the state, head position, and tape contents at each time step, and clauses enforce that each step follows M's transition function. A satisfying assignment literally *is* an accepting computation history. This construction is the bridge that connects abstract nondeterministic computation to concrete logical formulas.

3-SAT restricts each clause to exactly three literals, and it remains NP-complete. The reduction from general SAT to 3-SAT introduces auxiliary variables to break long clauses into chains of three-literal clauses while preserving satisfiability. The importance of 3-SAT is practical: it's a cleaner, more structured starting point for reductions to other problems. To prove a new problem X is NP-complete, you show that 3-SAT (or any known NP-complete problem) reduces to X in polynomial time — meaning you can transform any 3-SAT instance into an instance of X such that the 3-SAT formula is satisfiable if and only if the X instance has a solution.

This reduction technique is the workhorse of complexity theory. Hundreds of problems have been proven NP-complete through chains of reductions, all tracing back to SAT via Cook-Levin. Each reduction is a polynomial-time translation that maps satisfying assignments to solutions of the target problem and vice versa. For example, reducing 3-SAT to CLIQUE involves constructing a graph where each clause becomes a group of vertices (one per literal), with edges connecting compatible literals from different clauses; a k-clique in this graph corresponds to a satisfying assignment. The art of NP-completeness proofs lies in designing these gadgets — structural components in the target problem that faithfully simulate the logical constraints of SAT. Once you establish that a problem is NP-complete, you know that a polynomial-time algorithm for it would imply P = NP, effectively ruling out efficient exact solutions under the widely believed conjecture that P ≠ NP.

Practice Questions 5 questions

Prerequisite Chain

Understanding Zero → The Number Zero → Counting to Five → Counting to 10 → Counting to 20 → Counting a Set of Objects Up to 20 → Cardinality: The Last Number Counted → Matching Numerals to Quantities → Subitizing Small Quantities → Addition Within 10 → Number Bonds to 10 → Addition Within 20 → Doubles and Near Doubles → Doubles Facts Within 10 → Near Doubles Facts Within 20 → Mental Math Strategies for Addition → Mental Math: Adding and Subtracting Tens → Addition Within 100 → Repeated Addition as Multiplication → Multiplication as Equal Groups → Multiplication: Arrays → Basic Multiplication Facts (0s, 1s, 2s, 5s, 10s) → Multiplication Facts Within 100 → Division as Equal Sharing → Division as Grouping (Measurement Division) → Division: Grouping (Repeated Subtraction) Model → Division: Fair Sharing Model → Division as Equal Sharing → Division as Grouping → Basic Division Facts → Division Facts Within 100 → Multiplication and Division Fact Families → Relationship Between Multiplication and Division → Division Facts as Inverse of Multiplication → Remainders and Quotients in Division → Division Word Problems → Multi-Step Word Problems → Solving Multi-Step Word Problems → Multiplication Word Problems → Division Word Problems → Introduction to Long Division → Factors and Multiples → Prime and Composite Numbers → Equivalent Fractions → Relating Fractions and Decimals → Decimal Place Value → Integers and the Number Line → Comparing and Ordering Integers → Absolute Value → Adding Integers → Subtracting Integers → Multiplying Integers → Introduction to Exponents → Order of Operations → Integer Order of Operations → Variable Expressions → The Distributive Property → Variables and Expressions Review → Introduction to Polynomials → Adding and Subtracting Polynomials → Multiplying Polynomials → Factorial → Permutations → Combinations → Counting Principles: Addition and Multiplication Rules → Introduction to Graph Theory → Propositional Logic Foundations → Logical Equivalences → Boolean Algebra → Boolean Type and Truth Values → Comparison Operators and Boolean Tests → Logical Operators and Boolean Algebra → Boolean Algebra and Fundamental Laws → Logic Gates Fundamentals → Implementing Boolean Functions with Gates → Karnaugh Map Simplification → Combinational Circuit Design → Flip-Flops and Latches → Finite State Machines (FSMs) → Deterministic Finite Automata (DFA) → Nondeterministic Finite Automata (NFA) → Two-Way Finite Automata → NFA to DFA Conversion (Subset Construction) → DFA Properties and Minimization Algorithms → Regular Languages: Definition and Characterization → Context-Free Grammars (CFGs) → Pushdown Automata (PDA) → Equivalence of CFGs and Pushdown Automata → Closure Properties of Context-Free Languages → Limitations of Context-Free Languages → Pumping Lemma for Context-Free Languages → Turing Machines → Variants of Turing Machines and Equivalence → Nondeterministic Time Complexity and NP → The P vs. NP Problem → Complexity Class P: Polynomial Time → Complexity Class NP: Nondeterministic Polynomial Time → NP-Completeness and Cook-Levin Theorem → The Cook-Levin Theorem → Boolean Satisfiability, Cook-Levin, and Reductions

Longest path: 100 steps · 501 total prerequisite topics

Prerequisites (2)

Leads To (6)