Model checking RAISE specifications

This report presents the basic foundations for the verification by means of model checking techniques of formal specifications expressed in RAISE. During this work, third party model checkers are briefly discussed and analysed for suitability under two main criteria: (a) syntactic/semantic restrictions imposed by the model checker’s language and (b) the applied representation technique for the system (i.e. symbolic or explicit). Then, the selection of Symbolic Analysis Laboratory (SAL) as the model checking tool is justified and all RAISE syntactic constructions are analysed for transformation into SAL. Foundations for the semantic preservation during the translation are provided in the cases where the justification is not a trivial one. Finally, the design of extensions to RAISE to define transition systems and to support temporal logic formulas is described and the tool that implements the first version of the described translation procedure is also reported. Juan Ignacio Perna is a member of the Computer Science Department at Universidad Nacional de San Luis, Argentina. He was a Fellow at UNU-IIST from March 2005 to December 2005. Chris George joined UNU-IIST as a Senior Research Fellow on 1 September 1994, and is currently Associate Director. He is one of the main contributors to RAISE, particularly the RAISE method, and that remains his main research interest. Before coming to UNU-IIST he worked for companies in the UK and Denmark. Copyright c © 2006 by UNU-IIST

[1]  Johan Anthory Willem Kamp,et al.  Tense logic and the theory of linear order , 1968 .

[2]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[3]  Bertrand Meyer,et al.  Specification Language , 1980, On the Construction of Programs.

[4]  Hartmut Ehrig,et al.  KWIC-index generation , 1981, Program Specification.

[5]  Joseph Sifakis,et al.  Specification and verification of concurrent systems in CESAR , 1982, Symposium on Programming.

[6]  Amir Pnueli,et al.  Checking that finite state concurrent programs satisfy their linear specification , 1985, POPL.

[7]  A. P. Sistla,et al.  Automatic verification of finite-state concurrent systems using temporal logic specifications , 1986, TOPL.

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

[9]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[10]  Edmund M. Clarke,et al.  Characterizing Finite Kripke Structures in Propositional Temporal Logic , 1988, Theor. Comput. Sci..

[11]  Gerard J. Holzmann Algorithms for automated protocol verification , 1990, AT&T Technical Journal.

[12]  Gerard J. Holzmann,et al.  Coverage Preserving Reduction Strategies for Reachability Analysis , 1992, PSTV.

[13]  Richard J. Boulton,et al.  Experience with Embedding Hardware Description Languages in HOL , 1992, TPCD.

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

[15]  Susanne Graf,et al.  Verification of a Distributed Cache Memory by Using Abstractions , 1994, CAV.

[16]  Natarajan Shankar,et al.  Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS , 1995, IEEE Trans. Software Eng..

[17]  Jürgen Dingel,et al.  Model Checking for Infinite State Systems Using Data Abstraction, Assumption-Commitment Style reasoning and Theorem Proving , 1995, CAV.

[18]  Burkhart Wolff,et al.  A Structure Preserving Encoding of Z in Isabelle/HOL , 1996, TPHOLs.

[19]  Susan Stepney,et al.  Using PVS to Prove a Z Refinement: A Case Study , 1997, FME.

[20]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[21]  J. Bryan Scattergood The semantics and implementation of machine-readable CSP , 1998 .

[22]  Jonathan P. Bowen,et al.  High-Integrity System Specification and Design , 1999, Formal Approaches to Computing and Information Technology (FACIT).

[23]  H. Saidi,et al.  Modular and incremental analysis of concurrent software systems , 1999, 14th IEEE International Conference on Automated Software Engineering.

[24]  Natarajan Shankar,et al.  Abstract and Model Check While You Prove , 1999, CAV.

[25]  Wan Fokkink,et al.  Introduction to Process Algebra , 1999, Texts in Theoretical Computer Science. An EATCS Series.

[26]  Thierry Massart,et al.  How to Make FDR Spin LTL Model Checking of CSP by Refinement , 2001, FME.

[27]  Dana Fisman,et al.  Computer Aided Verification , 2003, Lecture Notes in Computer Science.

[28]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[29]  Graeme Smith,et al.  Proving Temporal Properties of Z Specifications Using Abstraction , 2003, ZB.

[30]  Bernhard K. Aichernig,et al.  Automatic Test Case Generation for RAISE , 2004 .

[31]  Graeme Smith,et al.  Model Checking Z Specifications Using SAL , 2005, ZB.