Specification of a Program Derivation Editor

In this paper, a tool for structuring and manipulating formal program derivations is specified using the Z notation. A program derivation style based on (transitive) relations between programs, as found in the refinement calculus, is assumed. The structuring and manipulation of derivations is based on the notion of refinement diagrams proposed by Back. This allows for a style of derivation that is much more flexible than top-down refinement and is more suited to large-scale program development. The original refinement diagram notion is also extended with ideas from window inference which provides a powerful way of dealing with the use of different relations in sub-derivations.

[1]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[2]  Jan L. A. Van de Snepscheut Proxac: An Editor for Program Transformation , 1993 .

[3]  John Staples,et al.  Formalizing a Hierarchical Structure of Practical Mathematical Reasoning , 1993, J. Log. Comput..

[4]  Joseph M. Morris,et al.  A Theoretical Basis for Stepwise Refinement and the Programming Calculus , 1987, Sci. Comput. Program..

[5]  Maurice Naftalin Informal Strategies in Design by Refinement , 1994, FME.

[6]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[7]  John Fitzgerald Unification: Specification and Development , 1990 .

[8]  Jim Grundy,et al.  Window Inference In The HOL System , 1991, 1991., International Workshop on the HOL Theorem Proving System and Its Applications.

[9]  J. von Wright Program Reenement by Theorem Prover , 1994 .