Z notation

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Z notation was developed by Abrial in 1977. Steve Schuman and Bertrand Meyer helped him for its development. Z notation was updated further by Abrial at the Programming Research Group at Oxford University while he worked in the early eighties.

Z is the standard mathematical notation used in axiomatic set theory, lambda calculus and first-order predicate logic. The mathematical notation of Z consists of a small core, supplemented by a larger collection of useful objects and operators called theZ mathematical tool-kit. It is a collection of mathematical theories: definitions and laws concerning objects such as sets, tuples, relations, functions, sequences and their operators. In Z we use these mathematical objects to model data structures and other components of computing systems.

Some of the syntax are

x = y, x = y -- (in-) equality

x ∈ S, x ∈ S -- (non-) membership

S⊆T -- subset

S⊂T -- proper subset

¬P -- negation

And more...

Scope:

To give clear specification and requirements of the process.

Z-notation Features:

Decompose specification into small pieces (Schemas) which describe both static and dynamic aspects of a system

Data Refinement: Represent the abstract data in the specification.

Direct Refinement: Go directly from specification to design.

NotationExample

Some variables are declared. As well as state transitions.

Relationship between the values of the variables

[NAME; DATE]:

Init Birthday Book

Birthday Book

Known =Æ

NotationExample II

One possible state of the system has three people in the set known, with their birthdays recorded by the function birthday:

known = { John; Mike; Susan }

birthday = { John 25-Mar,

Mike 20-Dec,

Susan 20-Dec }

Birthday book

known: NAME

birthday: NAME DATE

Known : dom birthday

How the system might look?

Add Birthday

Birthday Book

name?: NAME

date?: DATE

name?Ïknown

birthday'= birthday U { name? date}

NotationExample III

Find Birthday

Birthday book

name?: NAME

Date! : DATE

name?ÎKnown

date != birthday(name?)

Application:

Mondex Smart Card

In the early 1990's, the National Westminster Bank and Platform Seven2 developed a smartcard-based electronic cash system with secure and for free. They assured the card was secure, where authentication, transaction and institution that issued the card by using sophisticated system of encryption locks and keys. In this way, chips make it much more certain that any given card is genuine.

Platform Seven decided to certify Mondex to one of the very highest standards It requires a formal proof that the concrete design obeys the abstract security properties The evaluation was carried out by the Logica Commercial Licenced Evaluation Facility, with key parts of the work subcontracted to the University of York to ensure independence and to deliver the specification and proof using Z [Spivey 1989; Woodcock and Davies 1996].

In 1999, Mondex achieved its ITSEC Level E6 [ITSEC 1991], which approximates to Common Criteria Level 7 [CCRA 2006]. certificate: the very first product ever to do so. As a part of the ITSEC E6 process, the entire Mondex development was additionally subject to rigorous testing. No errors were found in any part of the system subjected to the use of formal methods.

In 2006, Mondex was renovated as pilot project for the Grand Challenge by applying Moore's Law in Verified Software. The scope was to test the state of the art in mechanical verification moved on in ten years. Challenge was taken by eight using different formal methods. By Z proofs, The cost of mechanising was only 10% of the original development cost. Interestingly, almost all methods achieved the same level of automation, producing the similar results.