Abstract
Records are a composite data type available in most programming and specification languages, but they are not natively supported by Alloy. As a consequence, users often find themselves having to simulate records in ad hoc ways, a strategy that is error prone and often encumbers the analysis procedures. This paper proposes a conservative extension to the Alloy language to support record signatures. Uniqueness and completeness is imposed on the atoms of such signatures, while still supporting Alloy’s flexible signature hierarchy. The Analyzer has been extended to internally expand such record signatures as partial knowledge for the solving procedure. Evaluation shows that the proposed approach is more efficient than commonly used idioms.
This work is supported by the research project CONCORDE of the Defense Innovation Agency (AID) of the French Ministry of Defense (2019650090004707501), and by National Funds through the Portuguese funding agency, FCT - Fundação para a Ciência e a Tecnologia within project EXPL/CCI-COM/1637/2021.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
A particular case of generator axiom [3].
- 2.
Those allow to explore other static configurations, or initial states, or traces [1].
- 3.
The extended version of the Analyzer and all the models are available https://github.com/haslab/Electrum2/releases/tag/records-beta.
References
Brunel, J., Chemouil, D., Cunha, A., Macedo, N.: Simulation under arbitrary temporal logic constraints. In: 5th Workshop on Formal Integrated Development Environment, Porto, Portugal, October 2019
Chang, E.J.H.: Echo algorithms: depth parallel operations on general graphs. IEEE Trans. Softw. Eng. 8(4), 391–401 (1982)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis, revised edn. MIT Press, Cambridge (2016)
Lamport, L.: The part-time parliament. ACM Trans. Comput. Syst. 16(2), 133–169 (1998)
Macedo, N., Brunel, J., Chemouil, D., Cunha, A.: Pardinus: a temporal relational model finder. J. Autom. Reason. 66(4), 861–904 (2022). https://doi.org/10.1007/s10817-022-09642-2
Macedo, N., Cunha, A., Pessoa, E.: Exploiting partial knowledge for efficient model analysis. In: D’Souza, D., Narayan Kumar, K. (eds.) ATVA 2017. LNCS, vol. 10482, pp. 344–362. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-68167-2_23
Montaghami, V., Rayside, D.: Staged evaluation of partial instances in a relational model finder. In: Ait Ameur, Y., Schewe, K.D. (eds.) ABZ 2014. LNTCS, vol. 8477, pp. 318–323. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-43652-3_32
Torlak, E., Jackson, D.: Kodkod: a relational model finder. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 632–647. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-71209-1_49
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
Brunel, J., Chemouil, D., Cunha, A., Macedo, N. (2023). Adding Records to Alloy. In: Glässer, U., Creissac Campos, J., Méry, D., Palanque, P. (eds) Rigorous State-Based Methods. ABZ 2023. Lecture Notes in Computer Science, vol 14010. Springer, Cham. https://doi.org/10.1007/978-3-031-33163-3_16
Download citation
DOI: https://doi.org/10.1007/978-3-031-33163-3_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-33162-6
Online ISBN: 978-3-031-33163-3
eBook Packages: Computer ScienceComputer Science (R0)