Kripke structure (model checking)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Script error: No such module "about".

A Kripke structure is a variation of the transition system, originally proposed by Saul Kripke,[1] used in model checking[2] to represent the behavior of a system. It consists of a graph whose nodes represent the reachable states of the system and whose edges represent state transitions, together with a labelling function which maps each node to a set of properties that hold in the corresponding state. Temporal logics are traditionally interpreted in terms of Kripke structures.Script error: No such module "Unsubst".

Formal definition

Let Template:Mvar be a set of atomic propositions, i.e. boolean-valued expressions formed from variables, constants and predicate symbols. Clarke et al.[3] define a Kripke structure over Template:Mvar as a 4-tuple M = (S, I, R, L)Script error: No such module "Check for unknown parameters". consisting of

  • a finite set of states Template:Mvar.
  • a set of initial states ISScript error: No such module "Check for unknown parameters"..
  • a transition relation RS × SScript error: No such module "Check for unknown parameters". such that Template:Mvar is left-total, i.e., ∀s ∈ S ∃s' ∈ SScript error: No such module "Check for unknown parameters". such that (s,s') ∈ RScript error: No such module "Check for unknown parameters"..
  • a labeling (or interpretation) function L: S → 2APScript error: No such module "Check for unknown parameters"..

Since Template:Mvar is left-total, it is always possible to construct an infinite path through the Kripke structure. A deadlock state can be modeled by a single outgoing edge back to itself. The labeling function Template:Mvar defines for each state sSScript error: No such module "Check for unknown parameters". the set L(s)Script error: No such module "Check for unknown parameters". of all atomic propositions that are valid in Template:Mvar.

A path of the structure Template:Mvar is a sequence of states ρ = s1, s2, s3, ...Script error: No such module "Check for unknown parameters". such that for each i > 0Script error: No such module "Check for unknown parameters"., R(si, si+1)Script error: No such module "Check for unknown parameters". holds. The word on the path Template:Mvar is the sequence of sets of the atomic propositions w = L(s1), L(s2), L(s3), ...Script error: No such module "Check for unknown parameters"., which is an ω-word over alphabet 2APScript error: No such module "Check for unknown parameters"..

With this definition, a Kripke structure (say, having only one initial state iI)Script error: No such module "Check for unknown parameters". may be identified with a Moore machine with a singleton input alphabet, and with the output function being its labeling function.[4]

Example

File:KripkeStructureExample.svg
An example of a Kripke structure

Let the set of atomic propositions AP = Template:MsetScript error: No such module "Check for unknown parameters".. Template:Mvar and Template:Mvar can model arbitrary boolean properties of the system that the Kripke structure is modelling.

The figure at right illustrates a Kripke structure M = (S, I, R, L)Script error: No such module "Check for unknown parameters"., where

  • S = Template:MsetScript error: No such module "Check for unknown parameters"..
  • I = Template:MsetScript error: No such module "Check for unknown parameters"..
  • R = Template:MsetScript error: No such module "Check for unknown parameters"..
  • L = Template:MsetScript error: No such module "Check for unknown parameters"..

Template:Mvar may produce a path ρ = s1, s2, s1, s2, s3, s3, s3, ...Script error: No such module "Check for unknown parameters". and w = Template:Mset, Template:Mset, Template:Mset, Template:Mset, Template:Mset, Template:Mset, Template:Mset, ...Script error: No such module "Check for unknown parameters". is the execution word over the path Template:Mvar. Template:Mvar can produce execution words belonging to the language (Template:MsetTemplate:Mset)*(Template:Mset)ω ∪ (Template:MsetTemplate:Mset)ωScript error: No such module "Check for unknown parameters"..

Relation to other notions

Although this terminology is widespread in the model checking community, some textbooks on model checking do not define "Kripke structure" in this extended way (or at all in fact), but simply use the concept of a (labelled) transition system, which additionally has a set Template:Mvar of actions, and the transition relation is defined as a subset of S × Act × SScript error: No such module "Check for unknown parameters"., which they additionally extend to include a set of atomic propositions and a labeling function for the states as well (Template:Mvar as defined above.) In this approach, the binary relation obtained by abstracting away the action labels is called a state graph.[5]

Clarke et al. redefine a Kripke structure as a set of transitions (instead of just one), which is equivalent to the labeled transitions above, when they define the semantics of modal μ-calculus.[6]

See also

Template:Sister project

References

<templatestyles src="Reflist/styles.css" />

  1. Kripke, Saul, 1963, "Semantical Considerations on Modal Logic," Acta Philosophica Fennica, 16: 83-94
  2. Clarke, Edmund M. (2008): The Birth of Model Checking. in: Grumberg, Orna and Veith, Helmut eds.: 25 Years of Model Checking, Vol. 5000: Lecture Notes in Computer Science. Springer Berlin Heidelberg, p. 1-26.
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Clarke et al. p. 98

Script error: No such module "Check for unknown parameters".