model checking


model checking

(theory, algorithm, testing)To algorithmically check whethera program (the model) satisfies a specification.

The model is usually expressed as a directed graphconsisting of nodes (or vertices) and edges. A set ofatomic propositions is associated with each node. The nodesrepresents states of a program, the edges represent possibleexecutions which alters the state, while the atomicpropositions represent the basic properties that hold at apoint of execution.

A specification language, usually some kind of temporal logic, is used to express properties.

The problem can be expressed mathematically as: given atemporal logic formula p and a model M with initial state s,decide if M,s \\models p.

["Automatic verification of finite state concurrent systemsusing temporal logic", E.M. Clarke, E.A. Emerson, andA.P. Sisla, ACM Trans. on Programming Languages and Systems8(2), pp. 244--263, 1986].