Checking Z Data Refinements Using an Animation Tool

We describe how a Z animation tool can be used to check Z data refinements. We illustrate two approaches. In the first approach the tool is used to interactively step through operations of the abstract and concrete specifications, checking whether the refinement relationship holds. In the second approach the tool is used to automatically check refinements and to provide counter-examples should the refinement fail. We envisage these techniques being used in order to improve understanding of refinements and to help validate their correctness.

[1]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[2]  Hélène Waeselynck,et al.  B model animation for external verification , 1998, Proceedings Second International Conference on Formal Engineering Methods (Cat.No.98EX241).

[3]  Luke Wildman,et al.  The sum reference manual , 1999 .

[4]  Jason McDonald,et al.  Translating Object-Z specifications to passive test oracles , 1998, Proceedings Second International Conference on Formal Engineering Methods (Cat.No.98EX241).

[5]  Neil J. Robinson,et al.  Visualisation of refinements , 2001, Proceedings 2001 Australian Software Engineering Conference.

[6]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[7]  C. A. R. Hoare,et al.  Prespecification in Data Refinement , 1987, Inf. Process. Lett..

[8]  Nicholas A. Hamilton,et al.  A complete formal development using Cogito , 1998 .

[9]  Tim Miller,et al.  Animation can show only the presence of errors, never their absence , 2001, Proceedings 2001 Australian Software Engineering Conference.

[10]  Tim Miller,et al.  Combining the animation and testing of abstract data types , 2001, Proceedings Second Asia-Pacific Conference on Quality Software.

[11]  Paul A. Strooper,et al.  Possum: an animator for the SUM specification language , 1997, Proceedings of Joint 4th International Computer Science Conference and 4th Asia Pacific Software Engineering Conference.

[12]  Jim Woodcock,et al.  More Powerful Z Data Refinement: Pushing the State of the Art in Industrial Refinement , 1998, ZUM.

[13]  Jim Grundy,et al.  The Refinement Calculator: Proof Support for Program Refinement , 1997 .

[14]  Daniel Jackson,et al.  Elements of style: analyzing a software design feature with a counterexample detector , 1996, ISSTA '96.