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
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
J.Bénabou, Fibred categories and the foundations of naïve category theory, JSL, 1985.
S. Berardi, Type Dependence and Constructive Mathematics, Ph.D. thesis, Dipartimento di Informatica, Torino, Italy 1990.
N.G. de Bruijn, A survey of the project AUTOMATH, in: [35].
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.
R.Constable et al., Implementing Mathematics with the NuPrl Proof Development System, Prentice-Hall, New Jersey, 1986.
T.Coquand and G.Huet, Constructions: a Higher-order Proof system for mechanizing mathematics, in: Proceedings EUROCAL '85, LNCS 203, Springer-Verlag, 1985.
T.Coquand, Metamathematical Investigations of a Calculus of Constructions, in: [14].
P-L.Curien, Categorical Combinators, Sequential Algorithms and Functional Programming, Pitman Research Notes in Theoretical Computer Science, Pitman, London, 1986.
J-Y.Girard, Interpretation fonctionelle et élimination des coupures dans l'arithmétique de l'ordre supérieure, thesis, University of Paris VII, 1972.
S.Hayashi, Adjunction of semifunctors: categorical structures in nonextensional lambda calculus, in Theoretical Computer Science, Vol. 41, North-Holland, Amsterdam, 1985.
S.Hayashi, Singleton, Union and Intersection Types for Program Extraction, in: Proceedings of TACS '91, Sendai, Japan, Springer LNCS 526, Springer-Verlag, 1991.
C.A.R.Hoare, An axiomatic basis for computer programming, in: Communications of the ACM, Vol. 12, 1969.
W.A.Howard, The “formulae-as-types” notion of construction, in: [35].
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.
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.
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.
P.T.Johnstone and R.Paré, eds., Indexed Categories and their Applications, Springer LNM 661, Springer-Verlag, 1978.
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.
Z.Luo, ECC, an Extended Calculus of Constructions, in: Proceedings of the Fourth IEEE Conference on Logic in Computer Science, Asilomar, California, 1989.
Z.Luo, An Extended Calculus of Constructions, Ph.D. Thesis, Department of Computer Science, University of Edinburgh, June 1990.
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.
Z.Luo and R.Pollack, LEGO Proof Development System: User's Manual, LFCS Technical Report ECS-LFCS-92-211, 1992.
J.H.McKinna, Deliverables: a categorical approach to program development in type theory, Ph.D. thesis, University of Edinburgh, 1992.
P.Martin-Löf, An Intuitionistic Theory of Types: Predicative part, in: Logic Colloquium 73, North-Holland, Amsterdam, 1975.
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.
M.Mendler, The Logic of Design, Ph.D. thesis, University of Edinburgh, forthcoming, 1992.
B.Nordström, K.Petersson, and J.Smith, Programming in Martin-Löf's type theory, Oxford University Press, 1990.
C.Paulin-Mohring, Extracting F ω 's programs from proofs in the Calculus of Constructions, in: Proceedings POPL89, ACM, 1989.
C.Paulin-Mohring and B.Werner, Extracting and Executing Programs developed in the Inductive Constructions System: a Progress Report, in: [15].
D.Pavlovič, Predicates and Fibrations, proefschrift, University of Utrecht, 1990.
R.A.Pollack, Implicit Syntax, in: [15].
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.
A.Salvesen, On Information Discharging and Retrieval in Martin-Löf's type theory, Ph.D. thesis, Institute of Informatics, University of Oslo, 1989.
D.Sannella, Formal specification of ML programs, LFCS technical report ECS-LFCS-86-15, Dept. of Computer Science, University of Edinburgh, 1986.
J.P.Seldin and J.R.Hindley, eds., To H.B.Curry, essays in Combinatory Logic, λ-calculus and Formalism, Academic Press, 1980.
B.Reus and T.Streicher, Verifying Properties of Module Constructions in Type Theory, this volume.
Author information
Authors and Affiliations
Editor information
Rights 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