Abstract
This paper provides a tutorial introduction to a constructive theory of types based on, but incorporating some extensions to, that originally developed by Per Martin-Löf. The emphasis is on the relevance of the theory to the construction of computer programs and, in particular, on the formal relationship between program and data structure. Topics discussed include the principle of propositions as types, free types, congruence types, types with information loss and mutually recursive types. Several examples of program development within the theory are also discussed in detail.
Similar content being viewed by others
References
Allen, S.: A Non-Type-Theoretic Semantics for Type-Theoretic Language. PhD thesis, Cornell University, September 1987.
Backhouse, R. C.: Notes on Martin-Löf's Theory of Types, parts 1 and 2. In:FACS ACTS, British Computer Society, 1986.
Backhouse, R. C.:On the Meaning and Construction of the Rules in Martin-Löf's Theory of Types. Computing Science Notes CS 8606, Department of Mathematics and Computing Science, University of Groningen, 1986.
Backhouse, R. C.:Program Construction and Verification. Prentice-Hall International, 1986.
Boyer, R. S. and Moore, J. S.:A Computational Logic. Academic Press, 1979.
Boyer, R. S. and Moore, J. S.:MJRTY — A Fast Majority Vote Algorithm. Technical Report ICSCA-CMP-32, Institute for Computing Science and Computer Application, University of Texas at Austin, 1982.
de Bruijn, N. G.: A Survey of the Project Automath. In:Essays in Combinatory Logic, Lambda Calculus, and Formalism, J. P. Seldin and J. R. Hindley, (eds.), pp. 589–606, Academic Press, 1980.
Chisholm, P.: Derivation of a Parsing Algorithm in Martin-Löf's Theory of Types.Science of Computer Programming,8, 1–42 (1987).
Chisholm, P.: Investigations into Martin-Löf Type Theory as a Programming Logic. PhD thesis, Department of Computer Science, Heriot-Watt University, Edinburgh, July 1988.
Church, A.:Annals of Mathematical Studies The Calculi of Lambda-Conversion. Vol. 6, Princeton University Press, Princeton, 1951.
Cleaveland, R. and Panangaden, P.:Type Theory and Concurrency. Technical Report TR 85–714, Department of Computer Science, Cornell University, December 1985.
Constable, R. L.: Constructive Mathematics as a Programming Logic 1: Some Principles of Theory.Annals of Discrete Mathematics,24, 21–38 (1985).
Constable, R. L., Knoblock, T. B. and Bates, J. L.: Writing Programs that Construct Proofs.Journal of Automated Reasoning,1, 285–326, 1985.
Constable, R. L. and Mendler, N. P.: Recursive Definitions in Type Theory. In:Proc. Logics of Programs Conference, LNCS 193, pp. 61–78, Springer-Verlag, 1985.
Constable, R. L. and Smith, S. F.: Partial Objects in Constructive Type Theory. In:Proc. IEEE Symp. on Logic in Computer Science, pp. 183–193, Computer Society Press of the IEEE, 1987.
Constable, R. L. et al.:Implementing Mathematics in the Nuprl Proof Development System. Prentice-Hall, 1986.
Coquand, T. and Huet, G: Constructions: a Higher Order Proof System for Mechanizing Mathematics. In:Proc. of EUROCAL 85, Linz, Austria, April 1985.
Curry, H. B. and Feys, R.:Combinatory Logic. Vol. 1. North-Holland, 1958.
Dahl, O.-J., Dijkstra, E. W. and Hoare, C. A. R.:Structured Programming. Academic Press, 1972.
Dijkstra, E. W.:A Discipline of Programming. Prentice-Hall, 1976.
Dijkstra, E. W. and Feijen, W. H.-J.:Een Methode van Programmeren. Academic Service, 1984. Now available asA Method of Programming, Addison-Wesley, 1988.
Dybjer, P.: Inductively Defined Sets in Martin-Löf's Set Theory. In:Workshop on General Logic, A. Avron, R. Harper, F. Honsell, I. Mason and G. Plotkin, (eds.), Report ECS-LFCS-88-52, Department of Computer Science, University of Edinburgh, February, 1987.
Dyckhoff, R.:Category Theory as an Extension of Martin-Löf Type Theory. Technical Report CS/86/3, Department of Computational Science, University of St. Andrews, 1985.
Gentzen, G.: Investigations into Logical Deduction. In:The Collected Papers of Gerhard Gentzen, M. E. Szabo, (ed.), pp. 68–213, North-Holland, 1969.
Glivenko, V.: Sur Quelques Points de la Logique de m. Brouwer.Bulletins de la classe des sciences,15, 183–188, 1929.
Gordon, M. J., Milner, R. and Wadsworth, C. P.:Edinburgh LCF. Springer-Verlag, 1979.
Gries, D.:The Science of Programming. Springer-Verlag, 1981.
Harper, R., Honsell, F. A. and Plotkin, G.: A Framework for Defining Logics. In:Proc. Second Annual Conf. on Logic in Computer Science, Cornell, December 1987.
Hehner, E. R. C.:The Logic of Programming. Prentice-Hall, 1984.
Harper, R., Milner, R. and Tofte, M.:The Definition of Standard ML: Version 2. Report No. ECS-LFC-88-62, Laboratory for Foundations of Computer Science, University of Edinburgh, 1988.
Hoare, C. A. R.: Notes on Data Structuring. In:Structured Programming, O.-J. Dahl, E. W. Dijkstra and C. A. R. Hoare, (eds.), Academic Press, 1972.
Howard, W. A.: The Formulas-as-Types Notion of Construction. In:To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism, J. P. Seldin and J. R. Hindley, (eds.), pp. 479–490, Academic Press, 1980.
Hughes, J.:Why Functional Programming Matters. Technical Report, Department of Computer Science, University of Göteborg/Chalmers, 1984.
Jackson, M. A.:Principles of Program Design. Academic Press, 1975.
Jensen, K. and Wirth, N.:PASCAL: User Manual and Report. Springer-Verlag, 1975.
Kleene, S. C.:Introduction to Metamathematics. North-Holland, Amsterdam, 1952.
Knuth, D. E., Morris, J. H. and Pratt, V. R.: Fast Pattern Matching in Strings.SIAM Journal of Computing,6, 325–350 (1977).
Lambek, J. and Scott, P. J.:Studies in Advanced Mathematics Vol 7, Introduction to Higher Order Categorical Logic. Cambridge University Press, 1986.
Malcolm, G. R. and Chisholm, P.:Polymorphism and Information Loss in Martin-Löf's Type Theory. Report CS 8814, Department of Mathematics and Computing Science, University of Groningen, 1988.
Martin-Löf, P.: An Intuitionistic Theory of Types: Predicative Part. In:Logic Colloquium 1973, H. E. Rose and J. C. Shepherdson (eds.), pp. 73–118, North-Holland, 1975.
Martin-Löf, P.: Constructive Mathematics and Computer Programming. In:Logic, Methodology and Philosophy of Science, IV, L. J. Cohen, J. Los, H. Pfeiffer and K.-P. Podewski (eds.) pp. 153–175, North-Holland, 1982.
Martin-Löf, P.: Constructive Mathematics and Computer Programming. In:Mathematical Logic and Computer Programming, C. A. R. Hoare and J. C. Shepherdson (eds.), pp. 167–184, Prentice-Hall, 1984.
Martin-Löf, P.:Intuitionistic Type Theory. Bibliopolis, 1984. Notes by Giovanni Sambin of a series of lectures given in Padova.
Meertens, L.: Algorithmics — Towards Programming as a Mathematical Activity. In:Proc. CWI Symp. on Mathematics and Computer Science, pp. 289–334, North-Holland, 1986.
Mendler, N. P.: Inductive Definitions in Type Theory. PhD thesis, Cornell University, September 1987.
Milner, R.: A Theory of Type Polymorphism in Programming.Journal of Computer System Sciences.,17, 348–375 (1977).
Misra, J. and Gries, D.: Finding Repeated Elements.Science of Computer Programming,2, 143–152 (1982).
Mitchell, J. and Plotkin, G.: Abstract Types have Existential Types. In:Proc. 12th ACM Symp. on Principles of Programming Languages, pp. 37–51, 1985.
Nordström, B.: Multilevel Functions in Type Theory. In:Programs as Data Objects, N. Jones (ed.), Springer-Verlag, LNCS 217, 1985.
Nordström, B.:Terminating General Recursion. Technical Report, Programming Methodology Group, University of Göteborg/Chalmers, September 1987.
Nordström, B. and Petersson, K.: Types and Specifications. In:IFIP'83, R. E. Mason (ed.), pp. 915–920, Elsevier Science Publishers, 1983.
Nordström, B. and Petersson, K.:The Semantics of Module Specifications in Martin-Löf's Type Theory. Technical Report 36, Programming Methodology Group, University of Göteborg/Chalmers, October 1985.
Nordström, B., Petersson, K. and Smith, J.:An Introduction to Martin-Löf's Theory of Types. Technical Report, Programming Methodology Group, University of Göteborg/Chalmers, 1986.
Paulson, L. C.: Constructing Recursion Operators in Intuitionistic Type Theory.Journal of Symbolic Computation,2, 325–355 (1986).
Petersson, K. and Synek, D.,A Set Constructor for Trees in Intuitionistic Type Theory. Technical Report, Department of Computer Science, University of Göteborg/Chalmers, August 1987.
Prawitz, D.: Proofs and the Meaning and Completeness of the Logical Constants. In:Essays on Mathematical and Philosophical Logic, J. Hintikka, I. Niiniluoto and E. Saarinen (eds.), pp. 25–40, Reidel, 1979.
Reynolds, J. C.:The Craft of Programming. Prentice-Hall, 1981.
Saaman, E. and Malcolm, G. R.:Well-founded Recursion in Type Theory. Computing Science Notes CS 8701, Department of Mathematics and Computer Science, University of Groningen, 1987.
Schmidt, D.:Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, 1986.
Schröder-Heister, P.: A Natural Extension of Natural Deduction.The Journal of Symbolic Logic,49, 1984.
Smith, J.: On a Nonconstructive Type Theory and Program Derivation. In:Mathematical Logic and its Applications, D. G. Skordev (ed.), pp. 331–340, Plenum Publishing Corporation, 1987.
Stoy, J.:Denotational Semantics. The MIT Press, 1977.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Backhouse, R., Chisholm, P., Malcolm, G. et al. Do-it-yourself type theory. Formal Aspects of Computing 1, 19–84 (1989). https://doi.org/10.1007/BF01887198
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF01887198