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.

not use that format for the reason that it is used by Nbac for visualization<br />

purpose only, meaning that <strong>model</strong> details are necessarily reduced to serve<br />

that purpose.<br />

An Nbac output <strong>model</strong> contains all the components that have been described<br />

in Section 2.1 including variable declaration, dataflow equation, assertion,<br />

initial and final condition. Therefore, we will not repeat those parts<br />

here.<br />

The major difference between an Nbac input <strong>model</strong> and output <strong>model</strong><br />

is the presence <strong>of</strong> an explicit automaton or control structure in the output<br />

<strong>model</strong>. This control structure is the foundation for our transformation<br />

between <strong>model</strong>s. It is defined by a set <strong>of</strong> locations and edges:<br />

• Locations: A location is associated with an invariant, which is a<br />

Boolean expression that gives the set <strong>of</strong> states represented by the location.<br />

• Edges: An edge is associated with with a guard, which is a Boolean<br />

expression on state and input variables that indicates under which<br />

condition the edge can be taken.<br />

The union <strong>of</strong> all invariants <strong>of</strong> the locations indicates the considered statespace.<br />

The union <strong>of</strong> all guards <strong>of</strong> the edges allows to enforce the behavior<br />

<strong>of</strong> the global system.<br />

Figure 3.1 presents an example <strong>of</strong> the control structure specified in an<br />

Nbac output <strong>model</strong>.<br />

automaton<br />

location bad_0 : (not ok and not init0) and (y+x-2>=0 and -y+x+2>=0<br />

and y-x>=0);<br />

location init_0 : (init0) and true;<br />

location good_0 : (ok and not init0) and (y>=0 and x>=0 and -y+x+1>=0);<br />

edge (init_0,good_0) : true and true and ((not p2 and p1)<br />

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

edge (good_0,bad_0) : true and (y-x-1>=0) and ((not p2 and p1)<br />

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

edge (good_0,good_0) : true and (not y-x-1>=0) and ((not p2 and p1)<br />

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

Figure 3.1: An example <strong>of</strong> control structure in Nbac output <strong>model</strong><br />

The control structure in Figure 3.1 contains three locations and three<br />

edges. We can see that there is no assignment in this automaton besides locations,<br />

edges, invariants and guards. Assignments are put in the transition<br />

22

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

Saved successfully!

Ooh no, something went wrong!