Skip to main content

Deliverables: a categorical approach to program development in type theory

  • Invited Lectures
  • Conference paper
  • First Online:
Mathematical Foundations of Computer Science 1993 (MFCS 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 711))

  • 221 Accesses

Abstract

We describe a method for formally developing functional programs using the “propositions as types” paradigm. The idea is that a function together with its proof of correctness forms a morphism in a category whose objects are input/output specifications. The functionproof pairs, called “deliverables”, can be combined by the operations of a cartesian closed category, indeed by the same operations which are usually used to combine functions. The method has been implemented using the Lego proof assistant and tried on some examples.

The authors gratefully acknowledge the support of the EC Logical Frameworks BRA and the SERC

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. J.Bénabou, Fibred categories and the foundations of naïve category theory, JSL, 1985.

    Google Scholar 

  2. S. Berardi, Type Dependence and Constructive Mathematics, Ph.D. thesis, Dipartimento di Informatica, Torino, Italy 1990.

    Google Scholar 

  3. N.G. de Bruijn, A survey of the project AUTOMATH, in: [35].

    Google Scholar 

  4. R.M.Burstall and J.H.McKinna, Deliverables: an approach to program development in Constructions, in [15], also available as a University of Edinburgh technical report ECS-LFCS-91-133.

    Google Scholar 

  5. R.Constable et al., Implementing Mathematics with the NuPrl Proof Development System, Prentice-Hall, New Jersey, 1986.

    Google Scholar 

  6. T.Coquand and G.Huet, Constructions: a Higher-order Proof system for mechanizing mathematics, in: Proceedings EUROCAL '85, LNCS 203, Springer-Verlag, 1985.

    Google Scholar 

  7. T.Coquand, Metamathematical Investigations of a Calculus of Constructions, in: [14].

    Google Scholar 

  8. P-L.Curien, Categorical Combinators, Sequential Algorithms and Functional Programming, Pitman Research Notes in Theoretical Computer Science, Pitman, London, 1986.

    Google Scholar 

  9. J-Y.Girard, Interpretation fonctionelle et élimination des coupures dans l'arithmétique de l'ordre supérieure, thesis, University of Paris VII, 1972.

    Google Scholar 

  10. S.Hayashi, Adjunction of semifunctors: categorical structures in nonextensional lambda calculus, in Theoretical Computer Science, Vol. 41, North-Holland, Amsterdam, 1985.

    Google Scholar 

  11. S.Hayashi, Singleton, Union and Intersection Types for Program Extraction, in: Proceedings of TACS '91, Sendai, Japan, Springer LNCS 526, Springer-Verlag, 1991.

    Google Scholar 

  12. C.A.R.Hoare, An axiomatic basis for computer programming, in: Communications of the ACM, Vol. 12, 1969.

    Google Scholar 

  13. W.A.Howard, The “formulae-as-types” notion of construction, in: [35].

    Google Scholar 

  14. G.Huet, T.Coquand, C.Paulin-Mohring et al., The Calculus of Constructions, Version 4-10, Documentation and user's manual, Rapports Techniques no.110, Projet Formel, INRIA-Rocquencourt, Paris, August 1989.

    Google Scholar 

  15. G.Huet and G.Plotkin, eds. Electronic Proceedings of the First Annual BRA Workshop on Logical Frameworks, Antibes, May 1990, distributed electronically to participating BRA sites, January 1991.

    Google Scholar 

  16. J.M.E.Hyland and A.M.Pitts, The Theory of Constructions: Categorical Semantics and Topos-theoretic models, in: Proceedings of the AMS Conference on Categories in Computer Science, Boulder, Colorado, 1986.

    Google Scholar 

  17. P.T.Johnstone and R.Paré, eds., Indexed Categories and their Applications, Springer LNM 661, Springer-Verlag, 1978.

    Google Scholar 

  18. J.Lambek and P.J.Scott, An Introduction to Higher-Order Categorical Logic, Cambridge Studies in Advanced Mathematics no. 7, Cambridge University Press, Cambridge, England, 1986.

    Google Scholar 

  19. Z.Luo, ECC, an Extended Calculus of Constructions, in: Proceedings of the Fourth IEEE Conference on Logic in Computer Science, Asilomar, California, 1989.

    Google Scholar 

  20. Z.Luo, An Extended Calculus of Constructions, Ph.D. Thesis, Department of Computer Science, University of Edinburgh, June 1990.

    Google Scholar 

  21. Z.Luo, Program Specification and Data Refinement in Type Theory, Technical Report ECS-LFCS-90-131, Department of Computer Science, University of Edinburgh, January 1991.

    Google Scholar 

  22. Z.Luo and R.Pollack, LEGO Proof Development System: User's Manual, LFCS Technical Report ECS-LFCS-92-211, 1992.

    Google Scholar 

  23. J.H.McKinna, Deliverables: a categorical approach to program development in type theory, Ph.D. thesis, University of Edinburgh, 1992.

    Google Scholar 

  24. P.Martin-Löf, An Intuitionistic Theory of Types: Predicative part, in: Logic Colloquium 73, North-Holland, Amsterdam, 1975.

    Google Scholar 

  25. P.Martin-Löf, Constructive Mathematics and Computer Programming, in: proceedings of the Conference on Logic, Philosophy and Methodology of Science VI, 1979, North-Holland, Amsterdam, 1982.

    Google Scholar 

  26. M.Mendler, The Logic of Design, Ph.D. thesis, University of Edinburgh, forthcoming, 1992.

    Google Scholar 

  27. B.Nordström, K.Petersson, and J.Smith, Programming in Martin-Löf's type theory, Oxford University Press, 1990.

    Google Scholar 

  28. C.Paulin-Mohring, Extracting F ω 's programs from proofs in the Calculus of Constructions, in: Proceedings POPL89, ACM, 1989.

    Google Scholar 

  29. C.Paulin-Mohring and B.Werner, Extracting and Executing Programs developed in the Inductive Constructions System: a Progress Report, in: [15].

    Google Scholar 

  30. D.Pavlovič, Predicates and Fibrations, proefschrift, University of Utrecht, 1990.

    Google Scholar 

  31. R.A.Pollack, Implicit Syntax, in: [15].

    Google Scholar 

  32. A.Salvesen and J.Smith, On the strength of the subset type in Martin-Löfs type theory, in: Proceedings of the Third LICS Symposium, IEEE, 1988.

    Google Scholar 

  33. A.Salvesen, On Information Discharging and Retrieval in Martin-Löf's type theory, Ph.D. thesis, Institute of Informatics, University of Oslo, 1989.

    Google Scholar 

  34. D.Sannella, Formal specification of ML programs, LFCS technical report ECS-LFCS-86-15, Dept. of Computer Science, University of Edinburgh, 1986.

    Google Scholar 

  35. J.P.Seldin and J.R.Hindley, eds., To H.B.Curry, essays in Combinatory Logic, λ-calculus and Formalism, Academic Press, 1980.

    Google Scholar 

  36. B.Reus and T.Streicher, Verifying Properties of Module Constructions in Type Theory, this volume.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Andrzej M. Borzyszkowski Stefan Sokołowski

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

McKinna, J., Burstall, R. (1993). Deliverables: a categorical approach to program development in type theory. In: Borzyszkowski, A.M., Sokołowski, S. (eds) Mathematical Foundations of Computer Science 1993. MFCS 1993. Lecture Notes in Computer Science, vol 711. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57182-5_3

Download citation

  • DOI: https://doi.org/10.1007/3-540-57182-5_3

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57182-7

  • Online ISBN: 978-3-540-47927-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics