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.
If you cannot see the document below, the PDF document is most likely not freely accessible. In this case, please try to access the document via this link.
% BibTex
@inproceedings{BrunelCCM23,
author = {Julien Brunel and
David Chemouil and
Alcino Cunha and
Nuno Macedo},
editor = {Uwe Gl{\"{a}}sser and
Jos{\'{e}} Creissac Campos and
Dominique M{\'{e}}ry and
Philippe A. Palanque},
title = {Adding Records to Alloy},
booktitle = {Rigorous State-Based Methods - 9th International Conference, {ABZ}
2023, Nancy, France, May 30 - June 2, 2023, Proceedings},
series = {Lecture Notes in Computer Science},
volume = {14010},
pages = {212--219},
publisher = {Springer},
year = {2023},
url = {https://doi.org/10.1007/978-3-031-33163-3\_16},
doi = {10.1007/978-3-031-33163-3\_16},
timestamp = {Tue, 25 Jun 2024 21:03:18 +0200},
biburl = {https://dblp.org/rec/conf/zum/BrunelCCM23.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}