Definition
Plain language
A tool that exhaustively checks every possible behavior of a concurrent system, looking for bugs.
As stated in the literature
A program that systematically explores the state space of a formal specification, verifying properties hold across all reachable states and interleavings.
Why it matters: Concurrency bugs are nearly impossible to find by testing alone, and exhaustive checking can prove they don't exist.
For example, a model checker might explore every possible interleaving of two threads acquiring locks to confirm a deadlock can never occur.
Heard on the show
“The tool is called a model checker.”Episode 034 — Catching Multi-Agent Deadlocks Before Deployment With a 40-Year-Old Tool