Verifying Parallel Algorithms and Programs Using Coloured Petri Nets

Part of the Lecture Notes in Computer Science book series (LNCS, volume 7400)


Coloured Petri nets have proved to be a useful formalism for modeling distributed algorithms, i.e., algorithms where nodes communicate via message passing. Here we describe an approach for automatic extraction of models of parallel algorithms and programs, i.e., algorithms and programs where processes communicate via shared memory. The models can be verified for correctness, here to prove absence of mutual exclusion violations and to find dead- and live-locks. This makes it possible to verify software using a model-extraction approach using coloured Petri nets, where a formal model is extracted from runnable code. We extract models in a manner so we can also support a model-driven development approach, where code is generated from a model, enabling a combined approach, supporting extracting a model from an abstract description and generation of correct implementation code. We illustrate our idea by applying the technique to a parallel implementation of explicit state-space exploration.

Our approach builds on having a coloured Petri net model corresponding to the program and using the model to verify properties. We have already treated generation of code from coloured Petri nets, so in this paper we focus on the translation the other way around. We have an implementation of the translation from code to coloured Petri nets.


Parallel Algorithm Process Place Dead State Shared Place Substitution Transition 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Billington, J., Wilbur-Ham, M., Bearman, M.: Automated protocol Verification. In: Proc. of IFIP WG 6.1 5th International Workshop on Protocol Specification, Testing, and Verification, pp. 59–70. Elsevier (1985)Google Scholar
  2. 2.
    Kristensen, L.M., Jørgensen, J.B., Jensen, K.: Application of Coloured Petri Nets in System Development. In: Desel, J., Reisig, W., Rozenberg, G. (eds.) ACPN 2003. LNCS, vol. 3098, pp. 626–685. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  3. 3.
    Kristensen, L.M., Jensen, K.: Specification and Validation of an Edge Router Discovery Protocol for Mobile Ad Hoc Networks. In: Ehrig, H., Damm, W., Desel, J., Große-Rhode, M., Reif, W., Schnieder, E., Westkämper, E. (eds.) INT 2004. LNCS, vol. 3147, pp. 248–269. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  4. 4.
    Espensen, K., Kjeldsen, M., Kristensen, L.: Modelling and Initial Validation of the DYMO Routing Protocol for Mobile Ad-Hoc Networks. In: van Hee, K.M., Valk, R. (eds.) PETRI NETS 2008. LNCS, vol. 5062, pp. 152–170. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  5. 5.
    Jensen, K., Kristensen, L.: Coloured Petri Nets – Modelling and Validation of Concurrent Systems. Springer (2009)Google Scholar
  6. 6.
    Westergaard, M., Maggi, F.M.: Modeling and Verification of a Protocol for Operational Support Using Coloured Petri Nets. In: Kristensen, L.M., Petrucci, L. (eds.) PETRI NETS 2011. LNCS, vol. 6709, pp. 169–188. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  7. 7.
    Yakovlev, A., Gomes, L., Lavagno, L.: Hardware Design and Petri Nets. Kluwer Academic Publishers (2000)Google Scholar
  8. 8.
    IEEE Standard System C Language Reference Manual. IEEE-1666Google Scholar
  9. 9.
    Rasmussen, J.L., Singh, M.: Designing a Security System by Means of Coloured Petri Nets. In: Billington, J., Reisig, W. (eds.) ICATPN 1996. LNCS, vol. 1091, pp. 400–419. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  10. 10.
    Kristensen, L.M., Westergaard, M.: Automatic Structure-Based Code Generation from Coloured Petri Nets: A Proof of Concept. In: Kowalewski, S., Roveri, M. (eds.) FMICS 2010. LNCS, vol. 6371, pp. 215–230. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  11. 11.
    The FeaVer Feature Verification System webpage,
  12. 12.
    Holzmann, G.: The SPIN Model Checker. Addison-Wesley (2003)Google Scholar
  13. 13.
    Havelund, K., Presburger, T.: Model Checking Java Programs Using Java PathFinder. STTT 2(4), 366–381 (2000)zbMATHCrossRefGoogle Scholar
  14. 14.
    Ball, T., Rajamani, S.: The SLAM project: debugging system software via static analysis. In: Proc. of POPL, pp. 1–3. ACM Press (2002)Google Scholar
  15. 15.
    Beyer, D., Henzinger, T., Jhala, R., Majumdar, R.: The Software Model Checker BLAST: Applications to Software Engineering. STTT 7(5), 505–525 (2007)CrossRefGoogle Scholar
  16. 16.
    Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-Guided Abstraction Refinement for Symbolic Model Checking. J. ACM 50, 752–794 (2003)MathSciNetCrossRefGoogle Scholar
  17. 17.
    Westergaard, M.: Towards Verifying Parallel Algorithms and Programs using Coloured Petri Nets. In: Proc. of PNSE. CEUR Workshop Proceedings, vol. 723, pp. 57–71. (2011)Google Scholar
  18. 18.
    van der Aalst, W., van Hee, K.: Workflow Management: Models, Methods, and Systems. MIT Press (2002)Google Scholar
  19. 19.
    Westergaard, M., Maggi, F.: Modelling and Verification of a Protocol for Operational Support using Coloured Petri Nets. Submitted to Fundamenta InformaticaeGoogle Scholar
  20. 20.
    Peled, D.: All from One, One for All: On Model Checking Using Representatives. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, pp. 409–423. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  21. 21.
    Valmari, A.: Stubborn Sets for Reduced State Space Generation. In: Rozenberg, G. (ed.) APN 1990. LNCS, vol. 483, pp. 491–515. Springer, Heidelberg (1991)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  1. 1.Department of Mathematics and Computer ScienceEindhoven University of TechnologyThe Netherlands

Personalised recommendations