Abstract
Complex abstract data types are often used to facilitate creating concise models of the behavior of realistic systems. However, static analysis techniques that aim to optimize such models often consider variables of complex types as a single indivisible unit. The use of complex data types thus negatively affects the optimizations that can be performed. In this paper we revisit and extend a technique by Groote and Lisser that can be used to replace a single, complex variable by multiple variables of simpler data types, improving the effectiveness of other static analyzes. We describe the technique in the context of the process algebraic specification language mCRL2, and establish its correctness. We demonstrate using an implementation in the mCRL2 toolset that it sometimes reduces the size of the underlying state spaces, and it typically reduces the verification times when using symbolic model checking.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
The definition using alternative case placement can be modified to take global variables into account in the same way.
- 2.
The SDs for the only cases where it exceeds 10% of the mean are: fourinarow4-3 standard 1.7, sla7 new.def: 0.3, tictactoe3-3 standard: 2.0, wms standard: 2.5, original: 2.2, new.def: 1.9.
References
Blom, S., Fokkink, W., Groote, J.F., van Langevelde, I., Lisser, B., van de Pol, J.: \(\upmu \)CRL: a toolset for analysing algebraic specifications. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 250–254. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-44585-4_23
Blom, S., van de Pol, J.: Symbolic reachability for process algebras with recursive data types. In: Fitzgerald, J.S., Haxthausen, A.E., Yenigun, H. (eds.) ICTAC 2008. LNCS, vol. 5160, pp. 81–95. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-85762-4_6
Bunte, O., et al.: The mCRL2 toolset for analysing concurrent systems. In: Vojnar, T., Zhang, L. (eds.) TACAS 2019. LNCS, vol. 11428, pp. 21–39. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-17465-1_2
Bunte, O., Gool, L.C.M., Willemse, T.A.C.: Formal verification of OIL component specifications using mCRL2. In: ter Beek, M.H., Ničković, D. (eds.) FMICS 2020. LNCS, vol. 12327, pp. 231–251. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-58298-2_10
Cerf, V., Kahn, R.: A protocol for packet network intercommunication. IEEE Trans. Commun. 22(5), 637–648 (1974). https://doi.org/10.1109/TCOM.1974.1092259
Groote, J.F., Lisser, B.: Computer assisted manipulation of algebraic process specifications. Technical report SEN-R0117, CWI (2001). https://ir.cwi.nl/pub/4326/
Groote, J.F., Mousavi, M.R.: Modeling and Analysis of Communicating Systems. The MIT Press, Cambridge (2014)
Groote, J.F., Willemse, T.A.C.: Parameterised Boolean equation systems. Theoret. Comput. Sci. 343(3), 332–369 (2005). https://doi.org/10.1016/j.tcs.2005.06.016
Groote, J.F., Willemse, T.A.C.: A symmetric protocol to establish service level agreements. Log. Methods Comput. Sci. 16(3) (2020). https://doi.org/10.23638/LMCS-16(3:19)2020
Keiren, J.J.A., Wesselink, W., Willemse, T.A.C.: Liveness analysis for parameterised Boolean equation systems. In: Cassez, F., Raskin, J.-F. (eds.) ATVA 2014. LNCS, vol. 8837, pp. 219–234. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11936-6_16
Meijer, J., Kant, G., Blom, S., van de Pol, J.: Read, write and copy dependencies for symbolic model checking. In: Yahav, E. (ed.) HVC 2014. LNCS, vol. 8855, pp. 204–219. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-13338-6_16
Neele, T.: (Re)moving quantifiers to simplify parameterised Boolean equation systems. In: ARQNL 2022, vol. 3326, pp. 64–80. CEUR-WS (2022)
Orzan, S., Wesselink, W., Willemse, T.A.C.: Static analysis techniques for parameterised Boolean equation systems. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol. 5505, pp. 230–245. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-00768-2_22
Remenska, D., Willemse, T.A.C., Verstoep, K., Templon, J., Bal, H.: Using model checking to analyze the system behavior of the LHC production grid. Futur. Gener. Comput. Syst. 29(8), 2239–2251 (2013). https://doi.org/10.1016/j.future.2013.06.004
Stramaglia, A., Keiren, J.J.A.: Formal verification of an industrial UML-like model using mCRL2. In: Groote, J.F., Huisman, M. (eds.) FMICS 2022. LNCS, vol. 13487, pp. 86–102. Springer, LNCS (2022). https://doi.org/10.1007/978-3-031-15008-1_7
van de Pol, J., Timmer, M.: State space reduction of linear processes using control flow reconstruction. In: Liu, Z., Ravn, A.P. (eds.) ATVA 2009. LNCS, vol. 5799, pp. 54–68. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-04761-9_5
Van Dijk, T., van de Pol, J.: Sylvan: multi-core framework for decision diagrams. Int. J. Softw. Tools Technol. Transf. 19(6), 675–696 (2017). https://doi.org/10.1007/s10009-016-0433-2
Acknowledgements
Michel Reniers and Frank Stappers previously described Groote and Lisser’s original definition of parameter unfolding in an unpublished note. Some of our notation is inspired by their note.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Stramaglia, A., Keiren, J.J.A., Neele, T. (2023). Simplifying Process Parameters by Unfolding Algebraic Data Types. In: Ábrahám, E., Dubslaff, C., Tarifa, S.L.T. (eds) Theoretical Aspects of Computing – ICTAC 2023. ICTAC 2023. Lecture Notes in Computer Science, vol 14446. Springer, Cham. https://doi.org/10.1007/978-3-031-47963-2_24
Download citation
DOI: https://doi.org/10.1007/978-3-031-47963-2_24
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-47962-5
Online ISBN: 978-3-031-47963-2
eBook Packages: Computer ScienceComputer Science (R0)