Reasoning about static and dynamic properties in alloy

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.

[1]  Stephan Merz,et al.  Model Checking , 2000 .

[2]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.

[3]  Christine Paulin-Mohring,et al.  The coq proof assistant reference manual , 2000 .

[4]  Amy P. Felty,et al.  The Coq proof assistant user's guide : version 5.6 , 1990 .

[5]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[6]  Konstantinos Arkoudas Denotational proof languages , 2000 .

[7]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

[8]  Hugo Herbelin,et al.  The Coq proof assistant : reference manual, version 6.1 , 1997 .

[9]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[10]  Marcelo F. Frias,et al.  Fork Algebras , 1997, Relational Methods in Computer Science.

[11]  Natarajan Shankar,et al.  PVS: An Experience Report , 1998, FM-Trends.

[12]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[13]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

[14]  Daniel Jackson Automating first-order relational logic , 2000, SIGSOFT '00/FSE-8.

[15]  R. Ulusay,et al.  Object Constraint Language Specification , 1997 .

[16]  Sarfraz Khurshid,et al.  Integrating Model Checking and Theorem Proving for Relational Reasoning , 2003, RelMiCS.

[17]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[18]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[19]  Owre Sam,et al.  Abstract Datatypes in PVS , 1997 .

[20]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[21]  Bernhard Rumpe 《UML》 '99 - the unified modeling language : beyond the standard : Second International Conference, Fort Collins, Co, USA, October 28-30, 1999 : proceedings , 1999 .

[22]  Paolo Traverso,et al.  Applied Formal Methods — FM-Trends 98 , 1998, Lecture Notes in Computer Science.

[23]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[24]  Daniel Jackson,et al.  Alcoa: the Alloy constraint analyzer , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[25]  R. Maddux Pair-dense relation algebras , 1991 .

[26]  Marcelo F. Frias,et al.  Interpretability of First-Order Dynamic Logic in a Relational Calculus , 2001, RelMiCS.

[27]  Daniel Jackson,et al.  Micromodels of software: lightweight modelling and analysis with Alloy , 2002 .

[28]  Ivar Jacobson,et al.  Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series) , 2005 .

[29]  Edward Y. Chang,et al.  STeP: The Stanford Temporal Prover , 1995, TAPSOFT.

[30]  Manu Sridharan,et al.  A micromodularity mechanism , 2001, ESEC/FSE-9.

[31]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[32]  Marcelo F. Frias,et al.  Fork Algebras in Algebra, Logic and Computer Science , 2002, Fundam. Informaticae.

[33]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[34]  Jerzy Tiuryn,et al.  Dynamic logic , 2001, SIGA.

[35]  A. Tarski,et al.  A Formalization Of Set Theory Without Variables , 1987 .

[36]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[37]  Kevin J. Sullivan,et al.  COM revisited: tool-assisted modelling of an architectural framework , 2000, SIGSOFT '00/FSE-8.

[38]  Stanley Burris,et al.  A course in universal algebra , 1981, Graduate texts in mathematics.

[39]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[40]  Yde Venema,et al.  Dynamic Logic by David Harel, Dexter Kozen and Jerzy Tiuryn. The MIT Press, Cambridge, Massachusetts. Hardback: ISBN 0–262–08289–6, $50, xv + 459 pages , 2002, Theory and Practice of Logic Programming.

[41]  Natarajan Shankar,et al.  A Semantic Embedding of theA g Dynamic Logic in PVS , 2003 .

[42]  Rance Cleaveland,et al.  Faster Model Checking for the Modal Mu-Calculus , 1992, CAV.

[43]  Nazareno Aguirre,et al.  Taking Alloy to the Movies , 2003, FME.

[44]  Marcelo F. Frias,et al.  A Finite Axiomatization for Fork Algebras , 1997, Log. J. IGPL.

[45]  Bran Selic,et al.  UML 2000 - The Unified Modeling Language. Advancing the Standard: Third International Conference York, UK, October 2-6, 2000 Proceedings , 2000 .