Abstract
Minlog is a proof assistant which automatically extracts computational content in an extension of Gödel’s T from formalized proofs. We report on extending Minlog to deal with predicates defined using a particular combination of induction and coinduction, via so-called nested definitions. In order to increase the efficiency of the extracted programs, we have also implemented a feature to translate terms into Haskell programs. To illustrate our theory and implementation, a formalisation of a theory of uniformly continuous functions due to Berger is presented.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Berger, U.: Program extraction from normalization proofs. In: Bezem, M., Groote, J.F. (eds.) TLCA 1993. LNCS, vol. 664, pp. 91–106. Springer, Heidelberg (1993)
Berger, U.: From coinductive proofs to exact real arithmetic: theory and applications. Logical Methods in Computer Science 7(1), 1–24 (2011)
Berger, U., Seisenberger, M.: Proofs, programs, processes. Theory of Computing Systems 51, 313–329 (2012)
Berghofer, S., Nipkow, T.: Executing higher order logic. In: Callaghan, P., Luo, Z., McKinna, J., Pollack, R. (eds.) TYPES 2000. LNCS, vol. 2277, pp. 24–40. Springer, Heidelberg (2002)
Bird, R., Meertens, L.: Nested datatypes. In: Jeuring, J. (ed.) MPC 1998. LNCS, vol. 1422, pp. 52–67. Springer, Heidelberg (1998)
Bishop, E.: Foundations of Constructive Analysis. McGraw-Hill, New York (1967)
Ciaffaglione, A., Di Gianantonio, P.: A co-inductive approach to real numbers. In: Coquand, T., Nordström, B., Dybjer, P., Smith, J. (eds.) TYPES 1999. LNCS, vol. 1956, pp. 114–130. Springer, Heidelberg (2000)
Coq, http://coq.inria.fr/
Danielsson, N.A., Altenkirch, T.: Mixing Induction and Coinduction. Draft (2009)
Ghani, N., Hancock, P., Pattinson, D.: Continuous functions on final coalgebras. In: Power, J. (ed.) CMCS 2006. Electr. Notes in Theoret. Computer Science (2006)
Hancock, P., Pattinson, D., Ghani, N.: Representations of stream processors using nested fixed points. Logical Methods in Computer Science 5(3) (2009)
Isabelle, http://isabelle.in.tum.de/
Jacobs, B., Rutten, J.: An introduction to (co)algebras and (co)induction. In: Sangiorgi, D., Rutten, J. (eds.) Advanced Topics in Bisimulation and Coinduction, vol. 52, pp. 38–99. Cambridge University Press (2011)
Krebbers, R., Spitters, B.: Type classes for efficient exact real arithmetic in Coq. Logical Methods in Computer Science 9(1) (2013)
Kreisel, G.: Interpretation of analysis by means of constructive functionals of finite types. In: Heyting, A. (ed.) Constructivity in Mathematics, pp. 101–128. North-Holland, Amsterdam (1959)
Letouzey, P.: Extraction in coq: An overview. In: Beckmann, A., Dimitracopoulos, C., Löwe, B. (eds.) CiE 2008. LNCS, vol. 5028, pp. 359–369. Springer, Heidelberg (2008)
The Minlog System, http://www.minlog-system.de
Mitchell, N.: HLint, http://community.haskell.org/~ndm/hlint/
Nakata, K., Uustalu, T.: Resumptions, weak bisimilarity and big-step semantics for while with interactive I/O: An exercise in mixed induction-coinduction. In: Aceto, L., Sobocinski, P. (eds.) SOS. EPTCS, vol. 32, pp. 57–75 (2010)
Nuprl, http://www.nuprl.org/
Schwichtenberg, H.: Minlog. In: Wiedijk, F. (ed.) The Seventeen Provers of the World. LNCS (LNAI), vol. 3600, pp. 151–157. Springer, Heidelberg (2006)
Schwichtenberg, H.: Constructive analysis with witnesses. Manuscript (April 2012), http://www.math.lmu.de/~schwicht/seminars/semws11/constr11.pdf
Schwichtenberg, H., Wainer, S.S.: Proofs and Computations. In: Perspectives in Logic. Association for Symbolic Logic and Cambridge University Press (2012)
Scott, D.: Domains for denotational semantics. In: Nielsen, M., Schmidt, E.M. (eds.) ICALP 1982. LNCS, vol. 140, pp. 577–610. Springer, Heidelberg (1982)
Takeyama, M.: A new compiler MAlonzo, https://lists.chalmers.se/pipermail/agda/2008/000219.html
Wiedmer, E.: Exaktes Rechnen mit reellen Zahlen und anderen unendlichen Objekten. PhD thesis, ETH Zürich (1977)
Wiedmer, E.: Computing with infinite objects. Theoretical Comput. Sci. 10, 133–155 (1980)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Miyamoto, K., Nordvall Forsberg, F., Schwichtenberg, H. (2013). Program Extraction from Nested Definitions. In: Blazy, S., Paulin-Mohring, C., Pichardie, D. (eds) Interactive Theorem Proving. ITP 2013. Lecture Notes in Computer Science, vol 7998. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39634-2_27
Download citation
DOI: https://doi.org/10.1007/978-3-642-39634-2_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-39633-5
Online ISBN: 978-3-642-39634-2
eBook Packages: Computer ScienceComputer Science (R0)