SNAKES: A Flexible High-Level Petri Nets Library (Tool Paper)

  • Franck PommereauEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9115)


SNAKES (SNAKES is the Net Algebra Kit for Editors and Simulators) is a general purpose Petri nets library, primarily for the Python programming language but portable to other ones. It defines a very general variant of Python-coloured Petri nets that can be created and manipulated through the library, as well as executed to explore state spaces. Thanks to a variety of plugins, SNAKES can handle extensions of Petri nets, in particular algebras of Petri nets [4, 26]. SNAKES ships with a compiler for the ABCD language that is precisely such an algebra. Finally, one can use the companion tool Neco [14] that compiles a Petri net into an optimised library allowing to compute efficiently its state space or perform LTL model-checking thanks to library SPOT [8, 13]. This paper describes SNAKES’ structure and features.


Petri nets library Prototyping Simulation Model-checking 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Beazley, D.M., Fulton, W.: SWIG – Simplified Wrapper and Interface Generator.
  2. 2.
    Behnel, S., Bradshaw, R., Dalcín, L., Florisson, M., Makarov, V., Seljebotn, D.S.: Cython – C-extensions for Python.
  3. 3.
    Berthomieu, B., Vernadat, F.: Time Petri nets analysis with TINA. In: Proc. of QEST 2006. IEEE Computer Society (2006)Google Scholar
  4. 4.
    Best, E., Devillers, R., Koutny, M.: Petri net algebra. Springer (2001)Google Scholar
  5. 5.
    Bilgin, A., Ellson, J., Gansner, E., Hu, Y., North, S.: Graphviz – Graph Visualization Software.
  6. 6.
    Chaou, S., Utard, G., Pommereau, F.: Evaluating a peer-to-peer storage system in presence of malicious peers. In: Proceedings of HPCS 2011. IEEE Computer Society (2011)Google Scholar
  7. 7.
    Di Guisto, C., Klaudel, H., Delaplace, F.: Systemic approach for toxicity analysis. In: Proc. of BioPPN 2014. Workshop Proceedings, vol. 1159. CEUR (2014)Google Scholar
  8. 8.
    Duret-Lutz, A.: LTL translation improvements in Spot. In: Proc. of VECoS 2011. Electronic Workshops in Computing, British Computer Society (2011)Google Scholar
  9. 9.
    Evangeliste, S.: HELENA, a high level net analyzer.
  10. 10.
    Free Software Foundation: GNU Lesser General Public License.
  11. 11.
    Fronc, Ł.: Neco net compiler.
  12. 12.
    Fronc, Ł.: Effective marking equivalence checking in systems with dynamic process creation. In: Proc. of Infinity 2012. Electronic Proceedings in Theoretical Computer Science (2012)Google Scholar
  13. 13.
    Fronc, Ł., Duret-Lutz, A.: LTL model checking with neco. In: Van Hung, D., Ogawa, M. (eds.) ATVA 2013. LNCS, vol. 8172, pp. 451–454. Springer, Heidelberg (2013) Google Scholar
  14. 14.
    Fronc, Ł., Pommereau, F.: Building Petri nets tools around Neco compiler. In: Proc. of PNSE 2013 (2013)Google Scholar
  15. 15.
    Gava, F., Pommereau, F., Guedj, M.: A BSP algorithm for on-the-fly checking CTL* formulas on security protocols. The Journal of Supercomputing (2014)Google Scholar
  16. 16.
    Group, T.C.: CPN tools.
  17. 17.
    Haddad, S., Kordon, F., Petruci, L.: CosyVerif.
  18. 18.
    Jensen, K., Kristensen, L.M.: Coloured Petri Nets, Monographs in Theoretical Computer Science, vol. 2. Springer (1997)Google Scholar
  19. 19.
    Kindler, E., Weber, M.: The Petri Net Kernel: An infrastructure for building Petri net tools. Software Tools for Technology Transfer 3 (1999)Google Scholar
  20. 20.
    Klaudel, H., Koutny, M., Pelz, E., Pommereau, F.: State space reduction for dynamic process creation. Scientific Annals of Computer Science 20 (2010)Google Scholar
  21. 21.
    Mohamed, M., Amziani, M., Belaïd, D., Tata, S., Melliti, T.: An autonomic approach to manage elasticity of business processes in the Cloud. Future Generation Computer Systems (2014) (To appear)Google Scholar
  22. 22.
  23. 23.
    Pommereau, F.: Quickly prototyping Petri nets tools with SNAKES. Petri net newsletter 10 (2008)Google Scholar
  24. 24.
    Pommereau, F.: Quickly prototyping Petri nets tools with SNAKES. In: Proc. of PNTAP 2008. ACM Digital Library. ACM (2008)Google Scholar
  25. 25.
    Pommereau, F.: Nets in nets with SNAKES. In: Proc. of MOCA 2009. Universität Hamburg, Dept. Informatik, Hamburg (2009)Google Scholar
  26. 26.
    Pommereau, F.: Algebras of coloured Petri nets. Lambert Academic Publishing (2010)Google Scholar
  27. 27.
    Python Software Foundation: Alternative Python implementations.
  28. 28.
    Reinke, C.: Haskell-coloured petri nets. In: Koopman, P., Clack, C. (eds.) IFL 1999. LNCS, vol. 1868, pp. 165–180. Springer, Heidelberg (2000) Google Scholar
  29. 29.
    Sanjabi, S., Pommereau, F.: Modelling, verification, and formal analysis of security properties in a P2P system. In: Proceedings of COLSEC 2010. IEEE Digital Library. IEEE Computer Society (2010)Google Scholar
  30. 30.
    Van Pham, V.: Modelling and analysing open reconfigurable systems. Ph.D. thesis, Univ. Évry / Paris-Saclay (2014)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.IBISC, University of Évry/Paris-SaclayÉvry CedexFrance

Personalised recommendations