Abstract
The objective of this paper is to provide a theoretical foundation for program extraction from inductive and coinductive proofs geared to practical applications. The novelties consist in the addition of inductive and coinductive definitions to a realizability interpretation for first-order proofs, a soundness proof for this system, and applications to the synthesis of non-trivial provably correct programs in the area of exact real number computation. We show that realizers, although per se untyped, can be assigned polymorphic recursive types and hence represent valid programs in a lazy functional programming language such as Haskell. Programs extracted from proofs using coinduction can be understood as perpetual processes producing infinite streams of data. Typical applications of such processes are computations in exact real arithmetic. As an example we show how to extract a program computing the average of two real numbers w.r.t. the binary signed digit representation.
Similar content being viewed by others
References
Benl, H., Berger, U., Schwichtenberg, H., Seisenberger, M., Zuber, W.: Proof theory at work: Program development in the Minlog system. In: Bibel, W., Schmitt, P.H. (eds.) Automated Deduction—A Basis for Applications. Applied Logic Series, vol. II, pp. 41–71. Kluwer, Dordrecht (1998)
Berger, U.: From coinductive proofs to exact real arithmetic: theory and applications. Log. Methods Comput. Sci. 7(1), (2011)
Bertot, Y.: Affine functions and series with co-inductive real numbers. Math. Struct. Comput. Sci. 17, 37–63 (2007)
Berger, U.: From coinductive proofs to exact real arithmetic. In: Grädel, E., Kahle, R. (eds.) Computer Science Logic. Lecture Notes in Comput. Sci., vol. 5771 pp. 132–146. Springer, Berlin (2009)
Berger, U.: Realisability for induction and coinduction with applications to constructive analysis. J. Univers. Comput. Sci. 16(18), 2535–2555 (2010)
Buchholz, W., Feferman, F., Pohlers, W., Sieg, W.: Iterated Inductive Definitions and Subsystems of Analysis: Recent Proof–Theoretical Studies. Lecture Notes in Mathematics, vol. 897. Springer, Berlin (1981)
Berger, U., Hou, T.: Coinduction for exact real number computation. Theory Comput. Syst. 43, 394–409 (2008)
Berger, U., Seisenberger, M.: Proofs, programs, processes. In: Ferreira, F., Löwe, B., Mayordomo, E., Gomes, L.M. (eds.) Programs, Proofs, Processes, 6th Conference on Computability in Europe, CiE 2010, Ponta Delgada, Azores, Portugal, June 30–July 4, 2010. Proceedings of Lecture Notes in Comput. Sci., vol. 6158, pp. 39–48. (2010)
Ciaffaglione, A., Di Gianantonio, P.: A certified, corecursive implementation of exact real numbers. Theor. Comput. Sci. 351, 39–51 (2006)
The Coq Proof Assistant. http://coq.inria.fr/
Edalat, A., Heckmann, R.: Computing with real numbers: I. The LFT approach to real number computation; II. A domain framework for computational geometry. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds.) Applied Semantics—Lecture Notes from the International Summer School, Caminha, Portugal, pp. 193–267. Springer, Berlin (2002)
Ghani, N., Hancock, P., Pattinson, D.: Continuous functions on final coalgebras. Electron. Notes Theor. Comput. Sci. 164, 141–155 (2006)
Geuvers, H., Niqui, M., Spitters, B., Wiedijk, F.: Constructive analysis, types and exact real numbers. Math. Struct. Comput. Sci. 17(1), 3–36 (2007)
Hernest, M.D., Oliva, P.: Hybrid functional interpretations. In: Beckmann, A., Dimitracopoulos, C., Löwe, B. (eds.) CiE 2008: Logic and Theory of Algorithms. Lecture Notes in Comput. Sci., vol. 5028, pp. 251–260. Springer, Berlin (2008)
Krivine, J.-L.: Dependent choice, ‘quote’ and the clock. Theor. Comput. Sci. 308, 259–276 (2003)
The Minlog System. http://www.mathematik.uni-muenchen.de/~minlog/
Miranda-Perea, F.: Realizability for monotone clausular (co)inductive definitions. Electron. Notes Theor. Comput. Sci. 123, 179–193 (2005)
Marcial-Romero, J.R., Escardo, M.H.: Semantics of a sequential language for exact real-number computation. Theor. Comput. Sci. 379(1–2), 120–141 (2007)
Niqui, M.: Coinductive formal reasoning in exact real arithmetic. Log. Methods Comput. Sci. 4(3–6), 1–40 (2008)
Plume, D.: A calculator for exact real number computation. Master’s thesis, University of Edinburgh, 1998
Ratiu, D., Trifonov, T.: Exploring the computational content of the infinite pigeonhole principle. J. Logic Comput. doi:10.1093/logcom/exq011
Schwichtenberg, H.: Realizability interpretation of proofs in constructive analysis. Theory Comput. Syst. 43(3–4), 583–602 (2008)
Tatsuta, M.: Realizability of monotone coinductive definitions and its application to program synthesis. In: Parikh, R. (ed.) Mathematics of Program Construction. Lecture Notes in Mathematics, vol. 1422, pp. 338–364. Springer, Berlin (1998)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Berger, U., Seisenberger, M. Proofs, Programs, Processes. Theory Comput Syst 51, 313–329 (2012). https://doi.org/10.1007/s00224-011-9325-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00224-011-9325-8