Verifying data refinements using a model checker

In this paper, we consider how refinements between state-based specifications (e.g., written in Z) can be checked by use of a model checker. Specifically, we are interested in the verification of downward and upward simulations which are the standard approach to verifying refinements in state-based notations. We show how downward and upward simulations can be checked using existing temporal logic model checkers.In particular, we show how the branching time temporal logic CTL can be used to encode the standard simulation conditions. We do this for both a blocking, or guarded, interpretation of operations (often used when specifying reactive systems) as well as the more common non-blocking interpretation of operations used in many state-based specification languages (for modelling sequential systems). The approach is general enough to use with any state-based specification language, and we illustrate how refinements between Z specifications can be checked using the SAL CTL model checker using a small example.

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

[2]  Edmund M. Clarke,et al.  Counterexample-Guided Abstraction Refinement , 2000, CAV.

[3]  Graeme Smith,et al.  Model checking Object-Z classes: Some experiments with FDR , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

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

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

[6]  DPhil John Derrick BSc,et al.  Refinement in Z and Object-Z , 2001, Formal Approaches to Computing and Information Technology.

[7]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

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

[9]  Willem-Paul de Roever,et al.  Data Refinement: Theory , 1998 .

[10]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[11]  Heike Wehrheim,et al.  Model-Checking CSP-OZ Specifications with FDR , 1999, IFM.

[12]  Kai Engelhardt,et al.  Data Refinement: Model-Oriented Proof Methods and their Comparison , 1998 .

[13]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[14]  Natarajan Shankar,et al.  The SAL Language Manual , 2003 .

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

[16]  Graeme Smith,et al.  The Object-Z Specification Language , 1999, Advances in Formal Methods.

[17]  A. W. Roscoe On the expressive power of CSP refinement , 2005, Formal Aspects of Computing.

[18]  Jan van Leeuwen,et al.  Handbook Of Theoretical Computer Science, Vol. A , 1990 .

[19]  Jim Davies,et al.  A singleton failures semantics for Communicating Sequential Processes , 2006, Formal Aspects of Computing.

[20]  Fausto Giunchiglia,et al.  NUSMV: A New Symbolic Model Verifier , 1999, CAV.

[21]  John Derrick,et al.  Specification, Refinement and Verification of Concurrent Systems—An Integration of Object-Z and CSP , 2001, Formal Methods Syst. Des..

[22]  Augusto Sampaio,et al.  Model-checking CSP-Z: strategy, tool support and industrial application , 2001, Sci. Comput. Program..

[23]  Dan Craigen,et al.  Formal Methods Reality Check: Industrial Usage , 1993, IEEE Trans. Software Eng..

[24]  Michael J. Butler,et al.  Automatic Refinement Checking for B , 2005, ICFEM.

[25]  Neil J. Robinson,et al.  Checking Z Data Refinements Using an Animation Tool , 2002, ZB.

[26]  Eerke A. Boiten,et al.  Relational Concurrent Refinement , 2003, Formal Aspects of Computing.

[27]  Christie Bolton,et al.  Using the Alloy Analyzer to Verify Data Refinement in Z , 2005 .

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

[29]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[30]  Mark B. Josephs A state-based approach to communicating processes , 2005, Distributed Computing.

[31]  Willem-Paul de Roever,et al.  Data Refinement by Willem-Paul de Roever , 1998 .