1 3rd of July 2009 CEA LIST Symbolic execution based model checking of open systems with unbounded...

18
CEA LIST 1 3rd of July 2009 Symbolic execution based model checking of open systems with unbounded variables Nicolas RAPIN [email protected] CEA LIST ratory of Model Driven Engineering for embedded sys F-91191 Gif-sur-Yvette, FRANCE. Tests and Proofs 2009
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    213
  • download

    0

Transcript of 1 3rd of July 2009 CEA LIST Symbolic execution based model checking of open systems with unbounded...

CEA LIST 13rd of July 2009

Symbolic execution based model checking of open systems with unbounded variables

Nicolas [email protected]

CEA LISTLaboratory of Model Driven Engineering for embedded systems

F-91191 Gif-sur-Yvette, FRANCE.

Tests and Proofs 2009

CEA-LIST 3rd of July 2009DTSI

Context and motivation

Critical embedded systems => formal methods

Spec ()

Model (M)

Model

System(black box)

Conforms to ?(TAP’07)

Conforms to ?(TestCom’06)

Conforms to ?

refinement

implementation

design

Several problems, one technique, Symbolic Execution (SE), one platform (AGATHA).• shift from space complexity to time complexity (for verification).• concise representation: for simulation, test purpose definition …

M |=symb exec ?

CEA-LIST 3rd of July 2009DTSI

Outline

Models: IOSTS formalism

Specifications: IOLTL logic

IOLTL tableau calculus

Symbolic Execution technique

Tableau calculus and SE (|=symb path)

Termination

Experiment, Conclusion, Futur works

CEA-LIST 3rd of July 2009DTSI

IOSTS Formalism

T [rel_speed?v] {}

T [] {b : = 1, v : = 0}

(b = = 0) [] {}

v > 1 [motor ! -1]{}

v < -1 [motor ! 1]{}

-1 v 1 []{}

q rpIT [] {b:=0} t4

t3

(I,v0,b 1) (p,v0,b 0) (q,v-5,b 0) (r,v-5,b 0) (p,v-5,b 0)rel_speed ? -5

a run:

motor ! 1

Data part: first order decidable theory Th (ex: Presburger Arithmetics) state variables: {v,b}

Graph part : states, transitionslabel: Guard [I|O|] {Substitution}I: channel ? Variable O : channel ! Term

Relative speed regulator(virtual trains for trucks)

CEA-LIST 3rd of July 2009DTSI

IOLTL

BNF Grammar:::= atom | T | | 1 | 1 2 | X 1 | 1 U 2 | 1 R 2

Atomic propositions: properties over states: (v > 0) properties over I/O: (c ! u, u > v+1)

Satisfaction:

M |=iosts if for all r Run(M), r |=run

Implicit Kripke structure :

I

p

e1

e2

I,e1

p,e2

|= X if

|=

CEA-LIST 3rd of July 2009DTSI

IOLTL tableau calculus

r |=run means r(0) |=run

r(i) |=run can be reduced to:

r[i] |=state Now() or r(i+1) |=run neXt() where Now() Atoms

r[i] |=state Now() means T |= /\ r[i] /\ Now()

Goal: transform satisfaction relation |=run into an operational procedure. Idea : reduce it to a satisfaction relation on state |=state which can be reduced itself to Th |= f (the data theory Th is supposed to be decidable).

Now neXt

Now’ neXt’

2 kind of inference rules

neXt

neXt

r(i)

r[i]r:

(transformation) (transition)

CEA-LIST 3rd of July 2009DTSI

Tableau calculus: example

F p (abbreviates: T U p)F p p X (F p)r(i) |= F p iff r[i] |= p or r(i+1) |= F p

{F p},

{p},

{F p},

{},{F p}

{},{F p}

{F p},{}

F1 F2

NSR(Next State Rule)

p {},{F p}

p

{},{F p}

{},{F p}

p

Prove p now … … or prove Fp in the next state.

Build the next state.

If p is not an atom: after F1

rules dedicated to p main operator are applied and so on until Now set contains only atoms.

CEA-LIST 3rd of July 2009DTSI

Symbolic execution

(I,T,{v v0, b b0})

(p,T,{v v0, b 0})

(q,T,{v v1, b 0})

rel_speed?v1

(r,T,{v v1, b 0}) (r,T,{v 0, b 1})

(p,v1 < -1,{v v1, b 0}) (p,v1 > 1,{v v1, b 0})

(p,-1 v1 1,{v v1, b 0})

Motor ! -1Motor ! 1

Principle: symbols are used instead of values.

Red symbolic path: containsthe run of slide 4.

Correct, complete. Intentional representation of all runs (concise and exact).

M |=iosts iff for all sp SP(M) we have sp |=symb path

CEA-LIST 3rd of July 2009DTSI

IOLTL tableau calculus and symbolic execution

(p, vi>1, vvi) {F (v < 5) } E,

(p, vi>1, vvi) { (v < 5) } E,F1

E,

Atom (p, vi>1, vvi)

(p, (vi>1)(vvi)(v<5), vvi)

{ (v < 5) }E,

(p, (1<vi<5), vvi)

Atom Rule transfers atoms into path condition.

CEA-LIST 3rd of July 2009DTSI

IOLTL tableau calculus and symbolic execution

(p, vi>1, vvi) {F (v < 5) },

(p, vi>1, vvi) ,{F (v < 5)}F2

NSR (p, vi>1, vvi) ,{F (v < 5) }

{F (v < 5) },(q, vi>1, vvi+1)

rel_speed?vi+1

Context

Rules build sequences of transitions linking contexts: we call them unfoldings

(an unfolding is consistent if the path condition of its symbolic state component)

CEA-LIST 3rd of July 2009DTSI

Satisfaction problem with Until formulas

v > 0 v > 1

Consider: F(v<0) and the kripke structure above. Rule F2 applies forever (i.e. build an infinite consistent unfolding) although (v<0) is never

satisfied ! Consistency of an infinite unfolding is not a sufficient criteria for the satisfaction relation.

The technique requires a third set of formulas which stores Until formulas (remember that F is an Until) never proved: initialized with all Until (Finally) sub-formulas.

USet, {}, neXt

USetneXt, neXt, {}

NSR(modified to takeUset into account)

With above example:USet always contains F(x<0) !

Emptiness of the Uset provides a sufficient criterion.

CEA-LIST 3rd of July 2009DTSI

Lemma

With Uset emptiness criterion (never infinitely non empty)

|=run and |=symb path

are equivalent(i.e. we can use |=symb path instead of |=run

in the definition of |=iosts )

CEA-LIST 3rd of July 2009DTSI

Termination criterion 1: lassos detection

Context with Uset =

Lemma: O1 O2 => There is a lasso (see red execution a.b)

a

b

Moreover, if there exists, in the loop part of the unfolding, a context with Uset = then: a.b* satisfies .

O1 , O2 are omega sets (see paper) with respect to symbols present in the prefix)

O1

O2

prefixloop

An unfolding:

CEA-LIST 3rd of July 2009DTSI

Termination criterion 2: “dead end” detection

Uset

O2 O1 => unfoldings “after” S2 cannot prove more than those “after” S1 => cut on S2.

O1 , O2 (omega sets of S1 and S2 with respect to )

S2

S1

CEA-LIST 3rd of July 2009DTSI

Theorems

Theorem 1: If there exits an unfolding satisfying the lasso criterion and the Uset criterion then there exists a run r |= .

Theorem 2: If all unfoldings satisfy the inclusion criterion but not the Uset criterion then there exists no run satisfying .

(the two criteria are applied in a defined sequence)

CEA-LIST 3rd of July 2009DTSI

First experiment

Diagnosability. A model is not diagnosable with respect to a fault if we can find two different runs, having the same observable traces, one being affected by the fault and not the other. The speed regulator IOSTS model of slide 4 contains a fault whose occurrence is characterized by the value of b).

Diagnosability can be reduced to a model-checking problem:

M M |=iosts F G (b1 = T b2 = ) ?

Answer about the speed captor failure:

Not diagnosable when relative speed is maintained at 0.

CEA-LIST 3rd of July 2009DTSI

Conclusion

|=symb path can be used instead of |=run

Allows analysis of models with unbounded variables or huge domains

SE and tableau calculus combination provides an operational technique for |=symb

semi-decision verification algorithm (between test and proof)

CEA-LIST 3rd of July 2009DTSI

FUTUR WORKS

Improve verification algorithm with strategies(priorities over rules: F1 > F2 to check F G )

Monte Carlo methods for large systems(adaptation of the MC2 PLTL checker approach)

What about FIFO channels ?

Use tableau calculus and SE to generate tests purposes (TestCom’06) from IOLTL properties(Test purpose refinement).

Thank You !