Skip to main content
Log in

Z2SAL: a translation-based model checker for Z

  • Published:
Formal Aspects of Computing

Abstract

Despite being widely known and accepted in industry, the Z formal specification language has not so far been well supported by automated verification tools, mostly because of the challenges in handling the abstraction of the language. In this paper we discuss a novel approach to building a model-checker for Z, which involves implementing a translation from Z into SAL, the input language for the Symbolic Analysis Laboratory, a toolset which includes a number of model-checkers and a simulator. The Z2SAL translation deals with a number of important issues, including: mapping unbounded, abstract specifications into bounded, finite models amenable to a BDD-based symbolic checker; converting a non-constructive and piecemeal style of functional specification into a deterministic, automaton-based style of specification; and supporting the rich set-based vocabulary of the Z mathematical toolkit. This paper discusses progress made towards implementing as complete and faithful a translation as possible, while highlighting certain assumptions, respecting certain limitations and making use of available optimisations. The translation is illustrated throughout with examples; and a complete working example is presented, together with performance data.

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. Abrial J-R (1996) The B-book: assigning programs to meanings. Cambridge University Press, New York

    Book  MATH  Google Scholar 

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

    Article  Google Scholar 

  3. Bryant RE (1986) Graph-based algorithms for boolean function manipulation. IEEE Trans Comput 35(8): 677–691

    Article  MATH  Google Scholar 

  4. Bryant RE (1992) Symbolic boolean manipulation with ordered binary-decision diagrams. ACM Comput Surv 24(3): 293–318

    Article  Google Scholar 

  5. Chantar H, Wali A, Sosa A, Sharma Y (2008) Translating Z to SAL. Technical report, Department of Computer Science, University of Sheffield, Sheffield, May 2008

  6. Clarke EM, Grumberg O, Long DE (1994) Verification tools for finite-state concurrent systems. In: A decade of concurrency, reflections and perspectives, REX school/symposium. Springer, London, pp 124–175

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

  8. Derrick J, North S, Simons T (2006) Issues in implementing a model checker for Z. In: Liu Z, He J (eds) ICFEM, Lecture notes in computer science, vol 4260. Springer, pp 678–696

  9. Derrick J, North S, Simons AJH (2008) Z2SAL—building a model checker for Z. In: Börger E, Butler MJ, Bowen JP, Boca P (eds) ABZ. Lecture Notes in Computer Science, vol 5238. Springer, pp 280–293

  10. Daley N, Utting M, Toyn I, Dong JS, Martin A, Currie D (2003) ZML: XML support for standard Z. In: 3rd international conference of Z and B users (ZB03). LNCS, Springer, p 2651

  11. Holzmann GJ (1997) The model checker SPIN. IEEE Trans Softw Eng 23(5):279–295

    Google Scholar 

  12. ISO/IEC 13568:2002. Information technology—Z formal specification notation—syntax, type system and semantics. International Standard.

  13. Jackson D (2002) Alloy: a lightweight object modelling notation. ACM Trans Softw Eng Methodol 11(2): 256–290

    Article  Google Scholar 

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

  15. Miller T, Freitas L, Malik P, Utting M (2005) CZT support for Z extensions. In: Romijn J, Smith G, Pol J (eds) Integrated formal methods, IFM 2005, LNCS, vol 3771. Springer, pp 227–245

  16. Plagge D, Leuschel M (2007) Validating Z specifications using the ProB animator and model checker. Integr Form Methods 4591: 480–500

    Article  Google Scholar 

  17. Saaltink M (1997) The Z/EVES system. In: Bowen JP, Hinchey MG, Till D (eds) ZUM, Lecture notes in computer science, vol 1212. Springer, pp 72–85

  18. Saaltink M (1999) The Z/Eves 2.0 User’s Guide. ORA Canada, http://www.cs.kent.ac.uk/people/staff/gsn2/zeves/usersguide.pdf

  19. Spivey JM (1992) The Z notation: a reference manual. Prentice Hall, Englewood Cliffs

    Google Scholar 

  20. Spivey MJ (1988–2000) The fuZZ Manual, 2nd edn. Spivey Partnership, http://spivey.oriel.ox.ac.uk/mike/fuzz/fuzzman.pdf

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

  22. Toyn I, Mcdermid JA (1995) CADiZ: An architecture for Z tools and its implementation. Softw Pract Exp 25: 305–330

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to John Derrick.

Additional information

Jonathan P. Bowen and Michael J. Butler

Rights and permissions

Reprints and permissions

About this article

Cite this article

Derrick, J., North, S. & Simons, A.J.H. Z2SAL: a translation-based model checker for Z. Form Asp Comp 23, 43–71 (2011). https://doi.org/10.1007/s00165-009-0126-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00165-009-0126-7

Keywords

Navigation