Resolution and CDCL
SAT is NP-complete (The Cook–Levin theorem) yet solvers handle millions of variables.
SAT is NP-complete (The Cook–Levin theorem) yet solvers handle millions of variables.
A named theory result sitting in the middle of every compiler backend, plus why the NP-hardness does not stop anyone. Part V's counterweight to all the type theory.
Reasoning about programs as a proof system; loop invariants as the hard part, and why they can't be inferred in general.
Relational algebra and relational calculus have equal expressive power. Why SQL is declarative and why a query planner can exist at all.
A polymorphic type alone tells you what the function must do. can only permute.
"Well-typed programs don't go wrong", stated as the two lemmas that actually prove it. What a type system does and does not promise.
Every typable term has one most general type, and it's inferable. Why ML and Haskell need so few annotations, and why subtyping breaks it.
Programs are proofs, types are propositions, evaluation is proof simplification. The most beautiful idea in the series.
Three rules, all of computation, and recursion built from nothing. Absorbs Church–Rosser confluence: reduction order doesn't change the answer.
What it actually says, why it's routinely misquoted, and why latency (the "ELC") is the part that governs real designs.
How real systems dodge FLP impossibility: safety always, liveness only when the network cooperates.
A language is regular iff it has finitely many distinguishable prefixes; and this gives you the unique minimal DFA.
Two very different-looking formalisms, exactly the same power. Explains how a regex engine really works.
Beyond P vs NP: why your O(n^2) string algorithm is probably optimal too.
An unknown quantum state cannot be copied, and the two-line proof is just linearity.
Sample above twice the bandwidth or lose information irrecoverably.
You need 3f+1 nodes to tolerate f liars, and that bound is tight.
Detecting concurrency exactly, at the cost of O(n) metadata. The tradeoff every eventually-consistent store makes.
"NP-hard" hides that some hard problems are easy when one parameter is small. The most practically useful refinement of Karp's 21 problems.
The positive side: 2-approximate vertex cover, PTAS, and where the approximability cliff sits.