Presentation is loading. Please wait.

Presentation is loading. Please wait.

Branching Processes of High-Level Petri Nets and Model Checking of Mobile Systems Maciej Koutny School of Computing Science Newcastle University with:

Similar presentations


Presentation on theme: "Branching Processes of High-Level Petri Nets and Model Checking of Mobile Systems Maciej Koutny School of Computing Science Newcastle University with:"— Presentation transcript:

1 Branching Processes of High-Level Petri Nets and Model Checking of Mobile Systems Maciej Koutny School of Computing Science Newcastle University with: R.Devillers, V.Khomenko, H.Klaudel, A.Niaouris UFO'07, Siedlce, Poland 2007

2 2 Outline Motivation Coloured Petri nets Expansion and unfolding Relationship diagram Experimental results Application: mobile systems π-calculus to Petri nets Implementation issues Experimental results Further work

3 3 Motivation Low-level PNs: Can be efficiently verified Not convenient for modelling High-level descriptions: Convenient for modelling Verification is hard Gap Coloured PNs: a good intermediate formalism

4 4 Coloured PNs 1 2 w<u+v vu w {1,2} {1..4}

5 5 Expansion 1 2 w<u+v v u w {1,2} {1..4} The expansion faithfully models the original net Blow up in size

6 6 Unfolding 1 2 w<u+v v u w {1,2} {1..4} 1 2 u=1 v=2 w=1 1 u=1 v=2 w=2 2

7 7 Example: computing GCD 3 2 2 1 1 0 1 u=3, v=2 u=2, v=1 u=1 v0v0 m n v u%v u v 0 u u {0..100}

8 8 Relationship diagram Coloured PNs unfolding Low-level prefix Coloured prefix unfolding Low-level PNs expansion ?

9 9 ~ Relationship diagram Coloured PNs unfolding Low-level prefix Coloured prefix unfolding Low-level PNs expansion

10 10 Relationship diagram 1 2 w<u+v v u w {1,2} {1..4} 1 2 u=1 v=2 w=1 12 u=1 v=2 w=2

11 11 Relationship diagram Coloured PNs unfolding Prefix unfolding Low-level PNs expansion

12 12 Benefits Avoiding an exponential blow up when building the expansion Definitions are similar to those for LL unfoldings, no new proofs All results and verification techniques for LL unfoldings are still applicable  Model checking algorithms  Canonicity, completeness, finiteness

13 13 Benefits Existing unfolding algorithms for LL PNs can easily be adapted  Usability of the total adequate order proposed in  All the heuristics improving the efficiency can be employed (e.g. concurrency relation and preset trees)  Parallel unfolding algorithm

14 14 Extensions: infinite place types v0v0 m n v u%v u v 0 u u {0..100}

15 15 Extensions: infinite place types v0v0 m n v u%v u v 0 u u N N N 3 2 2 1 1 0 1 u=3, v=2 u=2, v=1 u=1

16 16 Extensions: infinite place types v0v0 m n v u%v u v 0 u u 3 2 2 1 1 0 1 u=3, v=2 u=2, v=1 u=1 {0..2} {1..3} {1}

17 17 Refined expansion Coloured PNs unfolding Prefix unfolding Low-level PNs expansion

18 18 Experimental results Tremendous improvements for colour-intensive PNs (e.g. GCD) Negligible slow-down (<0.5%) for control- intensive PNs (e.g. Lamport’s mutual exclusion algorithm)

19 19 Application: mobility One of the main features of many crucial modern distributed computing systems Formal analysis and verification using process algebras like π-calculus Our aim: to alleviate the state space explosion problem during reachability analysis of mobile systems Using/adapting model checking algorithms based on unfoldings

20 20 Syntax (finite) Basic elements are channel (names) like a, b, c,... abinput prefix aboutput prefix τ internal prefix pref.Pfirst execute pref then P P+Qexecute P or Q P | Q execute P and Q in parallel ( ν c) Prestrict c within P A ├ PA is the set of all “known” channels _

21 21 Operational semantics Operational semantics defined using SOS rules such as: ¬ b є A ______________________________________ A ├ ac.P A {b} ├ {b/c} P One can then consider LTSs generated by π-terms, the associated behavioural properties, etc. ∩ ab

22 22 p-nets High level Petri nets where tokens can, e.g., be channels τ u vv a b transition is enabled if there is a suitable binding for u and v read arcs (non-directed) only for testing

23 23 p-nets High level nets where tokens can be, e.g., channels τ u vv a b transition is enabled if there is a suitable binding for u and v for instance u=a v=b

24 24 p-nets High level nets where tokens can be, e.g., channels τ u vv a b transition is enabled if there is a suitable binding for u and v for instance u=a v=b which leads to b

25 25 Holder places and read arcs τ u u u vvvv a b snd rcv Blue part (holder places) is related to channels Black part is related to control flow

26 26 Tag-place Used to maintain information about Known, New and Restricted channels Δ u v a UV _ V.v. K U.u. K v. R V. N e. N a.a. K Δ.RΔ.R

27 27 Tag-place Used to maintain information about Known, New and Restricted channels Δ u v a UV _ V.v. K U.u. K v. R V. N e. N a.a. K Δ.RΔ.R suitable binding u=U=a v=Δ V=e

28 28 Tag-place Used to maintain information about Known, New and Restricted channels Δ u v a UV _ V.v. K U.u. K v. R V. N e.Δ. K a.a. K suitable binding u=U=a v=Δ V=e generates ae and then LTS can be defined _

29 29 p-nets p-nets can be composed to mirror the operators in the process algebra: prefixing parallel composition choice communication

30 30 Model checking π-calculus Pi-calculus expression Safe High-level PN (p-nets) Automatic translation

31 31 Example 1 d u v UV V.v. K U.u. K v.v. K v. N e. N b.b. K v v uu U.u. K V.v. K U.u. K d.d. K b Uv {b,d} ├ ba.ad Uv UV _ _

32 32 Example 1 d u v UV V.v. K U.u. K v.v. K v. N e. N b.b. K v v uu U.u. K V.v. K U.u. K d.d. K b Uv UV _ binding u=U=b v=e

33 33 Example 1 d u v UV V.v. K U.u. K v.v. K v. N e.e. K b.b. K v v uu U.u. K V.v. K U.u. K d.d. K b Uv UV _ binding u=U=b v=e generates be e

34 34 Example 1 d u v UV V.v. K U.u. K v.v. K v. N e.e. K b.b. K v v uu U.u. K V.v. K U.u. K d.d. K b Uv UV _ e

35 35 Example 1 d u v UV V.v. K U.u. K v.v. K v. N e.e. K b.b. K v v uu U.u. K V.v. K U.u. K d.d. K b Uv UV _ binding u=U=e v=V=d e

36 36 Example 1 d u v UV V.v. K U.u. K v.v. K v. N e.e. K b.b. K v v uu U.u. K V.v. K U.u. K d.d. K b Uv UV _ binding u=U=e v=V=d generates ed e _

37 37 Example 2 b u v f. N b.b. K v Δ Δ.RΔ.R a.a. K UV a _ _ u V. N v. R U.u. K V.v. K {a,b} ├ (νc)ac.cb __ V.v. K U.u. K

38 38 Example 2 b u v f. N b.b. K v Δ Δ.RΔ.R a.a. K UV a _ _ u V. N v. R U.u. K V.v. K U.u. K binding u=U=a V=f v= Δ

39 39 Example 2 b u v b.b. K v Δ f.Δ. K a.a. K UV a _ _ u V. N v. R U.u. K V.v. K U.u. K binding u=U=a V=f v= Δ generates af _

40 40 Example 2 b u v b.b. K v Δ f.Δ. K a.a. K UV a _ _ u V. N v. R U.u. K V.v. K U.u. K

41 41 Example 2 b u v b.b. K v Δ f.Δ. K a.a. K UV a _ _ u V. N v. R U.u. K V.v. K U.u. K binding U=f u=Δ V=v=b

42 42 Example 2 b u v b.b. K v Δ f.Δ. K a.a. K UV a _ _ u V. N v. R U.u. K V.v. K U.u. K binding U=f u=Δ V=v=b generates fb _

43 43 Example 3 v f. N e.e. K v Δ.RΔ.R a.a. K a u d e Δ d.d. K UV τ v v u u U.u. K v. R V. N V.v. K U.u. K _ _ {a,e,d} ├ (νc)(ac.ec | ab.bd) ___

44 44 Example 3 v f. N e.e. K v Δ.RΔ.R a.a. K a u d e Δ d.d. K UV τ v v u u U.u. K v. R V. N V.v. K U.u. K _ _

45 45 Example 3 v f. N e.e. K v Δ.RΔ.R a.a. K a u d e Δ d.d. K UV τ v v u u U.u. K v. R V. N V.v. K U.u. K _ _ Δ

46 46 Example 3 v f. N e.e. K v Δ.RΔ.R a.a. K a u d e Δ d.d. K UV τ v v u u U.u. K v. R V. N V.v. K U.u. K _ _ Δ

47 47 Example 3 v e.e. K v f.Δ. K a.a. K a u d e Δ d.d. K UV τ v v u u U.u. K v. R V. N V.v. K U.u. K _ _ Δ

48 48 Example 3 v e.e. K v f.Δ. K a.a. K a u d e Δ d.d. K UV τ v v u u U.u. K v. R V. N V.v. K U.u. K _ _ Δ

49 49 Example 3 v e.e. K v f.Δ. K a.a. K a u d e Δ d.d. K UV τ v v u u U.u. K v. R V. N V.v. K U.u. K _ _ Δ

50 50 Model checking π-calculus pi-calculus expression Safe High-level PN (p-nets) PN unfolding Property Checking PUNF MPSat

51 51 Implementation issues Infinity of new channels Read arcs Non-safeness Partial-transition expansion Reducing the number of holder places

52 52 Example T ness NESS a h1 h2 h3 h4 a?ness

53 53 Example T ness NESS a h1 h2 h3 h4 h1!ness | h2!ness | h3!ness | h4!ness ness

54 54 Example T ness NESS a h1 h2 h3 h4 h1?addr1 | h2?addr2 | h3?addr3 | h4?addr4 ness

55 55 Example T ness NESS a h1 h2 h3 h4

56 56 Example T NESS a h1 h2 h3 h4 h h h!h1. h1!done. STOP + h?another1.addr1!h1. addr1!another1. h1!done.STOP ness

57 57 Experiments Problem Net Prefix |B| |E| Time Punf MPSat Time MWB |P| |T| Ness(2) 157 200 1413 127 <1 Ness(3) 319 415 5458 366 1 <1 Ness(4) 537 72424561 1299 6 <1 7 Ness(5) 811113993546 4078 46 <1 - Ness(6)1141167228122110431 411 311 - Ness(7)15272335701898226622904 8 -

58 58 Further work We need efficient extensions of the unfolding approach for read arcs Introduce a restricted form of recursion still allowing one to use model-checking Deal with the state space explosion caused by aspects other than high level of concurrency Further performance comparisons of this model with other model checkers

59 59 Thank you!


Download ppt "Branching Processes of High-Level Petri Nets and Model Checking of Mobile Systems Maciej Koutny School of Computing Science Newcastle University with:"

Similar presentations


Ads by Google