Z and HOL

  • Jonathan Bowen
  • Mike Gordon
Part of the Workshops in Computing book series (WORKSHOPS COMP.)


A simple ‘shallow’ semantic embedding of the Z notation into the HOL logic is described. The Z notation is based on set theory and first order predicate logic and is typically used for human-readable formal specification. The HOL theorem proving system supports higher order logic and is used for machine-checked verification. A well-known case study is used as a running example. The presentation is intended to show people with some knowledge of Z how a tool such as HOL can be used to provide mechanical support for the notation, including mechanization of proofs. No specialized knowledge of HOL is assumed.


High Order Logic Predicate Part Free Type Schema Conjunction User Workshop 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Andrews PD. An Introduction to Mathematical Logic and Type Theory: To Truth through Proof. Computer Science and Applied Mathematics Series. Academic Press, 1986.Google Scholar
  2. [2]
    Boulton RJ, Gordon AD, Harrison JR, Herbert JMJ, Van Tassel J. Experience with embedding hardware description languages in HOL. In Stavridou V, Melham TF, Boute RT (eds), Theorem Provers in Circuit Design: Theory, Practice and Experience: Proceedings of the IFIP TC10/WG 10.2 International Conference, IFIP Transactions A-10, pp 129–156. North-Holland, 1992.Google Scholar
  3. [3]
    Bowen JP. Comp.specification.z and Z FORUM frequently asked questions. In Bowen JP, Hall JA (eds), Z User Workshop, Cambridge 1994, Workshops in Computing. Springer-Verlag, 1994.Google Scholar
  4. [4]
    Bowen JP, Stavridou V. Safety-critical systems, formal methods and standards. IEE/BCS Software Engineering Journal, 8 (4): 189–209, 1993.CrossRefGoogle Scholar
  5. [5]
    Brien SM, Nicholls JE. Z base standard. Technical Monograph PRG-107, Oxford University Computing Laboratory, UK, 1992. Accepted for ISO standardization, ISO/IEC JTC1/SC22.Google Scholar
  6. [6]
    Church A. A formulation of the simple theory of types. The Journal of Symbolic Logic, 5: 56–68, 1940.MathSciNetMATHCrossRefGoogle Scholar
  7. [7]
    Collinson R. A simple demonstration of Balzac. Technical report, GCHQ, Fiddlers Green Lane, Cheltenham, Gloucestershire, UK, 1992.Google Scholar
  8. [8]
    Diller A. Z: An Introduction to Formal Methods. Wiley, 1990.Google Scholar
  9. [9]
    Gordon MJC, Melham TF (eds). Introduction to HOL: A Theorem-proving Environment for Higher-Order Logic. Cambridge University Press, 1993.Google Scholar
  10. [10]
    Gordon MJC, Milner R, Wadsworth CP. Edinburgh LCF: A Mechanised Logic of Computation, vol 78 of Lecture Notes in Computer Science. Springer-Verlag, 1979.Google Scholar
  11. [11]
    Harwood WT. Proof rules for Balzac. Technical Report WTH/P7/001, Imperial Software Technology, Cambridge, UK, 1991.Google Scholar
  12. [12]
    Jones RB. ICL ProofPower. BCS FACS FACTS, Series III, 1 (1): 10–13, 1992.Google Scholar
  13. [13]
    Macdonald R, Randell GP, Sennett CT. Pattern matching in ML: A case study in refinement. Report No. 89004, RSRE (now DRA), Defence Research Agency, St. Andrews Road, Malvern, Worcestershire WR14 3PS, UK, 1989.Google Scholar
  14. [14]
    Maharaj S. Implementing Z in LEGO. Master’s thesis, University of Edinburgh, UK, 1990.Google Scholar
  15. [15]
    Maharaj S. Encoding Z schemas in type theory. In Geuves H (ed), Informal Proceedings of the 1993 Workshop on Types for Proofs and Programs, pp 209–218, 1993. Distributed electronically.Google Scholar
  16. [16]
    Martin A. Encoding W: A logic for Z in 2OBJ. In Woodcock JCP, Larsen PG (eds), FME’93: Industrial-Strength Formal Methods, vol 670 of Lecture Notes in Computer Science, pp 462–481. Springer-Verlag, 1993.Google Scholar
  17. [17]
    Melham T. Using recursive types to reason about hardware in Higher Order Logic. In Milne GJ (ed), The Fusion of Hardware Design and Verification, Proceedings of the IFIP WG10.2 Working Conference, pp 27–50. North-Holland, 1988.Google Scholar
  18. [18]
    Milner R, Tofte M, Harper R. The Definition of Standard ML. The MIT Press, 1990.Google Scholar
  19. [19]
    Neilson D. Machine support for Z: the zedB tool. In Nicholls JE (ed), Z User Workshop, Oxford 1990, Workshops in Computing, pp 105–128. Springer-Verlag, 1991.Google Scholar
  20. [20]
    Neilson D, Prasad D. zedB: A proof tool for Z built on B. In Nicholls JE (ed), Z User Workshop, York 1991, Workshops in Computing, pp 243–258. Springer-Verlag, 1992.Google Scholar
  21. [21]
    Paulson LC. Logic and Computation: Interactive Proof with Cambridge LCF, vol 2 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1987.Google Scholar
  22. [22]
    Paulson LC. A fixedpoint approach to implementing (co-)inductive definitions. Technical report, University of Cambridge, Computer Laboratory, UK, 1993. Draft.Google Scholar
  23. [23]
    Potter BF, Sinclair JE, Till D. An Introduction to Formal Specification and Z. Prentice Hall International Series in Computer Science, 1990.Google Scholar
  24. [24]
    Saaltink M. Z and EVES. Technical Report TR–91–5449–02, Odyyssey Research Associates, 265 Carling Avenue, Suite 506, Ottawa, Ontario K1S 2E1, Canada, 1991.Google Scholar
  25. [25]
    Saaltink M. Z and Eves. In Nicholls JE (ed), Z User Workshop, York 1991, Workshops in Computing, pp 223–242. Springer-Verlag, 1992.Google Scholar
  26. [26]
    Smith A. On recursive free types in Z. In Nicholls JE (ed), Z User Workshop, York 1991, Workshops in Computing, pp 3–39. Springer-Verlag, 1992.Google Scholar
  27. [27]
    Spivey JM. An introduction to Z and formal specifications. IEE/BCS Software Engineering Journal, 4 (1): 40–50, 1989.CrossRefGoogle Scholar
  28. [28]
    Spivey JM. The fuzz Manual. Computing Science Consultancy, 2 Willow Close, Garsington, Oxford OX9 9AN, UK, 2nd edition, 1992.Google Scholar
  29. [29]
    Spivey JM. The Z Notation: A Reference Manual. Prentice Hall International Series in Computer Science, 2nd edition, 1992.Google Scholar
  30. [30]
    Woodcock JCP, Brien SM. W: A logic for Z. In Nicholls JE (ed), Z User Workshop, York 1991, Workshops in Computing, pp 77–96. Springer-Verlag, 1992.Google Scholar
  31. [31]
    Xiaoping Jia. ZTC: A Type Checker for Z User’s Guide. Institute for Software Engineering, Department of Computer Science and Information Systems, DePaul University, Chicago, IL 60604, USA (e-mail: j is@cs. depaul. edu), 1994.Google Scholar

Copyright information

© British Computer Society 1994

Authors and Affiliations

  • Jonathan Bowen
    • 1
  • Mike Gordon
    • 2
  1. 1.Oxford University Computing LaboratoryProgramming Research GroupOxfordUK
  2. 2.University of CambridgeComputer Laboratory New Museums SiteCambridgeUK

Personalised recommendations