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

Satisfiability Problem: The Canonical NP-Complete Problem

Graduate Depth 100 in the knowledge graph ☐ I know this ☆ Set as goal
2topics build on this
699prerequisites beneath it
See this on the map →
NP-Completeness and the Cook-Levin TheoremBoolean Satisfiability (SAT)→→3-SAT and Reduction-Based Hardness Proofs
satisfiability boolean-satisfiability sat-solvers completeness

Core Idea

The Boolean satisfiability problem (SAT) asks whether a Boolean formula has an assignment making it true. SAT is the prototypical NP-complete problem and appears across logic, AI, hardware verification, and combinatorics. The complexity of SAT directly connects to fundamental questions about problem-solving and the limits of efficient computation.

How It's Best Learned

Experiment with SAT solvers (e.g., MiniSat) on small instances. Convert a graph coloring instance to SAT to see the encoding.

Explainer

You know NP-completeness: a problem is NP-complete if it is in NP *and* every NP problem reduces to it in polynomial time. SAT — the Boolean satisfiability problem — is the canonical example, historically the first proved NP-complete (Cook, 1971; Levin, 1973), and the starting point for the vast web of NP-completeness reductions that followed.

SAT asks: given a Boolean formula φ over variables x₁, ..., xₙ with connectives ∧, ∨, ¬, does any truth-value assignment to the variables make φ evaluate to true? For example, (x₁ ∨ ¬x₂) ∧ (¬x₁ ∨ x₂) is satisfiable (set x₁ = x₂ = T), while (x₁) ∧ (¬x₁) is not. The certificate for membership in SAT is just the satisfying assignment — easy to verify in linear time by evaluating the formula. So SAT is in NP.

That SAT is NP-*hard* — that every NP problem reduces to SAT — is the deep claim, proved by the Cook-Levin theorem. The proof encodes any nondeterministic Turing machine computation as a Boolean formula: variables represent the machine's configuration (tape content, head position, state) at each of polynomially many time steps, and the formula asserts that the transitions are valid and the computation accepts. This encoding is polynomial in the input size. Because every NP problem has such an NTM computation, every NP problem has a polynomial-time reduction to SAT. SAT is thus a universal language for NP: it can express any NP problem.

In practice, modern SAT solvers (MiniSat, CryptoMiniSat, Z3) are remarkably powerful despite the theoretical hardness. They use the DPLL algorithm enhanced with conflict-driven clause learning (CDCL) — when a partial assignment leads to a contradiction, the solver learns a new clause that prunes future search. Industrial instances with millions of variables in hardware verification, automated planning, cryptanalysis, and program synthesis are routinely solved. Understanding SAT in both its theoretical (NP-completeness, reductions from other problems) and practical (solver algorithms, phase transitions near the satisfiability threshold) aspects gives you the central problem around which complexity theory and automated reasoning both revolve.

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 → Dividing Integers → Unit Rates → Proportions → Percent Concept → Converting Between Fractions, Decimals, and Percents → Operations with Rational Numbers → Two-Step Equations → Solving Multi-Step Equations → Equations with Variables on Both Sides → Angle Pairs: Complementary, Supplementary, and Vertical → Parallel Lines and Transversals → Corresponding Angles → Alternate Interior Angles → Triangle Angle Sum Theorem → Exterior Angle Theorem → Triangle Inequality Theorem → Similar Triangles: AA Similarity → Similar Triangles: SSS and SAS Similarity → Proportions in Similar Triangles → Right Triangle Trigonometry Introduction → Sine, Cosine, and Tangent Ratios → Trigonometric Ratios Review → Radian Measure → Converting Between Degrees and Radians → The Unit Circle → Graphing Sine and Cosine → Graphing Tangent and Reciprocal Trigonometric Functions → Derivatives of Trigonometric Functions → Antiderivatives → Indefinite Integrals → Basic Integration Rules → Riemann Sums → Definite Integral Definition → Probability Density Functions and Continuous Distributions → Cumulative Distribution Functions → Continuous Random Variables → Probability Density Functions → Expected Value → Weak Law of Large Numbers → Probability Axioms and Rules → Conditional Probability → Probabilistic Computation and BPP → BPP and Randomized Complexity → Randomized Complexity: RP, co-RP, and ZPP → Complexity Classes and the Complexity Hierarchy → The P Versus NP Problem: Central Open Question → NP-Hardness: Definition and Properties → NP-Completeness and the Cook-Levin Theorem → Satisfiability Problem: The Canonical NP-Complete Problem

Longest path: 101 steps · 699 total prerequisite topics

Prerequisites (2)

Leads To (1)