07.01.2013 Views

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

560 Therese Berg and Harald Raffelt<br />

19.3 Model Check<strong>in</strong>g<br />

In the last few years model check<strong>in</strong>g has become a powerful and promis<strong>in</strong>g approach<br />

to automatic verification of systems. In general a model checker is a<br />

tool which checks whether a given structure M (called model) satisfies a certa<strong>in</strong><br />

logical constra<strong>in</strong>t φ (called property). Typically models are represented by<br />

f<strong>in</strong>ite automata-like structures and properties are described <strong>in</strong> temporal logic.<br />

In contrast to conventional logics <strong>in</strong> temporal logics it is possible to describe<br />

temporal dependencies like one action must take place before another one. The<br />

model checker either confirms that the properties hold or reports that they are<br />

not satisfied by the model. Some model checkers can produce a path <strong>in</strong> the<br />

model which does not satisfy the property, a so called counterexample. Counterexamples<br />

can be understood as a reason for the unsatisfied property. Besides<br />

from provid<strong>in</strong>g models and properties no further user <strong>in</strong>teraction is necessary for<br />

the entire model check<strong>in</strong>g process. Because of its push-button approach model<br />

check<strong>in</strong>g is a powerful verification tool even <strong>in</strong> large environments like hardware<br />

verification.<br />

In Section 19.3.1 we give a brief <strong>in</strong>troduction to models used to describe<br />

systems for model check<strong>in</strong>g purposes and <strong>in</strong> Section 19.3.2 some common formalisms<br />

to describe properties of systems are provided. In Section 19.3.3 a common<br />

automata-theoretic model-check<strong>in</strong>g algorithm is presented <strong>in</strong> detail.<br />

19.3.1 Models<br />

Model-check<strong>in</strong>g typically depends on a discrete model of a system which describes<br />

the system behavior. Usually these models are graph structures where<br />

nodes represent the states of the system and edges represent transitions between<br />

the states. For model check<strong>in</strong>g purposes these structures are typically f<strong>in</strong>ite, but<br />

model check<strong>in</strong>g <strong>in</strong>f<strong>in</strong>ite structures is also possible [BCMS01]. These graphs without<br />

any further annotation are not expressive enough to provide an <strong>in</strong>terest<strong>in</strong>g<br />

description of the system. Two approaches are <strong>in</strong> common use: Kripke structures,<br />

where the nodes are annotated with so called atomic propositions, and<br />

labeled transition systems where the edges are annotated with so called actions.<br />

These two descriptions can be comb<strong>in</strong>ed <strong>in</strong>to so called Kripke transition systems<br />

[MOSS99].<br />

In the follow<strong>in</strong>g we present an <strong>in</strong>troduction <strong>in</strong>to Kripke structures. An <strong>in</strong>troduction<br />

<strong>in</strong>to labeled transition systems can be found <strong>in</strong> Section 22.<br />

Def<strong>in</strong>ition 19.5. A Kripke structure (KS) overasetAP of atomic propositions<br />

is a triple (S, R, I ), where<br />

• S is a set of states,<br />

• R ⊆ S × S is a transitions relation and,<br />

• I : S → 2 AP is a label<strong>in</strong>g function<br />

Each proposition describes a basic local property of the systems states. To<br />

each state of the system a set of atomic propositions is assigned by the label<strong>in</strong>g

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!