Software and hardware bugs can kill. A single mistake in an aircraft's flight-control code, a pacemaker's firmware, or a chip's cache-coherence protocol can be catastrophic — and traditional testing can only check the cases you thought to write down.
Model checking is a radically different approach: instead of testing samples, a computer exhaustively explores every state a system can reach and checks whether a given property holds in all of them. If the property fails anywhere, the tool hands you a concrete counterexample — the exact sequence of events that triggers the bug.
The technique was independently invented in the early 1980s by Edmund Clarke and E. Allen Emerson at Harvard/MIT and by Joseph Sifakis in Grenoble. In 2007, all three received the Turing Award — computer science's highest honour — for this work.
The key ingredients are two: a Kripke structure (a directed graph whose nodes are system states and edges are transitions, with each node labelled by facts that hold there) and a temporal-logic formula that expresses what should always or eventually be true. The checker traverses the graph and decides whether the formula holds — automatically, rigorously, and without a single line of manual proof.
Comments
Loading comments...