Abstract
We define a general notion of data refinement that comprises the traditional notion of data refinement as a special case. Using the concepts of duals and adjoints, we define converse commands and find a symmetry between ordinary data refinement and a dual (backward) data refinement. We show how ordinary and backward data refinement are interpreted as simulation, and we derive rules for the piecewise data refinement of programs. Our results are valid for a general language, including demonic and angelic nondeterminism as well as nontermination and miracles.
Similar content being viewed by others
References
Abadi, M., Lamport, L.: The existence of refinement mappings. In: Proc 3rd Annual IEEE Symp. on Logic in Computer Science, pp. 165–175, Edinburgh 1988
Back, R.J.R.: Correctness Preserving Program Refinements: Proof Theory and Applications, vol. 131 of Mathematical Center Tracts. Amsterdam: Mathematical Centre 1980
Back, R.J.R.: A calculus of refinements for program derivations. Acta Inf.25, 593–624 (1988)
Back, R.J.R.: Changing data representation in the refinement calculus. In: 21st Hawaii International Conference on System Sciences 1989
Back, R.J.R.: Refinement calculus, part II: parallel and reactive programs. In: Bakker, J.W. de, Roever, W.P., Rozenberg, G. (eds.) Stepwise refinement of distributed systems. Models, formalisms, correctness. REX Workshop, Mook, The Netherlands (Lect. Notes Comput. Sci., vol. 430, pp. 67–93) Berlin, Heidelberg, New York: Springer 1989
Back, R.J.R.: Refining atomicity in parallel algorithms. In: Odijk, E., Rem, M., Syre, J.C. (eds.) PARLE'89. Conference on Parallel Architectures and Languages Europe, Eindhoven, The Netherlands (Lect. Notes Comput. Sci., vol. 366, pp. 199–216) Berlin, Heidelberg, New York: Springer 1989
Back, R.J.R., Wright, J. von: Refinement calculus, part I: Sequential non deterministic programs. In: Bakker, J.W. de, Roever, W.P., Rozenberg, G. (eds.) Stepwise refinement of distributed systems. Models, formalisms, correctness. REX Workshop, Mook, The Netherlands (Lect. Notes Comput. Sci., vol. 430, pp. 42–66) Berlin, Heidelberg, New York: Springer 1989
Back, R.J.R., Wright, J. von: Duality in specification languages: a lattice-theoretical approach. Acta Inf.27, 583–625 (1990)
Back, R.J.R., Wright, J. von: Statement inversion and strongest postcondition. Sci. Comput. Program.20, 223–251 (1993)
Chen, W., Udding, J.T.: Towards a calculus of data refinement. In: Shepscheut, J.L. van de (ed.) Mathematics of program construction. International Conference, Groningen, The Netherlands (Lect. Notes Comput. Sci., vol. 375, pp. 197–218) Berlin, Heidelberg, New York: Springer 1989
Dijkstra, E.W.: A discipline of programming. Englewood Cliffs, NJ: Prentice-Hall 1976
Dijkstra, E.W., Scholten, C.S.: Predicate calculus and program semantics (Texts Monogr. Comput. Sci.) Berlin, Heidelberg, New York: Springer 1990
Gardiner, P.H., Morgan, C.C.: A single complete rule for data refinement. Manuscript, 1991
Gardiner, P.H., Morgan, C.C.: Data refinement of predicate transformers. Theor. Comput. Sci.87(1), 143–162 (1991)
He, J., Hoare, C.A.R., Sanders, J.W.: Prespecification in data refinement. Inf. Process. Lett.25, 71–76 (1987)
Hoare, C.A.R.: Proofs of correctness of data representation. Acta Inf.1(4), 271–281 (1972)
Jonsson, B.: On decomposing and refining specifications of distributed systems. In: Bakker, J.W. de, Roever, W.P., Rozenberg, G. (eds.) Stepwise refinement of distributed systems. Models, formalisms, correctness. REX Workshop, Mook, The Netherlands (Lect. Notes Comput. Sci., vol. 430, pp. 361–385) Berlin, Heidelberg, New York: Springer 1989
Jonsson, B.: Simulations between specifications of distributed systems. In: Baeten, J.C., Groote, J.F. (eds.) CONCUR'91. Proceedings of 2nd International Conference on Concurrency Theory (Lect. Notes Comput Sci., vol. 527, pp. 346–360) Berlin, Heidelberg, New York: Springer 1991
Morgan, C.C., Gardiner, P.H.: Data refinement by calculation. Acta Inf.27, 481–503 (1990)
Morgan, C.C.: Data refinement by miracles. Inf. Process. Lett.26, 243–246 (1988)
Morgan, C.C.: The specification statement. ACM Trans. Program. Lang. Syst.10(3), 403–419 (1988)
Morgan, C.C., Woodcock, J.: Of wp and CSP. In: Proceedings of VDM-91, 1991
Morris, J.M.: A theoretical basis for stepwise refinement and the programming calculus. Sci. Comput. Programm.9, 287–306 (1987)
Morris, J.M.: Laws of data refinement. Acta Inf.26, 287–308 (1989)
Nelson, G.: A generalization of Dijkstra's calculus. ACM Trans. Program. Lang. Syst.11 (4), 517–562 (1989)
Wright, J. von: A lattice-theoretical basis for program refinement. PhD thesis, Åbo Akademi University, Turku, Finland 1990
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
von Wright, J. The lattice of data refinement. Acta Informatica 31, 105–135 (1994). https://doi.org/10.1007/BF01192157
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF01192157