modelling and verifying mobile systems using graphs jo l
play

Modelling and Verifying Mobile Systems using -graphs Jol-Alexis - PowerPoint PPT Presentation

graphs Modelling and Verifying Mobile Systems using -graphs Jol-Alexis Bialkiewicz Joel-Alexis.Bialkiewicz@lip6.fr (joint work with Frdric Peschanski) UPMC Paris Universitas 1 / 26 Outline Introduction Introducing the


  1. graphs π • Modelling and Verifying Mobile Systems using π -graphs Joël-Alexis Bialkiewicz Joel-Alexis.Bialkiewicz@lip6.fr (joint work with Frédéric Peschanski) UPMC Paris Universitas 1 / 26

  2. Outline Introduction Introducing the pi-graphs Graph structures pi-box calculus Formal investigations Basic results Bisimulation framework Verification algorithm Conclusion and future works 2 / 26

  3. Outline Introduction Introducing the pi-graphs Graph structures pi-box calculus Formal investigations Basic results Bisimulation framework Verification algorithm Conclusion and future works 3 / 26

  4. Concurrent and mobile systems Concurrent systems ◮ Processor physical limits already brought parallel computing to end-users “The free lunch is over” [Sutter05] ◮ Sequential models no longer expressive enough = ⇒ concurrency unavoidable ◮ Concurrency not new, but harder to model and reason about About Mobility ◮ Concurrency = ⇒ several entities at once = ⇒ they may move wrt. one another ◮ Mobility : physical but also logical neighbours dynamically changing ◮ Statical approaches lack expressivity, current dynamic ones are complex Concurrent and Mobile Systems ◮ Programming approaches (CPU-level, programming-language constructs) ◮ Modeling approaches (formalisms, verification tools, abstraction techniques) ◮ Our approach : Modelling is programming (and vice versa , hopefully) 4 / 26

  5. Modeling Two schools: diagrams and programs ◮ Place-transition nets: “Intuitive”, simulation/verification tools ◮ Process-algebra: Better expressivity, compositionality and more implementations Our goals ◮ Hybrid formalism (diagram + corresponding process algebra): π -graphs ◮ Expressivity, intuitiveness ◮ Implementation and verification tools 5 / 26

  6. Outline Introduction Introducing the pi-graphs Graph structures pi-box calculus Formal investigations Basic results Bisimulation framework Verification algorithm Conclusion and future works 6 / 26

  7. Introducing the π -graphs graphs π • http://www-poleia.lip6.fr/~pesch/pigraphs A dual formalism ◮ A diagramatic language inspired by P/T nets ◮ A process algebra very close to the π -calculus A dual characterization ◮ graph rewriting semantics ◮ labelled transition systems (LTS) 7 / 26

  8. The graphical language White box (public name) n Boxes (names) Black box (private name) Gray box (dynamic name) n Empty box (binder) • Places (labels and actions) Observation (unmarked) (marked) τ Silent (internal action) Choice + a b Input b Links Output Reference/match a b Guard Parallel composition implicit (“disjoint” graphs) Termination (inert) implicit (empty graph) 8 / 26

  9. The graphical language White box (public name) n Boxes (names) Black box (private name) Gray box (dynamic name) n Empty box (binder) • Places (labels and actions) Observation (unmarked) (marked) τ Silent (internal action) Choice + a b Input b Links Output Reference/match a b Guard Parallel composition implicit (“disjoint” graphs) Termination (inert) implicit (empty graph) 8 / 26

  10. The graphical language White box (public name) n Boxes (names) Black box (private name) Gray box (dynamic name) n Empty box (binder) • Places (labels and actions) Observation (unmarked) (marked) τ Silent (internal action) Choice + a b Input b Links Output Reference/match a b Guard Parallel composition implicit (“disjoint” graphs) Termination (inert) implicit (empty graph) 8 / 26

  11. The graphical language White box (public name) n Boxes (names) Black box (private name) Gray box (dynamic name) n Empty box (binder) • Places (labels and actions) Observation (unmarked) (marked) τ Silent (internal action) Choice + a b Input b Links Output Reference/match a b Guard Parallel composition implicit (“disjoint” graphs) Termination (inert) implicit (empty graph) 8 / 26

  12. Example a + b 1 : ν c � a � + ν c � b � � ν c ( x ) . x � ν c � 9 / 26

  13. Example a + b 1 : ν c � a � + ν c � b � � ν c ( x ) . x � ν c � 9 / 26

  14. Example a + b 1 : ν c � a � + ν c � b � � ν c ( x ) . x � ν c � 9 / 26

  15. Example a + b 1 : ν c � a � + ν c � b � � ν c ( x ) . x � ν c � 9 / 26

  16. Example a + b 1 : ν c � a � + ν c � b � � ν c ( x ) . x � ν c � 9 / 26

  17. Example a + b 1 : ν c � a � + ν c � b � � ν c ( x ) . x � ν c � 9 / 26

  18. Example a + b 1 : ν c � a � + ν c � b � � ν c ( x ) . x � ν c � 9 / 26

  19. Example a + b b τ 1 : ν c � a � + ν c � b � � ν c ( x ) . x � ν c � − → 1 : b � ν c � 9 / 26

  20. Example a + b b • b 1 τ τ 1 : ν c � a � + ν c � b � � ν c ( x ) . x � ν c � − → 1 : b � ν c � − → 2 : b ⊳ 1 9 / 26

  21. Example a + b b • b 1 τ τ 2 : b ⊳ 1 ǫ 1 : ν c � a � + ν c � b � � ν c ( x ) . x � ν c � − → 1 : b � ν c � − → − → 0 9 / 26

  22. Compositionality and Scope Question What happens when names enter or exit the local system through interaction? 10 / 26

  23. Compositionality and Scope Question What happens when names enter or exit the local system through interaction? π -calculus Depends on the chosen semantic ... (early, late, symbolic, etc.) 10 / 26

  24. Compositionality and Scope Question What happens when names enter or exit the local system through interaction? π -calculus Depends on the chosen semantic ... (early, late, symbolic, etc.) π -graphs logical clocks [Lamport78] and gray boxes (escaped names [Peschanski04]) 10 / 26

  25. Open outputs Question What is the difference between ◮ Sending a public name over a public channel ◮ Sending a name over a private channel ◮ Sending a private name over a public channel 11 / 26

  26. Open outputs Question What is the difference between ◮ Sending a public name over a public channel ◮ The send is performed (simplest case) ◮ Sending a name over a private channel ◮ Sending a private name over a public channel 11 / 26

  27. Open outputs Question What is the difference between ◮ Sending a public name over a public channel ◮ The send is performed (simplest case) ◮ Sending a name over a private channel ◮ If no one can receive locally, then cannot send ◮ Sending a private name over a public channel 11 / 26

  28. Open outputs Question What is the difference between ◮ Sending a public name over a public channel ◮ The send is performed (simplest case) ◮ Sending a name over a private channel ◮ If no one can receive locally, then cannot send ◮ Sending a private name over a public channel ◮ The sent name escapes its scope ◮ [ π -calculus] bound output (HD) ◮ [ π -graph] escape label and gray box (not HD) 11 / 26

  29. Open outputs Question What is the difference between ◮ Sending a public name over a public channel ◮ The send is performed (simplest case) ◮ Sending a name over a private channel ◮ If no one can receive locally, then cannot send ◮ Sending a private name over a public channel ◮ The sent name escapes its scope ◮ [ π -calculus] bound output (HD) ◮ [ π -graph] escape label and gray box (not HD) ⇒ Same principle for receiving names from envir. (open inputs) 11 / 26

  30. Open outputs Question What is the difference between ◮ Sending a public name over a public channel ◮ The send is performed (simplest case) ◮ Sending a name over a private channel ◮ If no one can receive locally, then cannot send ◮ Sending a private name over a public channel ◮ The sent name escapes its scope ◮ [ π -calculus] bound output (HD) ◮ [ π -graph] escape label and gray box (not HD) ⇒ Same principle for receiving names from envir. (open inputs) Black box a private “name” only known locally White box a public name statically known everywhere Gray box an escaped name/clock value potentially known by external processes through interaction 11 / 26

  31. Open outputs and logical clocks: example b 1 : b � ν c � 12 / 26

  32. Open outputs and logical clocks: example b b • 1 τ 1 : b � ν c � − → 2 : b ⊳ 1 12 / 26

  33. Process-algebra view π -box calculus A process algebra similar to the π -calculus but: ◮ For each process term there exists a unique π -graph encoding (up-to structural congruence) ◮ Graphs as normal forms of terms Syntax Prefix: π ::= x � y � | x ⊳ y | x ( z ) | x ⊲ y | τ Process: 0 | π. P | P + P ′ | P | P ′ P ::= | [ x = y ]( z ) P ′ provided x , y �∈ fn ( P ′ ) Term: k : P where k ≥ 1 is a logical clock 13 / 26

  34. Operational semantics Principles π -graphs semantics through graph rewrites π -box semantics through labelled transition systems (LTS) 14 / 26

  35. Operational semantics Principles π -graphs semantics through graph rewrites π -box semantics through labelled transition systems (LTS) Example: open output π -box x �∈ Priv y ∈ Priv open τ k : x � y � . P − → k + 1 : x ⊳ k . P { k / y } π -graphs k τ k: − → k+1: clr ( x ) � = b x • x 14 / 26

  36. Outline Introduction Introducing the pi-graphs Graph structures pi-box calculus Formal investigations Basic results Bisimulation framework Verification algorithm Conclusion and future works 15 / 26

Recommend


More recommend