ModelChecking
Model checking is an automated formal verification technique used to determine whether a finite-state model of a system satisfies a given specification, typically expressed in temporal logic. A model checker exhaustively explores the state space of the model to verify properties such as safety and liveness, and, if a property is violated, it provides a counterexample execution trace.
Originating in the early 1980s with work by Clarke and Emerson, model checking has become a central
Methods used in model checking include explicit-state techniques that enumerate reachable states, and symbolic techniques that
Applications span hardware design and verification, communication protocols, software verification, and safety-critical embedded systems. Prominent tools
Limitations include the state explosion problem, significant modeling effort, and the gap between realistic systems and