Abstract
With the increasing complexity of the problems and systems arising nowadays, the use of multi-level models is becoming more frequent in practice. However, there are still few reports in the literature concerning methods for analyzing such models without flattening the multi-level structure. For instance, several variants of multi-level Petri nets have been applied for modeling interaction protocols and mobility in multi-agent systems and coordination of cross-organizational workflows. But there are few automated tools for analyzing the behavior of these nets. In this paper we explain how to detect faults in models based on a representative class of multi-level nets: the nested Petri nets. We translate a nested net into a verifiable model that preserves its modular structure, a PROMELA program. This allows the use of SPIN model checker to verify properties related to termination, boundedness and reachability.













Similar content being viewed by others
Notes
See the complete grammar at http://spinroot.com/spin/Man/grammar.html.
The skip statement is equivalent to the constant 1, i.e., it is always executable.
The rendezvous communication in PROMELA is not suitable for simulating the synchronizations in a NPN. A rendezvous statement can only be executed if a matching statement can be performed immediately; otherwise the process is blocked. This would prevent a net token from firing any other transition until the synchronization could be completed.
In case \(np=onp\), transpNetTok is not required. Besides, if t is unlabeled the entire code can be omitted. Also note that net-typed variables do not need a representation in the translation.
An inhibitor arc is enabled when the input place is empty.
Any sequence \(A_k\) may contain regions with priorities 4 or 5, not both.
See http://www.dropbox.com/s/28j8x7fhyx7ucdg/npn2cpn.rar?dl=0 for the models.
Error: value (256->0 (8)) truncated in assignment.
The first verification of the model may use the standard PROMELA receive statement, instead of the non-deterministic version.
References
Augusto, J., Butler, M., Ferreira, C., Craig, S.: Using SPIN and STeP to verify business processes specifications. Perspect. Syst. Inform. LNCS 2890, 207–213 (2003)
Barkaoui, K., Hicheur, A.: Towards analysis of flexible and collaborative workflow using recursive ECATN ets. In: ter Hofstede, A., Benatallah, B., Paik, H.-Y. (eds.) Business Process Management Workshops, LNCS, vol. 4928, pp. 232–244. Springer, Berlin, Heidelberg (2008)
Bednarczyk, M.A., Bernardinello, L., Pawlowski, W., Pomello, L.: Modelling mobility with Petri hypernets. In: Proceedings of 17th International Conference on Recent Trends in Algebraic Development Techniques, WADT’04, pp. 28–44 (2005)
Brat, G., Havelund, K., Park, S., Visser, W.: Java PathFinder-second generation of a Java model checker. In: Workshop on Advances in Verification (2000)
Cabac, L., Duvigneau, M., Moldt, D., Rölke, H.: Modeling dynamic architectures using nets-within-nets. In: Proceedings of International Conference on Applications and Theory of Petri Nets, LNCS, vol. 3536, pp. 148–167 (2005)
Ceška, M., Janoušek, V., Vojnar, T.: PNtalk—a computerized tool for object oriented Petri nets modelling. In: Computer Aided Systems Theory (EUROCAST’97), LNCS, vol. 1333, pp. 591–610. Springer, Berlin (1997)
Chang, L., He, X.: A model transformation approach for verifying multi-agent systems using SPIN. In: Proceedings ACM Symposium on Applied Computing, pp. 37–42 (2011)
Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.: The maude 2.0 system. In: Proceedings of 14th International Conference on Rewriting Techniques and Applications, LNCS, vol. 2706, pp. 76–87 (2003)
Dworzański, L., Lomazova, I.: CPN tools-assisted simulation and verification of nested Petri nets. Autom. Control Comput. Sci. 47(7), 393–402 (2013)
Eker, S., Meseguer, J., Sridharanarayanan, A.: The maude LTL model checker. In: Proceedings Workshop on Rewriting Logic and Its Applications, ENTCS, vol. 71, pp. 162–187 (2002)
Eshuis, R.: Symbolic model checking of UML activity diagrams. ACM Trans. Softw. Eng. Methodol. 15(1), 1–38 (2006)
Farwer, B., Leuschel, M.: Model checking object Petri nets in Prolog. In: Proceedings 6th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, pp. 20–31 (2004)
Frappier, M., Fraikin, B., Chossart, R., Chane-Yack-Fa, R., Ouenzar, M.: Comparison of model checking tools for information systems. In: Proceedings 12th International Conference on Formal Engineering Methods and Software Engineering, pp. 581–596 (2010)
Gallardo, M.M., Merino, P., Pimentel, E.: A generalized semantics of PROMELA for abstract model checking. Form. Asp. Comput. 16(3), 166–193 (2004)
Gannod, G.C., Gupta, S.: An automated tool for analyzing Petri nets using SPIN. In: Proceedings of 16th IEEE International Conference on Automated Software Engineering, pp. 404–407. IEEE Computer Society (2001)
Grahlmann, B., Pohl, C.: Profiting from SPIN in PEP. In: SPIN Workshop (1998)
Haddad, S., Poitrenaud, D.: Recursive Petri nets-theory and application to discrete event systems. Acta Inform. 44(7–8), 463–508 (2007)
Hicheur, A., Ben Dhieb, A., Barkaoui, K.: Modelling and analysis of flexible healthcare processes based on algebraic and recursive Petri nets. In: Weber, J., Perseil, I. (eds.) Foundations of Health Information Engineering and Systems, LNCS, vol. 7789, pp. 1–18. Springer, Berlin, Heidelberg (2013)
Hillah, L., Kordon, F., Petrucci, L., Trèves, N.: PNML framework: an extendable reference implementation of the Petri net markup language. In: Proceedings of International Conference on Applications and Theory of Petri Nets, LNCS, vol. 6128, pp. 318–327 (2010)
Holzmann, G.J.: Tutorial: design and validation of protocols. Tutor. Comput. Netw. ISDN Syst. 25, 981–1017 (1991)
Holzmann, G.J.: The model checker SPIN. IEEE Trans. Softw. Eng. 23(5), 279–295 (1997)
Holzmann, G.J.: An analysis of bitstate hashing. Form. Methods Syst. Des. 13(3), 289–307 (1998)
Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, Boston (2003)
Holzmann, G.J., Peled, D.: An improvement in formal verification. In: Proceedings of the 7th IFIP WG6.1 International Conference on Formal Description Techniques, pp. 197–211 (1995)
Jensen, K.: Coloured Petri Nets. Basic Concepts, Analysis Methods and Practical Use. Springer, Berlin (1992)
Jensen, K., Kristensen Rozenberg, L. (eds.): Coloured Petri Nets—Modeling and Validation of Concurrent Systems. Springer, Berlin (2009)
Jensen, K., Rozenberg, G. (eds.): High-Level Petri Nets: Theory and Application. Springer, Berlin (1991)
Kissoum, Y., Sahnoun, Z.: A recursive colored Petri nets semantics for AUML as base of test case generation. In: Proceedings IEEE/ACS International Conference on Computer Systems and Applications, pp. 785–792 (2008)
Koch, I.: Petri nets in systems biology. Softw. Syst. Model. 14(2), 703–710 (2015)
Köhler, M., Moldt, D., Rölke, H.: Modelling mobility and mobile agents using nets within nets. ICATPN, LNCS 2679, 121–139 (2003)
Kummer, O., Wienberg, F., Duvigneau, M., Schumacher, J., Köhler, M., Moldt, D., Rölke, H., Valk, R.: An extensible editor and simulation engine for Petri nets: Renew. In: Proceedings of International Conference on Applications and Theory of Petri Nets, LNCS, vol. 3099, pp. 484–493 (2004)
Lakos, C.: From coloured Petri nets to object Petri nets. In: ICATPN, LNCS, pp. 278–297. Springer, Berlin (1995)
Latella, D., Majzik, I., Massink, M.: Automatic verification of a behavioural subset of UML statechart diagrams using the SPIN model-checker. Form. Asp. Comput. 11(6), 637–664 (1999)
Lehmann K., Cabac, L., Moldt, D., Rölke H.: Towards a distributed tool platform based on mobile agents. In: Eymann, T., Klügl, F., Lamersdorf, W., Klusch, M., Huhns, M.N. (eds.) Multiagent System Technologies. LNCS, vol. 3550, pp. 179–190. Springer, Berlin, Heidelberg (2005)
Leuschel, M., Massart, T.: Logic programming and partial deduction for the verification of reactive systems: an experimental evaluation. In: Proceedings 2nd Workshop on Automated Verification of Critical Systems, pp. 143–150 (2002)
Leyla, N., Mashiyat, A.S., Wang, H., MacCaull, W.: Towards workflow verification. In: Proceedings Conference of the Center for Advanced Studies on Collaborative Research, pp. 253–267 (2010)
Lomazova, I.A.: Nested Petri nets—a formalism for specification and verification of multi-agent distributed systems. Fundam. Inf. 43(1–4), 195–214 (2000)
Lomazova, I.A.: Nested Petri nets: multilevel and recursive systems. Fundam. Inf. 47, 283–293 (2001)
Lomazova, I.A.: Recursive nested Petri nets: analysis of semantic properties and expressibility. Program. Comput. Softw. 27(4), 183–193 (2001)
Lomazova, I.A.: Modeling dynamic objects in distributed systems with nested Petri nets. Fundam. Inf. 51(1–2), 121–133 (2002)
Lomazova, I.A.: Nested Petri nets for adaptive process modeling. In: Avron, A., Dershowitz, N., Rabinovich, A. (eds.) Pillars of Computer Science, LNCS, vol. 4800, pp. 460–474. Springer, Berlin, Heidelberg (2008)
Lomazova, I.A., Schnoebelen, P.: Some decidability results for nested Petri nets. In: 3rd International Andrei Ershov Memorial Conference Perspectives of System Informatics’99, LNCS, vol. 1755, pp. 208–220 (2000)
Mascheroni, M., Farina, F.: Nets-within-nets paradigm and grid computing. In: Jensen, K., Donatelli, S., Kleijn, J. (eds.) Transactions on Petri Nets and Other Models of Concurrency V, LNCS, vol. 6900, pp. 201–220. Springer, Berlin, Heidelberg (2012)
Mateescu, R., Garavel, H.: XTL: a meta-language and tool for temporal logic model-checking. In: Proceedings of International Workshop on Software Tools for Technology Transfer, BRICS, pp. 33–42 (1998)
Murata, T.: Petri nets: properties, analysis and applications. Proc. IEEE 77(4), 541–580 (1989)
Natarajan, V., Holzmann, G.J.: Outline for an operational semantics of PROMELA. In: The SPIN Verification System. Proceedings of the 2nd SPIN Workshop 1996, DIMACS-Discrete Mathematics and Theoretical Computer Science, vol. 32 (1997)
Prisecaru, O., Jucan, T.: Interorganizational workflow nets: a Petri net based approach for modelling and analyzing interorganizational workflows. In: EOMAS, pp. 64–78 (2008)
Ratzer, A., Wells, L., Lassen, H., Laursen, M., Qvortrup, J., Stissing, M., Westergaard, M., Christensen, S., Jensen, K.: CPN tools for editing, simulating, and analysing coloured Petri nets. In: Proceedings of the International Conference on Applications and Theory of Petri Nets, LNCS, vol. 2679, pp. 450–462 (2003)
Regis, G., Ricci, N., Aguirre, N., Maibaum, T.: Specifying and verifying declarative fluent temporal logic properties of workflows. In: 15th Brazilian Symposium on Formal Methods, LNCS, vol. 7498, pp. 147–162 (2012)
Reisig, W. (ed.): Elements of Distributed Algorithms: Modeling and Analysis with Petri nets. Springer, Berlin (1998)
Ribeiro, L., dos Santos, O., Dotti, F., Foss, L.: Correct transformation: from object-based graph grammars to PROMELA. Sci. Comput. Program. 77(3), 214–246 (2012)
Ribeiro, O., Fernandes, J.: Translating synchronous Petri nets into PROMELA for verifying behavioural properties. In: International Symposium on Industrial Embedded Systems, pp. 266–273 (2007)
Ribeiro, O., Fernandes, J., Pinto, L.: Model checking embedded systems with PROMELA. In: IEEE International Conference Engineering of Computer-Based Systems, pp. 378–385 (2005)
Ruys, T.C., Holzmann, G.J.: Advanced SPIN tutorial. In: 11th International SPIN Workshop Model Checking Software, pp. 304–305 (2004)
Sbai, Z., Missaoui, A., Barkaoui, K., Ben Ayed, R.: On the verification of business processes by model checking techniques. In: Proceedings of the 2nd International Conference on Software Technology and Engineering, vol. 1 (2010)
Seghrouchni, A.F., Haddad, S.: A recursive model for distributed planning. In: Proceedings of International Conference on Multi-Agent Systems, pp. 307–314 (1996)
Szpyrka, M., Biernacka, A., Biernacki, J.: Methods of translation of Petri nets to NuSMV language. In: Proceedings of 23rd Workshop on Concurrency, Specification and Programming, pp. 245–256 (2014)
van der Aalst, W.M.P.: Business process management as the Killer App for Petri nets. Softw. Syst. Model. 14(2), 685–691 (2015)
Valk, R.: Petri nets as token objects: an introduction to elementary object nets. In: ICATPN, vol. 1420, pp. 1–25 (1998)
Valk, R.: Object Petri nets: using the nets-within-nets paradigm. In: Desel, J., Reisig, W., Rozenberg, G. (eds.) Lectures on Concurrency and Petri Nets, LNCS, vol. 3098, pp. 819–848. Springer, Berlin, Heidelberg (2004)
Venero, M.: Verifying cross-organizational workflows over multi-agent based environments. In: Barjis, J., Pergl, R. (eds.) Enterprise and Organizational Modeling and Simulation, LNBIP, vol. 191, pp. 38–58. Springer, Berlin, Heidelberg (2014)
Venero, M.L.F., da Silva, F.S.C.: On the use of SPIN for studying the behavior of Nested Petri nets. In: Iyoda, J., de Moura, L. (eds.) Formal Methods: Foundations and Applications. LNCS, vol. 8195, pp. 83–98. Springer, Berlin, Heidelberg (2013)
Weise, C.: An incremental formal semantics for PROMELA. In: Proceedings of 3rd International SPIN Workshop (1997)
Yamaguchi, S., Yamaguchi, M., Tanaka, M.: A soundness verification tool based on the SPIN model checker for acyclic workflow nets. In: Proceedings of 23rd International Conference on Circuits/Systems, Computers and Communications, pp. 285–288 (2008)
Acknowledgments
We are grateful to Gerard J. Holzmann for his prompt replies to several questions concerning the use of process priorities in SPIN. We also thank the anonymous reviewers for their comments and suggestions that helped to improve the presentation of this paper.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Esther Guerra and Wil M. P. van der Aalst.
This is an extended and complete version of a preliminary work presented in [62].
Appendices
Appendix 1: The code for dealing with channels representing net-typed places
The next embedded C code is used to count the number of request messages at a net place channel whose second field coincides with a given label. A similar C code can be used to compute the number of occurrences a given token at a channel representing a basic colored place(numTok). A call to the function numMsg should have the form numMsg(qptr(PProcName->c-1),i) where c is a channel and i is an integer. The prefix PProcName-> (e.g., Pinit-> ) is required to refer a local channel inside a c_expr. The prefix now. must be used instead for a global channel.

The inline definition recMsg below is used for receiving a request message from a channel in a non-deterministic way (denoted in Sect. 3 by the operator ?*). The definitions transpNetTok and consNetTok implement the operations for moving and removing all request messages of a given net token process at a net place, respectively. All net token processes at a place are terminated using consNetsAtPlace.

Appendix 2: PROMELA program for the NPN in Fig. 2
This appendix includes the PROMELA translation for the net components in Fig. 2, Sect. 2.2. The proctype definition corresponding to the Agent element net uses input parameters for na, nr and nc. Besides, the place p2 is unfolded into three uncolored places p2a, p2r and p2c [61]. Some non-shared places of \({ SN}\) have been declared as global variables because they are used to specify the LTL property p in Sect. 5.1. The complete model can be found at http://www.dropbox.com/s/et6mhll7ze17j6t/exNPNMAS.pml?dl=0.


Appendix 3: Outline for the translation of the NPN in Fig. 8
This section outlines the proctype definitions corresponding to the net components of the NPN in Fig. 8, Sect. 5.2. We have omitted several branches in the loops that are similar to those provided in this and previous examples. Here we note that the labels in \(L_v^+\) are not required by the translation. Hence, in the model the labels in \(L_v^-\) are numbered from 1 to 10 and MaxL is defined as 15. See the entire model at http://www.dropbox.com/s/dhxo1bg2d196lf0/prosecutionEx.rar?dl=0. The logic program implementing the object net can be found at http://edoc.sub.uni-hamburg.de/informatik/volltexte/2009/60/.


Rights and permissions
About this article
Cite this article
Fernández Venero, M.L., Corrêa da Silva, F.S. Model checking multi-level and recursive nets. Softw Syst Model 16, 1117–1144 (2017). https://doi.org/10.1007/s10270-015-0509-6
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-015-0509-6