# Z notation

### From Wikipedia, the free encyclopedia

The **Z notation** (formally pronounced /zɛd/), named after Zermelo-Fränkel set theory, is a formal specification language used for describing and modeling computing systems. It is targeted at the clear specification of computer programs and the formulation of proofs about the intended program behavior.

## Contents |

## [edit] History

In 1974, Jean-Raymond Abrial published "Data Semantics" in Data Base Management (Klimbie, Koffeman, eds), North-Holland, pp 1-59. He used a notation that would later be taught in the Université de Grenoble until the end of the eighties. In EDF (Electricité De France), Abrial wrote internal notes on Z. The Z notation is used in the book of Meyer and Baudouin, Méthodes de programmation, published by Eyrolles in 1980.

Z was originally proposed Abrial in 1977 with the help of Steve Schuman and Bertrand Meyer ^{[1]}. It was developed further at the Programming Research Group at Oxford University, where Abrial worked in the early eighties (he arrived in Oxford on September 1979).

Abrial answers the question "Why Z?" with "Because it is the ultimate language!"

## [edit] Usage and Notation

Z is based on the standard mathematical notation used in axiomatic set theory, lambda calculus, and first-order predicate logic. All expressions in Z notation are typed, thereby avoiding some of the paradoxes of naive set theory. Z contains a standardized catalog (called the *mathematical toolkit*) of commonly used mathematical functions and predicates.

Although Z notation uses many non-ASCII symbols, the specification includes suggestions for rendering the Z notation symbols in ASCII and in LaTeX. A Z ttf font is also available for free download.

## [edit] Standards

The ISO completed a Z standardization effort in 2002. This standard can be obtained directly from ISO.^{[2]}

## [edit] See also

- B-Method
- Z++
- Object-Z
- Z User Group (ZUG)
- Community Z Tools (CZT) project
- Formal methods

## [edit] References

**^**Jean-Raymond Abrial, Stephen A. Schuman and Bertrand Meyer:*A Specification Language*, in*On the Construction of Programs*, Cambridge University Press, eds. A. M. Macnaghten and R. M. McKeag, 1980 (describes early version of the language). ISBN 0-521-23090-X**^**(1 MB PDF)*Information Technology — Z Formal Specification Notation — Syntax, Type System and Semantics*(ISO/IEC 13568:2002 ed.). 2002-07-01. pp. 196 pages. http://standards.iso.org/ittf/PubliclyAvailableStandards/c021573_ISO_IEC_13568_2002(E).zip.

## [edit] Further reading

- J. Michael Spivey (1992).
*The Z Notation: a reference manual*(2nd edition ed.). Prentice Hall International Series in Computer Science. http://spivey.oriel.ox.ac.uk/mike/zrm/. - Jim Davies and Jim Woodcock (1996).
*Using Z: Specification, Refinement and Proof*. Prentice Hall International Series in Computer Science. ISBN 0-13-948472-8. http://www.usingz.com/text/online/. - Jonathan Bowen (1996).
*Formal Specification and Documentation using Z: A Case Study Approach*. International Thomson Computer Press. ISBN 1-85032-230-9. http://www.zuser.org/zbook/. - Jonathan Jacky (1997).
*The Way of Z: Practical Programming with Formal Methods*. Cambridge University Press. ISBN 0-521-55976-6. http://staff.washington.edu/jon/z-book/.

## [edit] External links

- The World Wide Web Virtual Library: The Z notation, by Jonathan Bowen
- Community Z Tools (CZT) project
- Tools for developing and checking Z specifications in Microsoft Word
- Specification proposals by Ian Toyn
- Mike Spivey's Fuzz Type-Checker for Z
- ZETA open-source system for development software specifications in Z
- HOL-Z open-source proof environment for Z in Isabelle/HOL
- Z/Eves — A proof checker for the Z notation (German site but all manuals in English)
- W3C WSDL 2.0 a specification containing Z notation assertions and explanation