Academia.eduAcademia.edu

Outline

A predicative analysis of structural recursion

2002

Abstract

We introduce a language based upon lambda calculus with products, coproducts and strictly positive inductive types that allows the definition of recursive terms. We present the implementation (foetus) of a syntactical check that ensures that all such terms are structurally recursive, i.e., recursive calls appear only with arguments structurally smaller than the input parameters of terms considered. To ensure the correctness of the termination checker, we show that all structurally recursive terms are normalizing with respect to a given operational semantics. To this end, we define a semantics on all types and a structural ordering on the values in this semantics and prove that all values are accessible with regard to this ordering. Finally, we point out how to do this proof predicatively using set based operators.

References (29)

  1. Abel, Andreas. (1999). A semantic analysis of structural recursion. Diplomarbeit, Uni- versity of Munich.
  2. Abel, Andreas. (2000). Specification and verification of a formal system for structurally recursive functions. Types for Proof and Programs, International Workshop, TYPES '99, Selected Papers. Lecture Notes in Computer Science, vol. 1956. Springer-Verlag.
  3. Abel, Andreas, & Altenkirch, Thorsten. (2000). A predicative strong normalisation proof for a λ-calculus with interleaving inductive types. Types for Proof and Programs, Inter- national Workshop, TYPES '99, Selected Papers. Lecture Notes in Computer Science, vol. 1956.
  4. Aczel, Peter. (1997). Notes on constructive set theory. Published on the WWW.
  5. Amadio, Roberto M., & Coupet-Grimal, Solange. (1998). Analysis of a guard condition in type theory. Nivat, Maurice (ed), Foundations of Software Science and Computation Structures, First International Conference, FoSSaCS'98. Lecture Notes in Computer Science, vol. 1378. Springer-Verlag.
  6. Barras, Bruno, et al. . (2000). The Coq proof assistant reference manual. INRIA. Version 6.3.11. Benl, Holger. (1998). Konstruktive Interpretation induktiver Typen. Diplomarbeit, Uni- versity of Munich.
  7. Blanqui, Frédéric, Jouannaud, Jean-Pierre, & Okada, Mitsuhiro. (2001). Inductive data type systems. Theoretical Computer Science, 277.
  8. Buchholz, Wilfried, Feferman, Solomon, Pohlers, Wolfram, & Sieg, Wilfried. (1981). It- erated inductive definitions and subsystems of analysis: Recent proof-theoretical studies. Lecture Notes in Mathematics, vol. 897. Springer-Verlag.
  9. Coquand, Catarina. (1999). Agda home page.
  10. Coquand, Thierry. (1992). Pattern matching with dependent types. Proceedings of the 1992 Workshop on Types for Proofs and Programs.
  11. Coquand, Thierry, & Huet, Gerard. (1988). The calculus of constructions. Information and Computation, 76, 95 -120.
  12. de Bruijn, N. G. (1972). Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem. Inda- gationes mathematicae, 34, 381-392.
  13. Dershowitz, Nachum. (1987). Termination of rewriting. Journal of Symbolic Computation, 3, 69-115.
  14. Giesl, Jürgen. (1995). Termination analysis for functional programs using term orderings. Proceedings of the Second International Static Analysis Symposium. Lecture Notes in Computer Science, vol. 983. Springer-Verlag.
  15. Gimenéz, Eduardo. (1995). Codifying guarded definitions with recursive schemes. Pages 39-59 of: Dybjer, Peter, Nordström, Bengt, & Smith, Jan (eds), Types for Proofs and Programs, International Workshop TYPES´94, Bøastad, Sweden, June 6-10, 1994, Se- lected Papers. Lecture Notes in Computer Science, vol. 996. Springer-Verlag.
  16. Gimenéz, Eduardo. (1998). Structural recursive definitions in type theory. Pages 397-408 of: Automata, Languages and Programming, 25th International Colloquium, ICALP'98, Aalborg, Denmark, July 13-17, 1998, Proceedings. Lecture Notes in Computer Science, vol. 1443. Springer-Verlag.
  17. Girard, Jean-Yves. (1972). Interprétation fonctionnelle et élimination des coupures dans l'arithmétique d'ordre supérieur. Thèse de Doctorat d' État, Université de Paris VII.
  18. Gow, Jeremy, Bundy, Alan, & Green, Ian. (1999). Extensions to the estimation calculus. Pages 258-272 of: Ganzinger, H., McAllester, D., & Voronkov, A. (eds), Proceedings of the 6th International Conference on Logic for Programming and Automated Reasoning (LPAR'99). LNAI, no. 1705. Springer-Verlag.
  19. Harper, Robert. (2000). Programming in Standard ML. Carnegie Mellon University.
  20. Harper, Robert, Honsell, Furio, & Plotkin, Gordon. (1993). A Framework for Defining Logics. Journal of the Association of Computing Machinery, 40(1), 143-184.
  21. Jones, Mark P, & Reid, Alastair. (1999). The Hugs 98 user manual. The Yale Haskell Group and the Oregon Graduate Institute of Science and Technology, http://www.haskell.org/hugs/.
  22. Lee, Chin Soon, Jones, Neil D., & Ben-Amram, Amir M. (2001). The size-change principle for program termination. ACM Symposium on Principles of Programming Languages. ACM Press.
  23. Martin-Löf, Per. (1984). Intuitionistic type theory. Bibliopolis.
  24. McAllester, David, & Arkoudas, Kostas. (1996). Walther recursion. McRobbie, M. A., & Slaney, J. K. (eds), 13th International Conference on Automated Deduction, New Brunswick, NJ, USA, July 30 -August 3, 1996, Proceedings. Lecture Notes in Computer Science, vol. 1104. Springer-Verlag.
  25. Nordström, Bengt, Petersson, Kent, & Smith, Jan M. (1990). Programming in Martin-Löf type theory: An introduction. Clarendon Press, Oxford.
  26. Pientka, Brigitte, & Pfenning, Frank. (2000). Termination and reduction checking in the Logical Framework. Workshop on Automation of Proofs by Mathematical Induction, CADE-17, Pittsburgh, PA, USA.
  27. Tarski, Alfred. (1955). A lattice-theoretical fixpoint theorem and its applications. Pacific Journal of Mathematics, 5, 285 -309.
  28. Telford, Alistair J., & Turner, David A. (1999). Ensuring termination in ESFP. 15th British Colloquium in Theoretical Computer Science.
  29. Walther, Christoph. (1988). Argument-bounded algorithms as a basis for automated ter- mination proofs. Pages 602-621 of: Lusk, Ewing L., & Overbeek, Ross A. (eds), 9th International Conference on Automated Deduction. Lecture Notes in Computer Science, vol. 310. Springer-Verlag.