Unification of higher-order patterns in a simply typed lambda-calculus with finite products and terminal type

  • Roland Fettig
  • Bernd Löchner
Regular Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1103)

Abstract

We develop a higher-order unification algorithm for a restricted class of simply typed lambda terms with function space and product type constructors. It is based on an inference system manipulating so called higher-order product-patterns which is proven to be sound and complete. Allowing tuple constructors in lambda binders provides elegant notations. We show that our algorithm terminates on each input and produces a most general unifier if one exists. The approach also extends smoothly to a calculus with terminal type.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Aka93]
    Y. Akama. On Mints' reductions for ccc-Calculus. In Typed Lambda Calculi and Applications, volume 664 of LNCS, pages 1–12, 1993.Google Scholar
  2. [DC95]
    R. Di Cosmo. Isomorphisms of Types. Birkhäuser, 1995.Google Scholar
  3. [DCK93]
    R. Di Cosmo and D. Kesner. A confluent reduction for the extensional typed λs-calculus with pairs, sums, recursion, and terminal object. In A. Lingas et al., editors, ICALP, volume 697 of LNCS, pages 645–656, 1993.Google Scholar
  4. [Dug93]
    D. Duggan. Unification with Extended Patterns. Technical Report CS-93-37, University of Waterloo, 1993. To appear in Theoretical Computer Science.Google Scholar
  5. [Gol81]
    W. D. Goldfarb. The undecidability of the second-order unification problem. Theoretical Computer Science, 13:225–230, 1981.CrossRefGoogle Scholar
  6. [Hue75]
    G. P. Huet. A Unification Algorithm for Typed λ-Calculus. Theoretical Computer Science, 1:27–57, 1975.CrossRefGoogle Scholar
  7. [JG95]
    C. B. Jay and N. Ghani. The virtues of eta-expansion. J. Functional Programming, 5(2):135–154, April 1995.Google Scholar
  8. [Joh94]
    T. Johnsson. Fold-unfold transformations on state monadic interpreters. In K. Hammond et al., editors, Functional programming, Glasgow, Workshops in Computing. Springer-Verlag, 1994.Google Scholar
  9. [Kes94]
    D. Kesner. Reasoning about Layered, Wildcard and Product Patterns. In G. Levi and M. Rodnguez-Artalejo, editors, Algebraic and Logic Programming, volume 850 of LNCS, pages 253–268, 1994.Google Scholar
  10. [LS86]
    J. Lambek and P. J. Scott. Introduction to higher order categorical logic. Cambridge University Press, 1986.Google Scholar
  11. [Mil91]
    D. Miller. A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification. J. Logic Comp., 1(4):497–536, 1991.Google Scholar
  12. [Nip91]
    T. Nipkow. Higher-order critical pairs. In Proc. sixth annual IEEE Symposium on Logic in Computer Science, pages 342–349, 1991.Google Scholar
  13. [Nip93]
    T. Nipkow. Functional unification of higher-order patterns. In Proc. eighth annual IEEE Symposium on Logic in Computer Science, pages 64–74, 1993.Google Scholar
  14. [Pot81]
    G. Pottinger. The Church Rosser Theorem for the Typed lambda-calculus with Surjective Pairing. Notre Dame J. of Formal Logic, 22(3):264–268, 1981.Google Scholar
  15. [SG89]
    W. Snyder and J. Gallier. Higher-Order Unification Revisited: Complete Sets of Transformations. Journal of Symbolic Computation, 8:101–140, 1989.Google Scholar

Copyright information

© Springer-Verlag 1996

Authors and Affiliations

  • Roland Fettig
    • 1
  • Bernd Löchner
    • 1
  1. 1.Fachbereich InformatikUniversität KaiserslauternKaiserslauternGermany

Personalised recommendations