Systematic software development using VDM
Systematic software development using VDM
Understanding Z: a specification language and its formal semantics
Understanding Z: a specification language and its formal semantics
Predicate calculus and program semantics
Predicate calculus and program semantics
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
The Unified Modeling Language user guide
The Unified Modeling Language user guide
Alcoa: the alloy constraint analyzer
Proceedings of the 22nd international conference on Software engineering
Automating first-order relational logic
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
COM revisited: tool-assisted modelling of an architectural framework
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Alloy: a lightweight object modelling notation
ACM Transactions on Software Engineering and Methodology (TOSEM)
Symbolic Model Checking
Dynamic Logic
Fork Algebras in Algebra, Logic and Computer Science
Fork Algebras in Algebra, Logic and Computer Science
Interpretability of First-Order Dynamic Logic in a Relational Calculus
ReIMICS '01 Revised Papers from the 6th International Conference and 1st Workshop of COST Action 274 TARSKI on Relational Methods in Computer Science
Faster Model Checking for the Modal Mu-Calculus
CAV '92 Proceedings of the Fourth International Workshop on Computer Aided Verification
PVS: A Prototype Verification System
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
Abstract Datatypes in PVS
STeP: The Stanford Temporal Prover
STeP: The Stanford Temporal Prover
Denotational proof languages
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
A strategy for efficient verification of relational specifications, based on monotonicity analysis
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
A Static Semantics for Alloy and its Impact in Refactorings
Electronic Notes in Theoretical Computer Science (ENTCS)
Efficient Analysis of DynAlloy Specifications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Alchemy: transmuting base alloy specifications into implementations
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Towards Abstraction for DynAlloy Specifications
ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
Programming with angelic nondeterminism
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model checking with SAT-based characterization of ACTL formulas
ICFEM'07 Proceedings of the formal engineering methods 9th international conference on Formal methods and software engineering
On the use of alloy to analyze graph transformation systems
ICGT'06 Proceedings of the Third international conference on Graph Transformations
Monotonicity analysis can speed up verification
RelMiCS'06/AKA'06 Proceedings of the 9th international conference on Relational Methods in Computer Science, and 4th international conference on Applications of Kleene Algebra
Hi-index | 0.00 |
We study a number of restrictions associated with the first-order relational specification language Alloy. The main shortcomings we address are:---the lack of a complete calculus for deduction in Alloy's underlying formalism, the so called relational logic,---the inappropriateness of the Alloy language for describing (and analyzing) properties regarding execution traces.The first of these points was not regarded as an important issue during the genesis of Alloy, and therefore has not been taken into account in the design of the relational logic. The second point is a consequence of the static nature of Alloy specifications, and has been partly solved by the developers of Alloy; however, their proposed solution requires a complicated and unstructured characterization of executions.We propose to overcome the first problem by translating relational logic to the equational calculus of fork algebras. Fork algebras provide a purely relational formalism close to Alloy, which possesses a complete equational deductive calculus. Regarding the second problem, we propose to extend Alloy by adding actions. These actions, unlike Alloy functions, do modify the state. Much the same as programs in dynamic logic, actions can be sequentially composed and iterated, allowing them to state properties of execution traces at an appropriate level of abstraction.Since automatic analysis is one of Alloy's main features, and this article aims to provide a deductive calculus for Alloy, we show that:---the extension hereby proposed does not sacrifice the possibility of using SAT solving techniques for automated analysis,---the complete calculus for the relational logic is straightforwardly extended to a complete calculus for the extension of Alloy.