Higher-Order Unification, Polymorphism, and Subsorts (Extended Abstract)

This paper analyzes the problems that arise in extending Huet's higher-order unification algorithm from the simply typed λ-calculus to one with type variables. A simple, incomplete, but in practice very useful extension to Huet's algorithm is discussed. This extension takes an abstract view of types. As a particular instance we explore a type system with ml-style polymorphism enriched with a notion of sorts. Sorts are partially ordered and classify types, thus giving rise to an order-sorted algebra of types. Type classes in the functional language Haskell can be understood as sorts in this sense. Sufficient conditions on the sort structure to ensure the existence of principal types are discussed. Finally we suggest a new type system for the λ-calculus which may pave the way to a complete unification algorithm for polymorphic terms.

[1]  M. Schmidt-Schauβ Computational Aspects of an Order-Sorted Logic with Term Declarations , 1989 .

[2]  Conal Elliott,et al.  Higher-order Unification with Dependent Function Types , 1989, RTA.

[3]  Peter B. Andrews,et al.  AUTOMATING HIGHER-ORDER LOGIC , 1984 .

[4]  Philip Wadler,et al.  How to make ad-hoc polymorphism less ad hoc , 1989, POPL '89.

[5]  J. Goguen,et al.  Order-Sorted Equational Computation , 1989 .

[6]  Tobias Nipkow,et al.  Type Classes and Overloading Resolution via Order-Sorted Unification , 1991, FPCA.

[7]  G. Nadathur A higher-order logic as the basis for logic programming , 1987 .

[8]  Tobias Nipkow,et al.  Isabelle tutorial and user’s manual , 1990 .

[9]  Manfred Schmidt-Schauß,et al.  Computational Aspects of an Order-Sorted Logic with Term Declarations , 1989, Lecture Notes in Computer Science.

[10]  Wayne Snyder,et al.  Higher-Order Unification Revisited: Complete Sets of Transformations , 1989, J. Symb. Comput..

[11]  WadlerPhilip,et al.  Report on the programming language Haskell , 1992 .

[12]  Joseph A. Goguen,et al.  Order-Sorted Unification , 1989, J. Symb. Comput..

[13]  Warren D. Goldfarb,et al.  The Undecidability of the Second-Order Unification Problem , 1981, Theor. Comput. Sci..

[14]  J. Roger Hindley,et al.  Introduction to combinators and λ-calculus , 1986, Acta Applicandae Mathematicae.

[15]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

[16]  Lawrence C. Paulson,et al.  Natural Deduction as Higher-Order Resolution , 1986, J. Log. Program..

[17]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[18]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[19]  Manfred Schmidt-Schauß A Many-Sorted Calculus with Polymorphic Functions Based on Resolution and Paramodulation , 1985, IJCAI.

[20]  Claude Kirchner,et al.  Solving Equations in Abstract Algebras: A Rule-Based Survey of Unification , 1991, Computational Logic - Essays in Honor of Alan Robinson.

[21]  Peter G. Harrison,et al.  Functional Programming , 1988 .