Imagine two threads running in parallel. Thread A reads a variable; Thread B writes a different one. Does it matter which goes first? Not at all — the end state is identical either way. Yet a naive model checker treats "A then B" and "B then A" as two separate states to explore, and with independent actions the blowup reaches .
This is state-space explosion: the core challenge of verifying any concurrent system. The number of possible interleavings of even a handful of threads grows so fast that exhaustive search becomes hopeless. A program with ten threads each taking ten steps could in principle generate orderings.
Partial-order reduction (POR) is the elegant answer. If two actions are independent — neither one affects the other's outcome — then exploring only one of their possible orderings is enough. The technique, developed in the early 1990s by Doron Peled, Antti Valmari, and Patrice Godefroid, is now the backbone of every serious model checker.
Comments
Loading comments...