Applying Petri Net Unfoldings for Verification of Mobile Systems Apostolos Niaouris Joint work with V. Khomenko, M. Koutny MOCA ‘06
2 Outline Mobility and π-calculus Model checking π-calculus p-nets Translation from π-calculus to p-nets Implementation issues Examples and experimental results Next steps
3 Mobility and π-calculus Mobility – one of the main features of many crucial modern distributed computing systems of ever growing complexity Formal analysis and verification using process algebras like π-calculus π-calculus can express dynamic changes in a process ability to communicate with the external environment, by passing references (channels) through interactions on previously known channels
4 π-calculus Syntax of π-calculus countably infinite set of channels Free channels of P: fn(P) Agent obtained from P by replacing all free occurrences of c by b: {b/c}P Well-formed π-calculus expression
5 Representing π-calculus Context-based expressions set of restricted channels set of channel holders partial mapping
6 Representing π-calculus Context-based expressions set of restricted channels set of channel holders partial mapping type-I type-K type-R
7 Model checking π-calculus Pi-calculus expression At the moment, only finite pi-calculus is supported
8 Model checking π-calculus Pi-calculus expression Safe High-level PN (p-nets) Automatic translation
9 p-nets Transitions Places
10 p-nets Transitions Places
11 p-nets Transitions Places
12 p-nets Transitions Places
13 p-nets Transitions Places Tag-place
14 Operators for p-nets Operators for choice, parallel composition and restriction
15 From π-calculus to p-nets 1.Translation of base process 0 and the three prefixes
16 From π-calculus to p-nets 2.For compound sub-expressions 3.Restriction operator 4.Tokens
17 Model checking π-calculus Pi-calculus expression Safe High-level PN (p-nets) PN unfolding Property Checking PUNF MPSat
18 Implementation issues Infinity of new channels Read arcs Non-safeness Partial-transition expansion Reducing the number of holder places
19 Example Classroom example Scalable specification 1 teacher process 3,4 student processes Check for proper termination
20 Example T ness NESS a h1 h2 h3 h4 a?ness
21 Example T ness NESS a h1 h2 h3 h4 h1!ness | h2!ness | h3!ness | h4!ness ness
22 Example T ness NESS a h1 h2 h3 h4 h1?addr1 | h2?addr2 | h3?addr3 | h4?addr4 ness
23 Example T ness NESS a h1 h2 h3 h4
24 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
25 Experiments
26 Experiments
27 Experiments Problem Net Prefix |B| |E| Time Punf MPSat Time MWB |P| |T| Ness(2):III <1 Ness(3):III <1 Ness(4):III <1 7 Ness(5):III <1 - Ness(6):III Ness(7):III
28 Next steps 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 approaches