Unification of higher-order patterns in a simply typed lambda-calculus with finite products and terminal type
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.
Unable to display preview. Download preview PDF.
- [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
- [DC95]R. Di Cosmo. Isomorphisms of Types. Birkhäuser, 1995.Google Scholar
- [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
- [Dug93]D. Duggan. Unification with Extended Patterns. Technical Report CS-93-37, University of Waterloo, 1993. To appear in Theoretical Computer Science.Google Scholar
- [JG95]C. B. Jay and N. Ghani. The virtues of eta-expansion. J. Functional Programming, 5(2):135–154, April 1995.Google Scholar
- [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
- [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
- [LS86]J. Lambek and P. J. Scott. Introduction to higher order categorical logic. Cambridge University Press, 1986.Google Scholar
- [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
- [Nip91]T. Nipkow. Higher-order critical pairs. In Proc. sixth annual IEEE Symposium on Logic in Computer Science, pages 342–349, 1991.Google Scholar
- [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
- [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
- [SG89]W. Snyder and J. Gallier. Higher-Order Unification Revisited: Complete Sets of Transformations. Journal of Symbolic Computation, 8:101–140, 1989.Google Scholar