ACM Transactions on Programming Languages and Systems (TOPLAS)
The Z notation: a reference manual
The Z notation: a reference manual
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Alloy: a lightweight object modelling notation
ACM Transactions on Software Engineering and Methodology (TOSEM)
A type system for object models
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Efficient Analysis of DynAlloy Specifications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Implementation and use of the PLT scheme Web server
Higher-Order and Symbolic Computation
A Framework for Establishing Formal Conformance between Object Models and Object-Oriented Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Alchemy: transmuting base alloy specifications into implementations
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Application of theorem proving to problem solving
IJCAI'69 Proceedings of the 1st international joint conference on Artificial intelligence
PROW: a step toward automatic program writing
IJCAI'69 Proceedings of the 1st international joint conference on Artificial intelligence
Translating alloy specifications to UML class diagrams annotated with OCL
SEFM'11 Proceedings of the 9th international conference on Software engineering and formal methods
An imperative extension to alloy
ABZ'10 Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z
Hi-index | 0.00 |
The Alloy modeling language has a mathematically rigorous denotational semantics based on relational algebra. Alloy specifications often represent operations on a state, suggesting a transition-system semantics. Because Alloy does not intrinsically provide a notion of state, however, this interpretation is only implicit in the relational-algebra semantics underlying the Alloy Analyzer. In this paper we demonstrate the subtlety of representing state in Alloy specifications. We formalize a natural notion of transition semantics for state-based specifications and show examples of specifications in this class for which analysis based on relational algebra can induce false confidence in designs. We characterize the class of facts that guarantees that Alloy's analysis is sound for state-transition systems, and offer a sufficient syntactic condition for membership in this class. We offer some practical evaluation of the utility of this syntactic discipline and show how it provides a foundation for program synthesis from Alloy.