Hostname: page-component-76fb5796d-dfsvx Total loading time: 0 Render date: 2024-04-26T23:49:20.441Z Has data issue: false hasContentIssue false

A realizability interpretation of Church's simple theory of types

Published online by Cambridge University Press:  22 July 2016

ULRICH BERGER
Affiliation:
Department of Computer Science, Swansea University, Swansea, U.K. Email: u.berger@swan.ac.uk, cshouA@swansea.ac.uk
TIE HOU
Affiliation:
Department of Computer Science, Swansea University, Swansea, U.K. Email: u.berger@swan.ac.uk, cshouA@swansea.ac.uk

Abstract

We give a realizability interpretation of an intuitionistic version of Church's Simple Theory of Types (CST) which can be viewed as a formalization of intuitionistic higher-order logic. Although definable in CST we include operators for monotone induction and coinduction and provide simple realizers for them. Realizers are formally represented in an untyped lambda–calculus with pairing and case-construct. The purpose of this interpretation is to provide a foundation for the extraction of verified programs from formal proofs as an alternative to type-theoretic systems. The advantages of our approach are that (a) induction and coinduction are not restricted to the strictly positive case, (b) abstract mathematical structures and results may be imported, (c) the formalization is technically simpler than in other systems, for example, regarding the definition of realizability, which is a simple syntactical substitution, and the treatment of nested and simultaneous (co)inductive definitions.

Type
Paper
Copyright
Copyright © Cambridge University Press 2016 

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

Abel, A., Matthes, R. and Uustalu, T. (2005). Iteration and coiteration schemes for higher-order and nested datatypes. Theoretical Computer Science 333 (1–2) 366.CrossRefGoogle Scholar
Abel, A., Pientka, B. and Setzer, A. (2013). Copatterns: Programming infinite structures by observations. In: Proceedings of the 40th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'13) 27–38.Google Scholar
Andrews, P., Issar, S., Nesmith, D. and Pfennig, F. (1990). The TPS theorem proving system. In: Proceedings of the 10th International Conference on Automated Deduction 641–642.Google Scholar
Barendregt, H. (1992). Lambda calculi with types. In: Abramsky, S. Gabbay, D.M. and Maibaum, T.S.E. (eds.) Handb. Logic Comput. Sci., volume 2, Clarendon Press, Oxford 117309.Google Scholar
Benzmüller, C., Paulson, L., Theiss, F. and Fietzke, A. (2008). LEO-II - A cooperative automatic theorem prover for higher-order logic. In: Proceedings of the 4th International Joint Conference on Automated Reasoning, IJCAR 2008. Lecture Notes in Artificial Intelligence 5195 162170 Google Scholar
Berger, U. (2010). Realisability for induction and coinduction with applications to constructive analysis. Journal of Universal Computer Science 16 (18) 25352555.Google Scholar
Berger, U. (2011). From coinductive proofs to exact real arithmetic: Theory and applications. Logical Methods in Computer Science 7 (1) 124.Google Scholar
Berger, U. and Hou, T. (2012). Typed vs. untyped realizability. Electronic Notes in Theoretical Computer Science 286 5771.Google Scholar
Berger, U., Miyamoto, K., Schwichtenberg, H. and Seisenberger, M. (2011). Minlog - a tool for program extraction for supporting algebra and coalgebra. In: CALCO-Tools. Springer Lecture Notes in Computer Science 6859 393399.Google Scholar
Berger, U. and Seisenberger, M. (2010). Proofs, programs, processes. In: Ferreira, F., Löwe, B., Mayordomo, E. and Gomes, L.M. (eds.) Proceedings of the Programs, Proofs, Processes, 6th Conference on Computability in Europe, CiE 2010, Ponta Delgada, Azores, Portugal, June 30–July 4, 2010. Lecture Notes in Computer Science 6158 3948.Google Scholar
Berghofer, S. (2003). Program extraction in simply-typed higher order logic. Lecture Notes in Computer Science 2646 2138.Google Scholar
Brown, C. (2012). Satallax: An automatic higher-order prover. In: Proceedings of the 6th International Joint Conference on Automated Reasoning 111–117.Google Scholar
Church, A. (1940). A formulation of the simple theory of types. Journal of Symbolic Logic 5 (2) 5668.Google Scholar
Constable, R., Allen, S., Bromley, H., Cleaveland, W., Cremer, J., Harper, R., Howe, D., Knoblock, T., Mendler, N., Panangaden, P., Sasaki, J. and Smith, S. (1986). Implementing mathematics with the Nuprl proof development system. Prentice–Hall, New Jersey.Google Scholar
Farmer, W., Guttman, J. and Javier Thayer, F. (1993). IMPS: An interactive mathematical proof system. Journal of Automated Reasoning 11 653654.CrossRefGoogle Scholar
Feferman, S. (1979). Constructive theories of functions and classes. In: Logic Colloquium '78 97 159224.Google Scholar
Geuvers, H. (1992). Inductive and coinductive types with iteration and recursion. In: Nordström, B., Pettersson, K. and Plotkin, G. (eds.) Informal Proceedings Workshop on Types for Proofs and Programs, Båstad, Sweden, 8–12 June 1992, Dept. of Computing Science, Chalmers Univ. of Technology and Göteborg Univ. 193217.Google Scholar
Gierz, G., Hofmann, K.H., Keimel, K., Lawson, J.D., Mislove, M. and Scott, D.S. (2003). Continuous lattices and domains. Encyclopedia of Mathematics and its Applications, Vol. 93, Cambridge University Press.Google Scholar
Gordon, M. (1988). HOL: A proof generating system for higher-order logic. In: VLSI Specification, Verification and Synthesis 73–128.Google Scholar
Gordon, M. and Melham, T. (1993). Introduction to HOL: A Theorem Proving Environment for Higher Order Logic, Cambridge University Press.Google Scholar
Hayashi, S. and Nakano, H. (1987). PX, a computational logic. Technical Report, Research Institute for Mathematical Sciences, Kyoto University.Google Scholar
Krivine, J-L. (2003). Dependent choice, ‘quote’ and the clock. Theoretical Computer Science 308 (1–3) 259276.Google Scholar
Leivant, D. (1989). Contracting proofs to programs. In: Odifreddi, P. (ed.) Logic and Computer Science, Academic Press, London 279327.Google Scholar
Letouzey, P. (2003). A new extraction for Coq. In: Geuvers, H. and Wiedijk, F. (eds.) Types for Proofs and Programs, Second International Workshop, TYPES 2002. Springer-Verlag Lecture Notes in Computer Science 2646.Google Scholar
Mendler, N.P. (1991). Inductive types and type constraints in the second-order lambda calculus. Annals of Pure and Applied Logic 51 (1–2) 159172.Google Scholar
Miller, D. (1987). A compact representation of proofs. Studia Logica 46 (4) 347370.Google Scholar
Miranda-Perea, F. (2005). Realizability for monotone clausular (co)inductive definitions. Electronic Notes in Theoretical Computer Science 123 179193.Google Scholar
Miranda-Perea, F. and Gonzalez-Huesca, C. (2012). Mendler-style iso-(co)inductive predicates: a strongly normalizing approach. Electronic Proceedings in Theoretical Computer Science 81 3046.Google Scholar
Miyamoto, K., Forsberg, F.N. and Schwichtenberg, H. (2013). Program extraction from nested definitions. In: Pichardie, D., Blazy, S. and Paulin-Mohring, C. (eds.) Interactive Theorem Proving (Proceedings of the 4th ITP Conference). Springer Lecture Notes in Computer Science 7988 370385.Google Scholar
Nakata, K. and Uustalu, T. (2010). Resumptions, weak bisimilarity and big-step semantics for while with interactive I/O: An exercise in mixed induction-coinduction. Electronic Proceedings in Theoretical Computer Science 32 5775.Google Scholar
Oliva, P. and Streicher, T. (2008). On Krivine's realizability interpretation of classical second-order arithmetic. Fundamenta Informaticae - Logic for Pragmatics 84 (2) 207220.Google Scholar
Owre, S., Rajan, S., Rushby, S., Shankar, J. and Srivas, N. (1996). PVS: Combining specification, proof checking, and model checking. Lecture Notes in Computer Science 1102 411414.Google Scholar
Paulin-Mohring, C. (1989a). Extracting Fω 's programs from proofs in the calculus of constructions. In: Proceedings of the 16th Annual ACM Symposium on Principles of Programming Languages 89–104.Google Scholar
Paulin-Mohring, C. (1989b). Extraction de programmes dans le Calcul des Constructions. THESE. Laboratoire d'informatique de l'école normale supérieure - LIENS, FORMEL - INRIA Rocquencourt, Université Paris-Diderot - Paris VII.Google Scholar
Paulson, L. (1994). Isabelle: A generic theorem prover. Lecture Notes in Computer Science Vol. 828, Springer-Verlag Berlin Heidelberg.Google Scholar
Raffalli, C. and Ruyer, F. (2008). Realizability of the axiom of choice in HOL. (An Analysis of Krivine's Work) Fundamenta Informaticae - Logic for Pragmatics 84 (2) 241258.Google Scholar
Scott, S.C. (1970). Outline of a mathematical theory of computation. In: 4th Annual Princeton Conference on Information Sciences and Systems 169–176.Google Scholar
Tatsuta, M. (1998). Realizability of monotone coinductive definitions and its application to program synthesis. Lecture Notes in Computer Science 1422 338364.Google Scholar
The Coq Proof Assistant. http://coq.inria.fr/.Google Scholar
Van Oosten, J. (1994). Axiomatizing higher-order Kleene realizability. Annals of Pure and Applied Logic 70 87111.Google Scholar