Satisfiability Problem: The Canonical NP-Complete Problem

Graduate Depth 77 in the knowledge graph I know this Set as goal
Unlocks 2 downstream topics
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

Counting to 10Counting to 20Understanding ZeroThe Number ZeroCounting to FiveOne-to-One CorrespondenceCombining Small Groups Within 5Addition Within 10Addition Within 20Two-Digit Addition Without RegroupingTwo-Digit Addition with RegroupingAddition Within 100Repeated Addition as MultiplicationMultiplication Facts Within 100Division as Equal SharingDivision as Grouping (Measurement Division)Division: Grouping (Repeated Subtraction) ModelDivision: Fair Sharing ModelDivision as Equal SharingDivision as GroupingBasic Division FactsDivision Facts Within 100Two-Digit by One-Digit DivisionDivision with RemaindersRemainders and Quotients in DivisionDivision Word ProblemsIntroduction to Long DivisionFactors and MultiplesPrime and Composite NumbersEquivalent FractionsRelating Fractions and DecimalsDecimal Place ValueReading and Writing DecimalsComparing and Ordering DecimalsAdding and Subtracting DecimalsMultiplying DecimalsDividing DecimalsDividing FractionsMixed Number ArithmeticOrder of OperationsInteger Order of OperationsVariable ExpressionsCombining Like TermsOne-Step EquationsTwo-Step EquationsSolving Multi-Step EquationsEquations with Variables on Both SidesLiteral EquationsSlope-Intercept FormPoint-Slope FormWriting Linear EquationsParallel and Perpendicular Line SlopesGraphing Linear EquationsPiecewise FunctionsStep FunctionsComposition of FunctionsInverse FunctionsRadical Functions and GraphsRational ExponentsExponential Functions and GraphsLogarithms IntroductionBig-O Notation and Asymptotic AnalysisBreadth-First Search (BFS)Shortest Paths in Unweighted GraphsDijkstra's Shortest Path AlgorithmAlgorithm Analysis and Big-O NotationTuring MachinesTime Complexity and the Class PNondeterministic Turing MachinesNP and Polynomial-Time VerificationProbabilistic Computation and BPPBPP and Randomized ComplexityRandomized Complexity: RP, co-RP, and ZPPComplexity Classes and the Complexity HierarchyThe P Versus NP Problem: Central Open QuestionNP-Hardness: Definition and PropertiesNP-Completeness and the Cook-Levin TheoremSatisfiability Problem: The Canonical NP-Complete Problem

Longest path: 78 steps · 438 total prerequisite topics

Prerequisites (2)

Leads To (1)