25.12.2014 Views

On improving efficiency of model checking through systematically ...

On improving efficiency of model checking through systematically ...

On improving efficiency of model checking through systematically ...

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.

in their domain (B = {T,F} for Booleans and N for Integers). If an<br />

assertion constrains their values, they may take non-deterministically<br />

any values satisfying the constraint.<br />

In the example, init,ok,x,y,b0,b1 are state variables; p1,p2 are input<br />

variables.<br />

2.1.2 Dataflow equation (transition part)<br />

The transition part Transdefines a set <strong>of</strong> parallel equations b ′ i = φ i( ⃗ b,⃗c, ⃗x, ⃗y),<br />

i =1...m and x ′ k = ψ k( ⃗ b,⃗c, ⃗x, ⃗y), k =1...p giving the value <strong>of</strong> each state variable<br />

at the next execution step, as a function <strong>of</strong> the current values <strong>of</strong> state<br />

and input variables. In these equations, expressions φ i and ψ k are wellformed<br />

expressions <strong>of</strong> suitable types, possibly mixing Boolean expressions<br />

and linear numerical expressions. Atoms <strong>of</strong> Boolean expressions can be either<br />

Boolean variables or linear constraints. A conditional if-then-else<br />

statement can be used in a dataflow equation.<br />

In the example, init is set to true once at the initial state <strong>of</strong> the system<br />

(described in the initial part). In the transition part, init is set to false<br />

for all subsequent executions because it specifies whether or not the system<br />

is in the initial state. The Boolean variable ok <strong>model</strong>s the status in which<br />

the system still satisfies the condition x ≥ y. Variables b0,b1,x,y <strong>model</strong><br />

the behavior <strong>of</strong> the M.<br />

2.1.3 Assertion<br />

An assertion a allows to constrain the values <strong>of</strong> input variables depending on<br />

the current state. It is defined by a Boolean expression Assert on variables,<br />

which give for each state the possible values for input variables:<br />

a = Assert( ⃗ b,⃗c, ⃗x, ⃗y)<br />

In the example, there is an assertion to constrain the values <strong>of</strong> two input<br />

variables p1 and p2:<br />

p1 and not p2 or not p1 and p2;<br />

This assertion means that p1,p2 can be either true or false but they never<br />

take the same value.<br />

11

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

Saved successfully!

Ooh no, something went wrong!