Temporal Logic Model Checking in Alloy

The declarative and relational aspects of Alloy make it a desirable language to use for high-level modeling of transition systems. However, currently, these models must be translated to another tool to carry out full temporal logic model checking. In this article, we show how a symbolic representation of the semantics of computational tree logic with fairness constraints (CTLFC) can be written in first-order logic with the transitive closure operator, and therefore described in Alloy. Using this encoding, the question of whether a declarative model of a transition system satisfies a temporal logic formula can be solved using the Alloy Analyzer directly. Also, since a declarative description of a model may actually represent a family of transition systems, we define two distinct model checking questions on this family (existential and universal model checking) and show how these properties can be evaluated in the Alloy Analyzer.

[1]  R. Petit A Tutorial Introduction , 1980 .

[2]  Kenneth L. McMillan,et al.  The SMV System , 1993 .

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

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

[5]  Wolfgang Ahrendt,et al.  Reasoning about Abstract State Machines: The WAM Case Study , 1997, J. Univers. Comput. Sci..

[6]  Edmund M. Clarke,et al.  Another Look at LTL Model Checking , 1994, Formal Methods Syst. Des..

[7]  Neil Immerman,et al.  Model Checking and Transitive-Closure Logic , 1997, CAV.

[8]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.

[9]  Kirsten Winter,et al.  Model Checking Support for the ASM High-Level Language , 2000, TACAS.

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

[11]  Radha Jagadeesan,et al.  Modal Transition Systems: A Foundation for Three-Valued Program Analysis , 2001, ESOP.

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

[13]  Stefania Gnesi,et al.  FME 2003: Formal Methods: International Symposium of Formal Methods Europe, Pisa, Italy, September 8-14, 2003. Proceedings , 2003, Lecture Notes in Computer Science.

[14]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[15]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.

[16]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[17]  Egon Börger The ASM Method for System Design and Analysis. A Tutorial Introduction , 2005, FroCoS.

[18]  Nazareno Aguirre,et al.  DynAlloy: upgrading alloy with actions , 2005, ICSE.

[19]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[20]  Felix Sheng-Ho Chang,et al.  Symbolic model checking of declarative relational models , 2006, ICSE.

[21]  Bran Selic From Model-Driven Development to Model-Driven Engineering , 2007, 19th Euromicro Conference on Real-Time Systems (ECRTS'07).

[22]  J. Roger Hindley,et al.  Lambda-Calculus and Combinators, an Introduction: Representing the computable functions , 2008 .

[23]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.