The Lattice of Data Reenement

We deene a very general notion of data reenement which comprises the traditional notion of data reenement as a special case. Using the concepts of duals and adjoints we deene converse commands and a nd a symmetry between ordinary data reenement and a dual (backward) data reenement. We show how ordinary and backward data reenement are interpreted as simulation and we derive rules for the piecewise data reenement of programs. Our results are valid for a general language, covering demonic and angelic nondeterminism as well as nontermination and miracles.

[1]  Martín Abadi,et al.  The Existence of Refinement Mappings , 1988, LICS.

[2]  Carroll Morgan,et al.  The specification statement , 1988, TOPL.

[3]  Ralph-Johan Back,et al.  Refinement Calculus, Part II: Parallel and Reactive Programs , 1989, REX Workshop.

[4]  Bengt Jonsson,et al.  On Decomposing and Refining Specifications of Distributed Systems , 1989, REX Workshop.

[5]  Greg Nelson,et al.  A generalization of Dijkstra's calculus , 1989, ACM Trans. Program. Lang. Syst..

[6]  Ralph-Johan Back,et al.  Refinement Calculus, Part I: Sequential Nondeterministic Programs , 1989, REX Workshop.

[7]  Wei Chen,et al.  Towards a Calculus of Data Refinement , 1989, MPC.

[8]  Ralph-Johan Back,et al.  Changing data representation in the refinement calculus , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume II: Software Track.

[9]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[10]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

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

[12]  Ralph-Johan Back,et al.  Correctness preserving program refinements: Proof theory and applications , 1980 .