Skip to main content
Log in

Do-it-yourself type theory

  • Published:
Formal Aspects of Computing

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.

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.

Institutional subscriptions

Similar content being viewed by others

References

  1. Allen, S.: A Non-Type-Theoretic Semantics for Type-Theoretic Language. PhD thesis, Cornell University, September 1987.

  2. Backhouse, R. C.: Notes on Martin-Löf's Theory of Types, parts 1 and 2. In:FACS ACTS, British Computer Society, 1986.

  3. 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.

  4. Backhouse, R. C.:Program Construction and Verification. Prentice-Hall International, 1986.

  5. Boyer, R. S. and Moore, J. S.:A Computational Logic. Academic Press, 1979.

  6. 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.

  7. 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.

  8. Chisholm, P.: Derivation of a Parsing Algorithm in Martin-Löf's Theory of Types.Science of Computer Programming,8, 1–42 (1987).

    Google Scholar 

  9. 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.

    Google Scholar 

  10. Church, A.:Annals of Mathematical Studies The Calculi of Lambda-Conversion. Vol. 6, Princeton University Press, Princeton, 1951.

    Google Scholar 

  11. Cleaveland, R. and Panangaden, P.:Type Theory and Concurrency. Technical Report TR 85–714, Department of Computer Science, Cornell University, December 1985.

  12. Constable, R. L.: Constructive Mathematics as a Programming Logic 1: Some Principles of Theory.Annals of Discrete Mathematics,24, 21–38 (1985).

    Google Scholar 

  13. Constable, R. L., Knoblock, T. B. and Bates, J. L.: Writing Programs that Construct Proofs.Journal of Automated Reasoning,1, 285–326, 1985.

    Google Scholar 

  14. 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.

  15. 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.

  16. Constable, R. L. et al.:Implementing Mathematics in the Nuprl Proof Development System. Prentice-Hall, 1986.

  17. Coquand, T. and Huet, G: Constructions: a Higher Order Proof System for Mechanizing Mathematics. In:Proc. of EUROCAL 85, Linz, Austria, April 1985.

  18. Curry, H. B. and Feys, R.:Combinatory Logic. Vol. 1. North-Holland, 1958.

  19. Dahl, O.-J., Dijkstra, E. W. and Hoare, C. A. R.:Structured Programming. Academic Press, 1972.

  20. Dijkstra, E. W.:A Discipline of Programming. Prentice-Hall, 1976.

  21. Dijkstra, E. W. and Feijen, W. H.-J.:Een Methode van Programmeren. Academic Service, 1984. Now available asA Method of Programming, Addison-Wesley, 1988.

  22. 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.

  23. 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.

  24. Gentzen, G.: Investigations into Logical Deduction. In:The Collected Papers of Gerhard Gentzen, M. E. Szabo, (ed.), pp. 68–213, North-Holland, 1969.

  25. Glivenko, V.: Sur Quelques Points de la Logique de m. Brouwer.Bulletins de la classe des sciences,15, 183–188, 1929.

    Google Scholar 

  26. Gordon, M. J., Milner, R. and Wadsworth, C. P.:Edinburgh LCF. Springer-Verlag, 1979.

  27. Gries, D.:The Science of Programming. Springer-Verlag, 1981.

  28. 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.

  29. Hehner, E. R. C.:The Logic of Programming. Prentice-Hall, 1984.

  30. 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.

  31. 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.

  32. 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.

  33. Hughes, J.:Why Functional Programming Matters. Technical Report, Department of Computer Science, University of Göteborg/Chalmers, 1984.

  34. Jackson, M. A.:Principles of Program Design. Academic Press, 1975.

  35. Jensen, K. and Wirth, N.:PASCAL: User Manual and Report. Springer-Verlag, 1975.

  36. Kleene, S. C.:Introduction to Metamathematics. North-Holland, Amsterdam, 1952.

    Google Scholar 

  37. Knuth, D. E., Morris, J. H. and Pratt, V. R.: Fast Pattern Matching in Strings.SIAM Journal of Computing,6, 325–350 (1977).

    Google Scholar 

  38. Lambek, J. and Scott, P. J.:Studies in Advanced Mathematics Vol 7, Introduction to Higher Order Categorical Logic. Cambridge University Press, 1986.

  39. 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.

  40. 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.

  41. 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.

  42. 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.

  43. Martin-Löf, P.:Intuitionistic Type Theory. Bibliopolis, 1984. Notes by Giovanni Sambin of a series of lectures given in Padova.

  44. Meertens, L.: Algorithmics — Towards Programming as a Mathematical Activity. In:Proc. CWI Symp. on Mathematics and Computer Science, pp. 289–334, North-Holland, 1986.

  45. Mendler, N. P.: Inductive Definitions in Type Theory. PhD thesis, Cornell University, September 1987.

  46. Milner, R.: A Theory of Type Polymorphism in Programming.Journal of Computer System Sciences.,17, 348–375 (1977).

    Google Scholar 

  47. Misra, J. and Gries, D.: Finding Repeated Elements.Science of Computer Programming,2, 143–152 (1982).

    Google Scholar 

  48. Mitchell, J. and Plotkin, G.: Abstract Types have Existential Types. In:Proc. 12th ACM Symp. on Principles of Programming Languages, pp. 37–51, 1985.

  49. Nordström, B.: Multilevel Functions in Type Theory. In:Programs as Data Objects, N. Jones (ed.), Springer-Verlag, LNCS 217, 1985.

  50. Nordström, B.:Terminating General Recursion. Technical Report, Programming Methodology Group, University of Göteborg/Chalmers, September 1987.

  51. Nordström, B. and Petersson, K.: Types and Specifications. In:IFIP'83, R. E. Mason (ed.), pp. 915–920, Elsevier Science Publishers, 1983.

  52. 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.

  53. 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.

  54. Paulson, L. C.: Constructing Recursion Operators in Intuitionistic Type Theory.Journal of Symbolic Computation,2, 325–355 (1986).

    Google Scholar 

  55. 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.

  56. 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.

  57. Reynolds, J. C.:The Craft of Programming. Prentice-Hall, 1981.

  58. 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.

  59. Schmidt, D.:Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, 1986.

  60. Schröder-Heister, P.: A Natural Extension of Natural Deduction.The Journal of Symbolic Logic,49, 1984.

  61. 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.

  62. Stoy, J.:Denotational Semantics. The MIT Press, 1977.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Issue Date:

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

Key words

Navigation