Presentation is loading. Please wait.

Presentation is loading. Please wait.

Flavio Lerda 1 LTL Model Checking Flavio Lerda. 2 LTL Model Checking LTL –Subset of CTL* of the form: A f where f is a path formula LTL model checking.

Similar presentations


Presentation on theme: "Flavio Lerda 1 LTL Model Checking Flavio Lerda. 2 LTL Model Checking LTL –Subset of CTL* of the form: A f where f is a path formula LTL model checking."— Presentation transcript:

1 Flavio Lerda 1 LTL Model Checking Flavio Lerda

2 2 LTL Model Checking LTL –Subset of CTL* of the form: A f where f is a path formula LTL model checking –Model checking of a property expressed as an LTL formula: –Given a model M and an initial state s 0 : M,s 0 ╞ A f

3 Flavio Lerda 3 LTL Model Checking LTL Formulas Subset of CTL* –Distinct from CTL AFG p  LTL  f  CTL. f ≠ AFG p Contains a single universal quantifier –The path formula f holds for every path Commonly: – A is omitted –G is replaced by  (box or always) –F is replaced by  (diamond or eventually)

4 Flavio Lerda 4 LTL Model Checking Examples of LTL formulas Always eventually p: –   p –AGF p or AG AF p Always after p eventually q –  ( p  q) –AG (p -> F q) or AG (p -> AF q) Fairness –(   p )   –A ((GF p)   ) Not a CTL formula

5 Flavio Lerda 5 LTL Model Checking LTL Semantics Derived from the CTL* semantics Given an infinite execution trace  =s 0 s 1 …  ╞ p  p(s 0 )  ╞ ¬   ¬(  ╞  )  ╞  1   2   ╞  1   ╞  2  ╞  1   2   ╞  1   ╞  2  ╞   i  0  i ╞   ╞   i  0  i ╞   ╞  1 U  2  i  0  i ╞  2   0  j  < i  j ╞  1

6 Flavio Lerda 6 LTL Model Checking Given a model M and an LTL formula  –All traces of M must satisfy  –If a trace of M does not satisfy  Counterexample –  M is the set of traces of M –   is the set of traces that satisfy   M    Equivalently  M   ¬  = 

7 Flavio Lerda 7 LTL Model Checking Büchi Automata Automaton which accepts infinite traces A Büchi automaton is 4-tuple  S, I, , F  –S is a finite set of states –I  S is a set of initial states –   S  S is a transition relation –F  S is a set of accepting states An infinite sequence of states is accepted iff it contains accepting states infinitely often

8 Flavio Lerda 8 LTL Model Checking Example S0S0 S1S1 S2S2  1 =S 0 S 1 S 2 S 2 S 2 S 2 …  2 =S 0 S 1 S 2 S 1 S 2 S 1 …  3 =S 0 S 1 S 2 S 1 S 1 S 1 … ACCEPTED REJECTED

9 Flavio Lerda 9 LTL Model Checking Büchi Automata Büchi automata are non-deterministic: –The next state is not uniquely defined –  is a transition relation not a transition function Deterministic Büchi automata are not equivalent to (non-deterministic) Büchi automata: –Cannot convert any Büchi automaton into a deterministic equivalent one –There exists no optimal and efficient minimization algorithm for non-deterministic automata

10 Flavio Lerda 10 LTL Model Checking LTL and Büchi Automata LTL formula –Represents a set of infinite traces which satisfy such formula Büchi Automaton –Accepts a set of infinite traces We can build an automaton which accepts all and only the infinite traces represented by an LTL formula

11 Flavio Lerda 11 LTL Model Checking Labeled Büchi Automata Given a set of atomic proposition P –Define a labeling function : S  2 P –Each state is assigned a set of propositions that must be true –All the other propositions must be false Similar to the labeling for the model M

12 Flavio Lerda 12 LTL Model Checking Given a model M and an LTL formula  –Build the Buchi automaton B ¬  –Compute product of M and B ¬  Each state of M is labeled with propositions Each state of B ¬  is labeled with propositions Match states with the same labels –The product accepts the traces of M that are also traces of B ¬  (  M   ¬  ) –If the product accepts any sequence We have found a counterexample

13 Flavio Lerda 13 LTL Model Checking Nested Depth First Search The product is a Büchi automaton How do we find accepted sequences? –Accepted sequences must contain a cycle In order to contain accepting states infinitely often –We are interested only in cycles that contain at least an accepting state –During depth first search start a second search when we are in an accepting states If we can reach the same state again we have a cycle (and a counterexample)

14 Flavio Lerda 14 LTL Model Checking Example

15 Flavio Lerda 15 LTL Model Checking Example

16 Flavio Lerda 16 LTL Model Checking Nested Depth First Search procedure DFS(s) visited = visited  {s} for each successor s’ of s if s’  visited then DFS(s’) if s’ is accepting then DFS2(s’, s’) end if end for end procedure

17 Flavio Lerda 17 LTL Model Checking Nested Depth First Search procedure DFS2(s, seed) visited2 = visited2  {s} for each successor s’ of s if s’ = seed then return “Cycle Detect”; end if if s’  visited2 then DFS2(s’, seed) end if end for end procedure

18 Flavio Lerda 18 LTL Model Checking Generating Büchi Automata We need a procedure to generate a Büchi automaton given an LTL formula –Efficiently Formulas are usually small Büchi automaton exponential in the size of the formula The cost of model checking is polynomial to the size of the automaton Non-deterministic Büchi automata are not equivalent to deterministic Büchi automata –Cannot use automata minimization algorithms Finding the minimal automata is NP-complete

19 Flavio Lerda 19 LTL Model Checking Approach Formula rewriting –Rewrite the formula in negation normal form –Apply rewriting rules Core translation –Turns an LTL formula into a generalized Büchi automaton Degeneralization –Turns a generalized Büchi automaton into a Büchi automaton

20 Flavio Lerda 20 LTL Model Checking Rewriting Negation normal form –Negation appears only in front of literals –Use the following identities ¬¬  =  ¬G  = F ¬  ¬F  = G ¬  ¬(  U  ) = (¬  ) V (¬  ) ¬(  V  ) = (¬  ) U (¬  ) V (sometimes R) is the Release operator –Dual of Until

21 Flavio Lerda 21 LTL Model Checking Rewriting Additional rewriting rules: –Reduce the size of the formula –They are not guaranteed to yield smaller automaton –The size of the automaton is exponential in the size of the formula Examples: –(X  ) U (X  )  X (  U  ) –(X  )  (X  )  X (    ) –GF   GF   GF (    )

22 Flavio Lerda 22 LTL Model Checking Generalized Büchi Automata Büchi automaton with multiple sets of accepting states A generalized Büchi automaton is 4-tuple  S, I, , F  –S is a finite set of states –I  S is a set of initial states –   S  S is a transition relation – F = {F 1, …, F n }  2 S is a set of sets of accepting states An infinite sequence of states is accepted iff it contains infinitely often accepting states from each of the accepting sets as before

23 Flavio Lerda 23 LTL Model Checking Core Translation Make use of the following recurrence equations: –  U  =   (   X(  U  )) –  V  =   (   X(  V  )) The operator V (release) is the dual of U: –  V   (  U  ) We need V (release) because we want the formula in negation normal form –Negation appears only in front of atomic propositions The core translations only handles , , U, V: –Rewriting of: G  =  U false F  = true U 

24 Flavio Lerda 24 LTL Model Checking Example F p (T U p) Old:{} New:{T U p} Next:{} Old:{T U p} New:{T} Next:{T U p} Old:{T U p} New:{p} Next:{} Old:{T U p} New:{} Next:{T U p} Old:{T U p} Next:{T U p} Old:{T U p, p} New:{} Next:{} Old:{T U p, p} Next:{} Tp p Old:{} New:{} Next:{} Old:{} Next:{} T U p = p  (T  X(T U p)) 123

25 Flavio Lerda 25 LTL Model Checking Core Translation Node –Represent a sub-formula –Contain information about the past, the present and the future Conjunction of formulas as sets State –Represents a state in the final automaton –They are the nodes that have fully expanded

26 Flavio Lerda 26 LTL Model Checking Core Translation Expansion –Select a formula from the New field –If it is a literal, add it to the Old field –Otherwise     (New{  },Next{}) and (New{  },Next{})  U   (New{  },Next{  U  }) and (New{  },Next{})  V   (New{  },Next{  V  }) and (New{ ,  },Next{})  U    (   X(  U  ))  V    (   X(  V  ))

27 Flavio Lerda 27 LTL Model Checking Core Translation Nodes to states –If a node has no New formulas –Create a new node with all the Next formulas –Create an edge between the two nodes –Check if there is any equivalent state With the same Next field With the same Old field

28 Flavio Lerda 28 LTL Model Checking Core Translation Accepting states –Generalized Büchi automaton Multiple accepting sets –One for each Until sub-formula (  U  ) –Such that The Old field doesn’t contain  U  or The Old field does contain 

29 Flavio Lerda 29 LTL Model Checking Degeneralization Turn a generalized Büchi automaton into a Büchi automaton Consider as many copies of the automaton as the number of accepting sets Replace incoming edges from accepting states with edges to the next copy Each cycle must go through every copy Each cycle must contains accepting states from each accepting set

30 Flavio Lerda 30 LTL Model Checking Example T ab T ab T 1 1,2 2 F a  F b

31 Flavio Lerda 31 LTL Model Checking Example T ab T a T T ab T b T

32 Flavio Lerda 32 LTL Model Checking Example T ab T a T T ab T b T

33 Flavio Lerda 33 LTL Model Checking Example T ab T a T T ab T

34 Flavio Lerda 34 LTL Model Checking Example T ab T a T T

35 Flavio Lerda 35 LTL Model Checking Example T ab T a T T

36 Flavio Lerda 36 LTL Model Checking Optimizations Can be done at each stage Try to minimize –The number of states and transitions –The number of accepting states Involve –Strongly connected components –Fair (bi)simulation Expensive but –The Büchi automaton is usually small –The saving during verification can be very high


Download ppt "Flavio Lerda 1 LTL Model Checking Flavio Lerda. 2 LTL Model Checking LTL –Subset of CTL* of the form: A f where f is a path formula LTL model checking."

Similar presentations


Ads by Google