Skip to main content Accessibility help
×
Hostname: page-component-848d4c4894-cjp7w Total loading time: 0 Render date: 2024-06-16T09:38:07.686Z Has data issue: false hasContentIssue false

Computational complexity and induction for partial computable functions in type theory

from PART II - LOGIC AND COMPUTATION

Published online by Cambridge University Press:  31 March 2017

Wilfried Sieg
Affiliation:
Carnegie Mellon University, Pennsylvania
Richard Sommer
Affiliation:
Stanford University, California
Carolyn Talcott
Affiliation:
Stanford University, California
Get access

Summary

Abstract An adequate theory of partial computable functions should provide a basis for defining computational complexity measures and should justify the principle of computational induction for reasoning about programs on the basis of their recursive calls. There is no practical account of these notions in type theory, and consequently such concepts are not available in applications of type theory where they are greatly needed. It is also not clear how to provide a practical and adequate account in programming logics based on set theory.

This paper provides a practical theory supporting all these concepts in the setting of constructive type theories. We first introduce an extensional theory of partial computable functions in type theory. We then add support for intensional reasoning about programs by explicitly reflecting the essential properties of the underlying computation system. We use the resulting intensional reasoning tools to justify computational induction and to define computational complexity classes. Complexity classes take the formof complexity-constrained function types. These function types are also used in conjunction with the propositions-as-types principle to define a resource-bounded logic in which proofs of existence can guarantee feasibility of construction.

Introduction Over the past two decades, type theory has become the formalism of choice to support programming, verification and the logical foundations of computer science. The language of types underlies modern programming languages like Java and ML, and the theory of types drives significant efforts in compilation [29, 50, 36, 39, 42, 6, 47] and semantics [7, 23, 16]. Theorem proving systems based on type theory have been used for the verification of both hardware and software, and have also been very widely used for the formalization of mathematics [8, 10, 26, 24, 41, 46].

One of the major reasons type theory has enjoyed such wide successes is that it is a natural high-level language for computational mathematics and programming, a point that Sol Feferman has effectively made over the years [20, 22]. However, this advantage can sometimes pose a problem because the needs of mathematics and programming can diverge. In mathematics, equality is extensional, where only an object's value is significant. That is, if the result of f(a) is b then f(a) = b, and functions f and g are equal (in A → B, the space of functions from A to B) exactly when f(a) = g(a) for every a in A.

Type
Chapter
Information
Reflections on the Foundations of Mathematics
Essays in Honor of Solomon Feferman
, pp. 164 - 181
Publisher: Cambridge University Press
Print publication year: 2002

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

[1] Martin, Abadi, Luca, Cardelli, Pierre-Louis, Curien, and Jean-Jacques, Lévy, Explicit substitutions, Journal of Functional Programming, vol. 1 (1991), no. 4, pp. 375-416.Google Scholar
[2] Stuart F., Allen, Robert L., Constable, Douglas J., Howe, and William, Aitken, The semantics of reflected proof, Proceedings of the fifth symposium on logic in computer science, IEEE, June 1990, pp. 95-197.
[3] P., Audebaud, Partial objects in the calculus of constructions, Proc. of sixth symp. on logic in comp. sci. (IEEE, Vrije University, Amsterdam, The Netherlands), 1991, pp. 86-95.
[4] S., Bellantoni and S., Cook, A new recursion-theoretic characterization of the poly-time functions, Computational Complexity, vol. 2 (1992), pp. 97-110.Google Scholar
[5] Ralph, Benzinger, Automated complexity analysis of Nuprl extracted programs, Journal of Functional Programming, (2000), no. To Appear.Google Scholar
[6] Lars, Birkedal, Nick, Rothwell, Mads, Tofte, and David N., Turner, The ML Kit (version 1), Technical Report 93/14, Department of Computer Science, University of Copenhagen, 1993.
[7] L., Cardelli and P., Longo, A semantic basis for Quest, Journal of functional programming, 1991, pp. 1:417-458.Google Scholar
[8] R.L., Constable, S.F., Allen, H.M., Bromley, W.R., Cleaveland, J.F., Cremer, R.W., Harper, D.J., Howe, T.B., Knoblock, N.P.Mendler, P., Panangaden, J.T., Sasaki, and S.F., Smith, Implementing mathematics with the Nuprl proof development system, Prentice-Hall, 1986.
[9] Robert L., Constable, Type two computational complexity, Proceedings of the 5th annual acm symposium on the theory of computing, 1973, pp. 108-121.Google Scholar
[10] Robert L., Constable, Handbook of Proof Theory, ch. X: Types in Logic, Mathematics and Programming, Elsevier Science B.V., 1998.
[11] Robert L., Constable and Scott Fraser, Smith, Partial objects in constructive type theory, Second IEEE symposium of logic in computer science (Ithaca, New York), June 1987, pp. 183-193.Google Scholar
[12] Robert L., Constable and Scott Fraser, Smith, Computational foundations of basic recursive function theory, Third IEEE symposium of logic in computer science (Edinburgh, Scotland), July 1988, pp. 360-371.
[13] S. A., Cook and B.M., Kapron, Characterizations of the basic feasible functionals of finite type, Proceedings of msi workshop on feasible mathematics (New York) (S., Buss and P.J., Scott, editors), Birkhauser-Boston, 1990, pp. 71-95.
[14] S. A., Cook and B.M., Kapron, A new characterization of Mehlhorn's polynomial time functionals, FOCS, (1991).
[15] Karl, Crary, Admissibility of fixpoint induction over partial types, Fifteenth international conference on automated deduction (Lindau, Germany), Lecture Notes in Computer Science, vol. 1421, Springer-Verlag, July 1998, Extended version published as CMU technical report CMU-CS- 98-164., pp. 270-285.
[16] Karl, Crary, Programming language semantics in foundational type theory, International conference on programming concepts and methods (Shelter Island, New York), Chapman & Hall, 1998, Extended version published as Cornell University technical report TR98-1666.
[17] Karl, Crary, Type-theoretic methodology for practical programming languages, Ph.D. thesis, Department of Computer Science, Cornell University, Ithaca, New York, August 1998.
[18] Pierre-Louis, Curien, Thér`ese, Hardin, and Jean-Jacques, Lévy, Confluence properties of weak and strong calculi of explicit substitutions, Journal of the ACM, vol. 43 (1996), no. 2, pp. 362- 397.Google Scholar
[19] N. G., de Bruijn, Lambda-calculus notation with nameless dummies: a tool for automatic formula manipulation with application to the Church-Rosser theorem, Indag. Math., vol. 34 (1972), no. 5, pp. 381-392.Google Scholar
[20] Solomon, Feferman, A language and axioms for explicit mathematics, Algebra and logic, lecture notes in mathematics, vol. 480 (J. N., Crossley, editor), Springer, Berlin, 1975, pp. 87-139.
[21] Solomon, Feferman, Inductively presented systems and the formalization of metamathematics, Logic colloquium 80 (D., van Dalen, D., Lascar, and J., Smiley, editors), North-Holland, 1982, pp. 95-128.
[22] Solomon, Feferman, Polymorphic typed lambda-calculi in a type free axiomatic framework, Contemporary Mathematics, vol. 106 (1990), pp. 101-135.Google Scholar
[23] Robert, Harper and Chris, Stone, A type-theoretic interpretation of Standard ML, Proof, language and interaction: Essays in honour of robin milner, 2000.Google Scholar
[24] Jason, Hickey and Aleksey, Nogin, Fast tactic-based theorem proving, Proceedings of the 13th international conference on theorem proving in higher order logics, 2000, pp. 252-266.Google Scholar
[25] W., Howard, The formulas-as-types notion of construction, To H.B. Curry: Essays on combinatory logic, lambda-calculus and formalism (J. P., Seldin and J. R., Hindley, editors), Academic Press, 1980, pp. 479-490.
[26] Gérard, Huet, Gilles, Kahn, and Christine, Paulin-Mohring, The coq proof assistant : A tutorial : Version 6.1, Technical report, INRIA-Rocquencourt, CNRS and ENS Lyon, August 1997.
[27] N., Immerman, Languages which capture complexity classes, SIAM Journal of Computing, vol. 16 (1987), pp. 760-778.Google Scholar
[28] Daniel, Leivant, Stratified functional programs and computational complexity, Twentieth annual acm sigplan-sigact symposium on principles of programming languages (Charleston, SC), ACM, ACM Press, January 1993, pp. 325-333.
[29] Xavier, Leroy, Unboxed objects and polymorphic typing, Nineteenth ACM SIGACTSIGPLAN symposium on principles of programming languages, 1992, pp. 177-188.Google Scholar
[30] Magnusson, Lena, The implementation of alf—a proof editor based on martin-löf's monomorphic type theory with explicit substitution, Ph.D. thesis, Göteborg University, Göteborg Sweden, 1994.
[31] Per, Martin-Löf, An intuitionistic theory of types: Predicative part, Proceedings of the logic colloquium, 1973, Studies in Logic and the Foundations of Mathematics, vol. 80, North-Holland, 1975, pp. 73-118.
[32] Per, Martin-Löf, Constructive mathematics and computer programming, Proceedings of the sixth international congress of logic, methodology and philosophy of science, Studies in Logic and the Foundations of Mathematics, vol. 104, North-Holland, 1982, pp. 153-175.
[33] K., Mehlhorn, Polynomial and abstract subrecursive classes, Journal of Computer and System Sciences, (1976), pp. 148-176.Google Scholar
[34] Eugenio, Moggi, Notions of computation and monads, Information and Computation, vol. 93 (1991).Google Scholar
[35] Eugenio, Moggi, A general semantics for evaluation logic, Proceedings of ninth annual ieee symposium on logic in computer science, July 1994, pp. 353-362.Google Scholar
[36] Greg, Morrisett, Compiling with types, Ph.D. thesis, Carnegie Mellon University, School of Computer Science, Pittsburgh, Pennsylvania, December 1995.
[37] Greg, Morrisett, Matthias, Felleisen, and Robert, Harper, Abstract models of memory management, 1995 conference on functional programming languages and computer architecture, 1995.Google Scholar
[38] Greg, Morrisett and Robert, Harper, Semantics of memory management for polymorphic languages, Technical Report CMU-CS-96-176, Carnegie Mellon University, School of Computer Science, September 1996.
[39] Greg, Morrisett, David, Walker, Karl, Crary, and Neal, Glew, From System F to typed assembly language, Twenty-fifth ACM SIGACT-SIGPLAN symposium on principles of programming languages (San Diego), January 1998, To appear.
[40] R., Parikh, Existence and feasibility in arithmetic, Jour. Assoc. Symbolic Logic, vol. 36 (1971), pp. 494-508.Google Scholar
[41] Christine, Paulin-Mohring and Benjamin, Werner, Synthesis of ml programs in the system coq, Journal of Symbolic Computations, vol. 15 (1993), pp. 607-640.Google Scholar
[42] Simon L., Peyton Jones, Cordelia V., Hall, Kevin Hammond, Will Partain, and Philip Wadler, The Glasgow Haskell compiler: a technical overview, Proc. uk joint framework for information technology (jfit) technical conference, July 1993.
[43] A., Seth, There is no recursive axiomatization for feasible functionals of type 2, Proceedings of the 7th annual ieee symposium on logic in computer science, 1992.
[44] A., Seth, Some desirable conditions for feasible functionals of type 2, Eighth IEEE symposium of logic in computer science (Montreal), June 1993, pp. 320-331.
[45] A., Seth, Turing machine characterizations of feasible functionals of all finite types, Proceedings of MSI workshop on feasible mathematics, 1994.
[46] N., Shankar, S., Owre, and J. M., Rushby, The PVS proof checker: A reference manual, Computer Science Laboratory, SRI International, Menlo Park, CA, February 1993.
[47] Zhong, Shao and Andrew, Appel, A type-based compiler for Standard ML, 1996 ACM SIGPLAN conference on programming language design and implementation (La Jolla), June 1995, pp. 116-129.
[48] Scott F., Smith, Hybrid partial-total type theory, International Journal of Foundations of Computer Science, vol. 6 (1995), pp. 235-263.Google Scholar
[49] Scott Fraser, Smith, Partial objects in type theory, Ph.D. thesis, Department of Computer Science, Cornell University, Ithaca, New York, January 1989.
[50] D., Tarditi, G.Morrisett, P., Cheng, C., Stone, R., Harper, and P., Lee, TIL: A type-directed optimizing compiler for ML, 1996 ACM SIGPLAN conference on programming language design and implementation, May 1996, pp. 181-192.
[51] K., Weihrauch and Ch., Kreitz, Type 2 computational complexity of functions on Cantor's space, Theoretical Computer Science, vol. 82 (1991), pp. 1-18.Google Scholar

Save book to Kindle

To save this book to your Kindle, first ensure coreplatform@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about saving to your Kindle.

Note you can select to save to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Available formats
×

Save book to Dropbox

To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Dropbox.

Available formats
×

Save book to Google Drive

To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Google Drive.

Available formats
×