Skip to main content

Recursive Functions with Higher Order Domains

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3461))

Abstract

In a series of articles, we developed a method to translate general recursive functions written in a functional programming style into constructive type theory. Three problems remained: the method could not properly deal with functions taking functional arguments, the translation of terms containing λ-abstractions was too strict, and partial application of general recursive functions was not allowed. Here, we show how the three problems can be solved by defining a type of partial functions between given types. Every function, including arguments to higher order functions, λ-abstractions and partially applied functions, is then translated as a pair consisting of a domain predicate and a function dependent on the predicate. Higher order functions are assigned domain predicates that inherit termination conditions from their functional arguments. The translation of a λ-abstraction does not need to be total anymore, but generates a local termination condition. The domain predicate of a partially applied function is defined by fixing the given arguments in the domain of the original function. As in our previous articles, simultaneous induction-recursion is required to deal with nested recursive functions. Since by using our method the inductive definition of the domain predicate can refer globally to the domain predicate itself, here we need to work on an impredicative type theory for the method to apply to all functions. However, in most practical cases the method can be adapted to work on a predicative type theory with type universes.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bove, A., Capretta, V.: Nested general recursion and partiality in type theory. In: Boulton, R.J., Jackson, P.B. (eds.) TPHOLs 2001. LNCS, vol. 2152, pp. 121–135. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  2. Bove, A., Capretta, V.: Modelling general recursion in type theory. To appear in Mathematical Structures in Computer Science (May 2004) Available on the WWW: http://www.cs.chalmers.se/~bove/Papers/general_presentation.ps.gz

  3. Blanqui, F.: Inductive types in the calculus of algebraic constructions. In: Hofmann, M.O. (ed.) TLCA 2003. LNCS, vol. 2701, pp. 46–59. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  4. Bove, A.: Simple general recursion in type theory. Nordic Journal of Computing 8(1), 22–42 (2001)

    MATH  MathSciNet  Google Scholar 

  5. Bove, A.: Mutual general recursion in type theory. Technical Report, Chalmers University of Technology (May 2002) Available on the WWW: http://www.cs.chalmers.se/~bove/Papers/mutual_rec.ps.gz

  6. Bove, A.: General Recursion in Type Theory. PhD thesis, Chalmers University of Technology, Department of Computing Science (November 2002) Available on the WWW: http://cs.chalmers.se/~bove/Papers/phd_thesis.ps.gz

  7. Bove, A.: General recursion in type theory. In: Geuvers, H., Wiedijk, F. (eds.) TYPES 2002. LNCS, vol. 2646, pp. 39–58. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  8. Caprett, V.: A polymorphic representation of induction-recursion. Draft paper (2004), Available from, http://www.science.uottawa.ca/~vcapr396/

  9. Coquand, T., Huet, G.: The Calculus of Constructions. Information and Computation 76, 95–120 (1988)

    Article  MATH  MathSciNet  Google Scholar 

  10. Constable, R.L., Mendler, N.P.: Recursive definitions in type theory. In: Parikh, R. (ed.) Logic of Programs 1985. LNCS, vol. 193, pp. 61–78. Springer, Heidelberg (1985)

    Google Scholar 

  11. Coq Development Team. LogiCal Project. The Coq Proof Assistant. Reference Manual. Version 7.4. INRIA (2002)

    Google Scholar 

  12. Dubois, C., Donzeau-Gouge, V.V.: A step towards the mechanization of partial functions: Domains as inductive predicates. In: Kerber, M. (ed.) CADE-15, The 15th International Conference on Automated Deduction, Workshop Mechanization of Partial Functions, July 1998, pp. 53–62 (1998)

    Google Scholar 

  13. Dybjer, P.: A general formulation of simultaneous inductive-recursive definitions in type theory. Journal of Symbolic Logic 65(2) (June 2000)

    Google Scholar 

  14. Finn, S., Fourman, M.P., Longley, J.: Partial functions in a total setting. Journal of Automated Reasoning 18(1), 85–104 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  15. Peyton Jones, S. (ed.): Haskell 98 Language and Libraries. The Revised Report. Cambridge University Press (April 2003)

    Google Scholar 

  16. Paulin, C.: How widely applicable is Coq? Contribution to the Coq mailing list, 19 (August 2002), http://pauillac.inria.fr/bin/wilma_hiliter/coq-club/200208/msg00003.html

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bove, A., Capretta, V. (2005). Recursive Functions with Higher Order Domains. In: Urzyczyn, P. (eds) Typed Lambda Calculi and Applications. TLCA 2005. Lecture Notes in Computer Science, vol 3461. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11417170_10

Download citation

  • DOI: https://doi.org/10.1007/11417170_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-25593-2

  • Online ISBN: 978-3-540-32014-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics