Skip to main content
Log in

Data refinement, call by value and higher order programs

  • Published:
Formal Aspects of Computing

Abstract

Using 2-categorical laws of algorithmic refinement, we show soundness of data refinement for stored programs and hence for higher order procedures with value/result parameters. The refinement laws hold in a model that slightly generalizes the standard predicate transformer semantics for the usual imperative programming constructs including prescriptions.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abramsky, S.: Domain theory in logical form.Annals of Pure and Applied Logic, 51:1–77, 1991.

    Google Scholar 

  2. Back, R.J.R.: Correctness preserving program refinements: Proof theory and applications. Technical Report Tract 131, CWI, 1980.

  3. Back, R.J.R. and Butler, M.J.: Exploring summation and product operators in the refinement calculus. Technical Report on Computer Science & Mathematics, Ser. A, No. 152, Abo Akademi, September 1994. Available from ftp://ftp.abo.fi/pub/cs/techreports/reports/A94-152.ps.Z.

  4. Bonsangue, M. and Kok, J. N.: Isomorphisms between predicate and state transformers. InMFCS, pages 301–310. Springer LNCS 711, 1993.

  5. Betti, R. and Power, A.J.: On local adjointness of distributive bicategories.Bolletino U.M.I., 7:931–947, 1988.

    Google Scholar 

  6. Chen, W. and Udding, J.T.: Towards a calculus of data refinement. InProceedings, Mathematics of Program Construction, pages 197–218, 1989. LNCS 375.

  7. De Moor, O.: Inductive data types for predicate transformers.Information Processing Letters, 43(3):113–118, 1992.

    Google Scholar 

  8. Gardiner, P. and Morgan, C.: Data refinement of predicate transformers.Theoretical Computer Science, 87:143–162, 1991.

    Google Scholar 

  9. Gardiner, P.H.B., Martin, C.E. and de Moor, O.: An algebraic construction of predicate transformers.Science of Computer Programming, 22:21–44, 1994.

    Google Scholar 

  10. Hoare, C.A.R. and He, J.: Data refinement in a categorical setting. Technical Monograph PRG-PRG-90, November 1990.

  11. Hoare, C.A.R.: Proofs of correctness of data representations.Acta Informatica, 1:271–281, 1972.

    Google Scholar 

  12. Kelly, G.M.:Basic Concepts of Enriched Category Theory, volume 64 ofLondon Mathematical Society Lecture Notes. Cambridge, 1982.

  13. Kinoshita, Y. and Power, J.: Enriched categories and data refinement. Technical Report 94-23, University of Edinburgh Department of Computer Science, 1994.

  14. Martin, C.E.: Preordered categories and predicate transformers. Dissertation, Oxford University, 1991.

  15. Mitchell, J.C.: Type systems for programming languages. In J. van Leeuwen, editor,Handbook of Theoretical Computer Science, pages 365–458. MIT Press/Elsevier, 1990.

  16. Morris, J.M.: Laws of data refinement.Acta Informatica, 26:287–308, 1989.

    Google Scholar 

  17. Morgan, C.:Programming from Specifications, second edition. Prentice Hall, 1994.

  18. Naumann, D.A.: Predicate transformers and higher order programs.Theoretical Computer Science, 1992. To appear.

  19. Naumann, D.A.: Two-categories and program structure: Data types, refinement calculi, and predicate transformers. Dissertation, University of Texas at Austin, 1992.

    Google Scholar 

  20. Naumann, D.A.: Categorical models of higher order imperative programming. Typescript, 1994.

  21. Naumann, D.A.: Predicate transformer semantics of an Oberon-like language. In ErnstRüdiger Olderog, editor,Programming Concepts, Methods and Calculi, IFIP Transactions A-56. Elsevier, 1994.

  22. Naumann, D.A.: A recursion theorem for predicate transformers on inductive data types.Information Processing Letters, 50:329–336, 1994.

    Google Scholar 

  23. O'Hearn, P.W. and Tennant, R.D.: Relational parametricity and local variables (preliminary report). InProceedings, Twentieth POPL, pages 171–184, 1993.

  24. Pierce, B.C.:Basic Category Theory for Computer Scientists. MIT, 1991.

  25. Plotkin, G.: Post-graduate lecture notes in advanced domain theory. Typescript, 1981.

  26. Power, A.J.: An algebraic formulation for data refinement. InProceedings, 5th International Conf. on Mathematical Foundations of Programming Semantics, pages 390–401, 1989. LNCS 442.

  27. Smyth, M.B.: Power domains and predicate transformers: A topological view. InICALP, 1983. LNCS 154.

  28. Tennant, R.D.: Correctness of data representations in Algol-like languages. In A.W. Roscoe, editor,A Classical Mind: Essays Dedicated to C.A.R. Hoare. Prentice-Hall, 1994.

  29. Vickers, S.:Topology Via Logic. Cambridge, 1989.

Download references

Author information

Authors and Affiliations

Authors

Additional information

Partially supported by a Southwestern University Cullen Foundation grant.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Naumann, D.A. Data refinement, call by value and higher order programs. Formal Aspects of Computing 7, 652–662 (1995). https://doi.org/10.1007/BF01210999

Download citation

  • Received:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01210999

Keywords

Navigation