Skip to main content
Log in

Verifying data refinements using a model checker

  • Original Article
  • Published:
Formal Aspects of Computing

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Bolton C, Davies J (2006) A singleton failures semantics for communicating sequential processes. Form Asp Comput (To appear)

  2. Bolton C (2005) Using the alloy analyzer to verify data refinement Z. Electronic Notes Theor Comput Sci 137(2):23–44

    Article  Google Scholar 

  3. Cimatti A, Clarke E, Giunchiglia F, Roveri M (1999) NuSMV: a new symbolic model verifier. In: Halbwachs N, Peled D (eds) International conference on computer aided verification (CAV’99), vol 1633 of LNCS. Springer, Berlin, pp 495–499 Heidelberg New York

    Google Scholar 

  4. Clarke E, Grumberg O, Jha S, Lu Y, Veith H (2000) Counterexample-guided abstraction refinement. In: Emerson EA Sistla AP (eds) International conference on computer aided verification (CAV’00), vol 1855 of LNCS. Springer, Berlin Heidelberg New York, pp 154–169

    Google Scholar 

  5. Clarke E, Grumberg O, Peled D (2000) Model Checking. MIT, New York

    Google Scholar 

  6. Craigen D, Gerhart S, Ralston T (1995) Formal methods reality check: Industrial usage. IEEE Trans Softw Eng 21(2):90–98

    Article  Google Scholar 

  7. Derrick J, Boiten E (2001) Refinement in Z and Object-Z Found Adv Appl. Springer, Berlin Heidelberg New York

    Google Scholar 

  8. Derrick J, Boiten EA (2003) Relational concurrent refinement. Form Asp Comput 15(2–3):182–214

    Article  MATH  Google Scholar 

  9. de Roever W-P, Engelhardt K (1998) Data refinement: model-oriented proof methods and their comparison. CUP

  10. de Moura L, Owre S, Rueß , H, Rushby J, Shankar N, Sorea M, Tiwari A (2004) SAL 2. In: Alur R, Peled D (eds) International conference on computer aided verification (CAV 2004), vol 3114 of LNCS. Springer, Berlin Heidelberg New York pp 496–500

  11. de Moura L, Owre S, Shankar N (2003) The SAL language manual. Technical Report SRI-CSL-01-02 (Rev.2), SRI International

  12. Emerson EA (1990) Temporal and modal logic. In: van Leeuwen J (ed) Handbook of Theoretical Computer Science, vol B. Elsevier, Amsterdam, pp 996–1072

    Google Scholar 

  13. Fischer C, Wehrheim H (1999) Model-checking CSP-OZ specifications with FDR. In: Araki K, Galloway A, Taguchi K (eds) International conference on integrated formal methods (IFM’99). Springer, Berlin Heidelberg New York, pp 315–334

    Google Scholar 

  14. Graf S, Saïdi H (1997) Construction of abstract state graphs with PVS. In: International Conference on Computer Aided Verification (CAV’97), vol 1254 of LNCS. Springer, Berlin Heidelberg New York, pp 72–83

  15. He J (1989) Process refinement. In: McDermid J (ed) The theory and practice of refinement. Butterworths London

  16. Josephs M (1988) A state-based approach to communicating processes. Distributed Comput 3:9–18

    Article  MATH  Google Scholar 

  17. Kassel G, Smith G (2001) Model checking Object-Z classes: some experiments with FDR. In: Asia-Pacific Software Engineering Conference (APSEC 2001). IEEE Computer Society Press, Los Alamitor

  18. Leuschel M, Butler M (2005) Automatic refinement checking for B. In: Lau K, Banach R (eds) International conference on formal engineering methods, ICFEM 2005, vol 3785 of LNCS. Springer, Berlin Heidelberg New York, pp 345–359

    Google Scholar 

  19. Leuschel M, Massart T, Currie A (2001) How to make FDR Spin: LTL model checking of CSP by refinement. In: Oliveira JN, Zave P (eds) FME, vol 2021 of LNCS. Springer, Berlin Heidelberg New York, pp 99–118

    Google Scholar 

  20. Mota A, Sampaio A (2001) Model-checking CSP-Z: strategy, tool support and industrial application. Sci Comput Program 40:59–96

    Article  MATH  Google Scholar 

  21. Robinson N (2002) Checking Z data refinement using an animation tool. In: Bert D, Bowen JP Henson MC Robinson K (eds) International Conference of Z and B Users (ZB 2002), vol 2272 of LNCS. Springer, Berlin Heidelberg New York, pp 62–81

    Google Scholar 

  22. Roscoe AW (2005) On the expressive power of CSP refinement. Form Asp Comput 17(2):93–112

    Article  MATH  Google Scholar 

  23. Smith G, Derrick J (2001) Specification, refinement and verification of concurrent systems—an integration of Object-Z and CSP. Form Meth Syst Des 18:249–284

    Article  MATH  Google Scholar 

  24. Smith G (2000) The Object-Z Specification Language. Advances in Formal Methods. Kluwer

  25. Spivey JM (1992) The Z Notation: A reference manual. Prentice Hall, 2nd edn

  26. Saïdi H, Shankar N (1999) Abstract and model check while you prove. In: Halbwachs N, Peled D (eds) International conference on computer aided verification (CAV’99), vol 1633 of LNCS. Springer, Berlin Heidelberg New York, pp 443–453

    Google Scholar 

  27. Smith G, Winter K (2003) Proving temporal properties of Z specificatons using abstraction. In: Bert D, Bowen JP, King S, Waldén M (eds) International conference of Z and B users (ZB 2003), vol 2651 of LNCS. Springer, Berlin Heidelberg New York, pp 260–279

    Google Scholar 

  28. Smith G, Wildman L (2005) Model checking Z specifications using SAL. In: Treharne H, King S Henson M Schneider S (eds) International conference of Z and B users (ZB 2005), vol 3455 of LNCS. Springer, Berlin Heidelberg New York, pp 87–105

    Google Scholar 

  29. Woodcock J, Davies J (1996) Using Z: specification, refinement, and proof. Prentice Hall, Englewood Cliffs

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Graeme Smith or John Derrick.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Smith, G., Derrick, J. Verifying data refinements using a model checker. Form Asp Comp 18, 264–287 (2006). https://doi.org/10.1007/s00165-006-0002-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00165-006-0002-7

Keywords

Navigation