A Symbolic Model Checker for Petri Nets: pnmc

  • Alexandre Hamez
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9930)


Symbolic model checking with decision diagrams is a very efficient technique for handling large models. However, even when using advanced algorithms, model checking tools still need to be carefully written. Indeed, they are both CPU and memory bounded: in addition to the algorithms complexity, the limiting factors are the available memory and how fast computations are performed. Thus, each saved CPU cycle or byte can make the difference between a successful model checker and a failing one.

We present pnmc, a symbolic model checker for Petri Nets, and libsdd, its associated library which implements Hierarchical Set Decision Diagrams and automatic saturation. Reliability aside, choices were always made to favour performance.

The combination of advanced algorithms for symbolic model checking and advanced coding techniques offer very good results as shown in the Model Checking Contest 2015, which is used as a background to present pnmc and libsdd.


Tool Petri nets Symbolic model checking Decision diagrams 



Part of this work was done at the ISAE-SUPAERO institute.

We are very grateful to Bernard Berthomieu for his guidance in writing the transition relation for Time Petri Nets with discrete semantics.

Finally, none of this work would have been possible without the help of Alban Linard on the first version of the libsdd library, which laid out all the important concepts of the current version.


  1. 1.
    libDDD web site.
  2. 2.
    Aloul, F.A., Markov, I.L., Sakallah, K.A.: Force: a fast and easy-to-implement variable-ordering heuristic. In: Proceedings of the 13th ACM Great Lakes Symposium on VLSI, GLSVLSI 2003, pp. 116–119. ACM, New York (2003).
  3. 3.
    Berthomieu, B., Ribet, P.O., Vernadat, F.: The tool TINA - construction of abstract state spaces for petri nets and time petri nets. Int. J. Prod. Res. 42(14), 2741–2756 (2004)CrossRefzbMATHGoogle Scholar
  4. 4.
    Bollig, B., Wegener, L.: Improving the variable ordering of OBDDs is NP-complete. IEEE Trans. Comput. 45(9), 993–1002 (1996)CrossRefzbMATHGoogle Scholar
  5. 5.
    Bryant, R.: Graph-based algorithms for Boolean function manipulation. IEEE Trans. Comput. 35(8), 677–691 (1986)CrossRefzbMATHGoogle Scholar
  6. 6.
    Burch, J., Clarke, E., McMillan, K.: Symbolic model checking: \(10^{20}\) states and beyond. Inf. Comput. 98(2), 153–181 (1992). Special issue for best papers from LICS90MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Ciardo, G., Jones, R.L., Miner, A.S., Siminiceanu, R.I.: Logical and stochastic modeling with Smart. In: Kemper, P., Sanders, W.H. (eds.) TOOLS 2003. LNCS, vol. 2794, pp. 78–97. Springer, Heidelberg (2003). CrossRefGoogle Scholar
  8. 8.
    Ciardo, G., Lüttgen, G., Siminiceanu, R.I.: Saturation: an efficient iteration strategy for symbolic state-space generation. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 328–342. Springer, Heidelberg (2001). CrossRefGoogle Scholar
  9. 9.
    Clarke, E., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (2000)Google Scholar
  10. 10.
    Couvreur, J.-M., Encrenaz, E., Paviot-Adet, E., Poitrenaud, D., Wacrenier, P.-A.: Data decision diagrams for petri net analysis. In: Esparza, J., Lakos, C.A. (eds.) ICATPN 2002. LNCS, vol. 2360, pp. 101–120. Springer, Heidelberg (2002). CrossRefGoogle Scholar
  11. 11.
    Couvreur, J.-M., Thierry-Mieg, Y.: Hierarchical decision diagrams to exploit model structure. In: Wang, F. (ed.) FORTE 2005. LNCS, vol. 3731, pp. 443–457. Springer, Heidelberg (2005). CrossRefGoogle Scholar
  12. 12.
    Garavel, H.: Nested-unit petri nets: a structural means to increase efficiency and scalability of verification on elementary nets. In: Devillers, R., Valmari, A. (eds.) PETRI NETS 2015. LNCS, vol. 9115, pp. 179–199. Springer, Heidelberg (2015). CrossRefGoogle Scholar
  13. 13.
    Hamez, A., Thierry-Mieg, Y., Kordon, F.: Building efficient model checkers using hierarchical set decision diagrams and automatic saturation. Fundam. Inf. 94(3–4), 413–437 (2009). MathSciNetzbMATHGoogle Scholar
  14. 14.
    Hong, S., Kordon, F., Paviot-Adet, E., Evangelista, S.: Computing a hierarchical static order for decision diagram-based representation from P/T nets. In: Jensen, K., Donatelli, S., Kleijn, J. (eds.) Transactions on Petri Nets and Other Models of Concurrency V. LNCS, vol. 6900, pp. 121–140. Springer, Heidelberg (2012). CrossRefGoogle Scholar
  15. 15.
    Kordon, F., Garavel, H., Hillah, L.M., Hulin-Hubard, F., Linard, A., Beccuti, M., Evangelista, S., Hamez, A., Lohmann, N., Lopez, E., Paviot-Adet, E., Rodriguez, C., Rohr, C., Srba, J.: HTML Results from the Model Checking Contest @ Petri Net, 2014th edn. (2014).
  16. 16.
    Thierry-Mieg, Y., Bérard, B., Kordon, F., Lime, D., Roux, O.H.: Compositional analysis of discrete time petri nets. In: Proceedings of the 1st Workshop on Petri Nets Compositions (CompoNet 2011), vol. 726, pp. 17–31. CEUR, Newcastle, June 2011Google Scholar
  17. 17.
    Thierry-Mieg, Y.: Symbolic model-checking using its-tools. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 231–237. Springer, Heidelberg (2015). Google Scholar
  18. 18.
    Thierry-Mieg, Y., Poitrenaud, D., Hamez, A., Kordon, F.: Hierarchical set decision diagrams and regular models. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol. 5505, pp. 1–15. Springer, Heidelberg (2009). CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  1. 1.Steery.ioDonnevilleFrance

Personalised recommendations