Definition
Model checking is the algorithmic verification process that explores a formal model's state space to determine whether it satisfies a given specification, often expressed in temporal or modal logics.
Principle
Principle
Exhaustively or symbolically traverse reachable states of a model under the system semantics, evaluate the specification at each relevant state or trace, and return satisfaction results or counterexample traces when properties fail.
Demonstration
Demonstration
Model-check a finite-state protocol against an LTL safety property by building the reachable-state graph with breadth-first search or symbolic BDDs and reporting a counterexample trace when a safety violation is found.
Misapplication
Misapplication
Applying model checking naively to systems with effectively infinite state spaces without sound abstraction leads to spurious results; treating a counterexample trace as an implementation proof without considering modeling gaps is misleading.
Consequence
Consequence
Model checking produces concrete counterexamples for violated properties and high assurance for finite-state models; it automates bug finding, regression checking, and verification of design models under specified semantics.
Reversal
Reversal
The reverse approach is deductive verification or theorem proving, where one constructs symbolic proofs of correctness rather than exhaustively exploring state spaces; simulation is a weaker alternative that samples behaviors but is not exhaustive.
Boundary
Boundary
Model checking is applicable to finite or effectively enumerable state spaces, models with well-defined semantics, and properties expressed in checkable logics; it excludes unabstracted infinite-state systems and informal specifications unless suitably encoded.
Semantic Tension
Semantic Tension
There is tension between model checking's state-space exploration and theorem proving's symbolic reasoning: model checking gives counterexamples and concrete failing traces while theorem proving yields general proofs but may not produce counterexamples readily.
Synthesis
Synthesis
Model checking is an algorithmic, often exhaustive method that evaluates whether a formal model satisfies a specification by traversing or symbolically representing its state space and returning satisfaction results or diagnostic counterexamples.