A predicative analysis of structural recursion

  • Authors:
  • Andreas Abel;Thorsten Altenkirch

  • Affiliations:
  • Department of Computer Science, University of Munich, 80538 Munich, Germany/ (e-mail: abel@tcs.informatik.uni-muenchen.de);School of Computer Science & Information Technology, University of Nottingham, Nottingham NG8 1BB, UK/ (e-mail: txa@cs.nott.ac.uk)

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

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.