Higher-order Unification with Dependent Function Types

@inproceedings{Elliott1989HigherorderUW,
  title={Higher-order Unification with Dependent Function Types},
  author={Conal Elliott},
  booktitle={RTA},
  year={1989}
}
Roughly fifteen years ago, Huet developed a complete semidecision algorithm for unification in the simply typed λ-calculus (λ→). In spite of the undecidability of this problem, his algorithm is quite usable in practice. Since then, many important applications have come about in such areas as theorem proving, type inference, program transformation, and machine learning. 
Higher-Order Unification via Combinators
Higher-Order Unification, Polymorphism, and Subsorts (Extended Abstract)
TLDR
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 and suggests a new type system for the λ -calculus which may pave the way to a complete unification algorithm for polymorphic terms.
Ramified higher-order unification
  • Jean Goubault-Larrecq
  • Mathematics
    Proceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science
  • 1997
TLDR
It is argued that ramified systems are expressive higher-order frameworks in which automated proof search should be practical, and unification in the pure ramified theory of types with integer levels is decidable.
Higher-order combinators
We present an algorithm for unification in the simply typed lambda calculus which enumerates complete sets of unifiers using a finitely branching search space. In fact, the types of terms may contain
Higher-order Uniication via Combinators
We present an algorithm for uniication in the simply typed lambda calculus which enumerates complete sets of uniiers using a nitely branching search space. In fact, the types of terms may contain
A Combinatory Logic Approach to Higher-order E-unification (Extended Abstract)
TLDR
The case in which E admits presentation as a convergent term rewriting system is treated in detail: in this situation, a modification of ordinary narrowing is shown to be a complete method for enumerating higher-order E-unifiers.
Higher Order Unification 30 Years Later
The talk will present a survey of higher order unification, covering an outline of its historical development, a summary of its applications to three fields: automated theorem proving, and more
Imagining Clp(, )
TLDR
Under which conditions the domain of-terms and the equality theory of the-calculus form the basis of a usable constraint logic programming language (CLP), CLP must be close to Prolog.
Imagining CLP(A, equiv alpha beta)
  • O. Ridoux
  • Computer Science
    Constraint Programming
  • 1994
TLDR
Under which conditions the domain of Λ and the equality theory of the λ-calculus form the basis of a usable constraint logic programming language (CLP), CLP must be close to λProlog.
Absolute Explicit Unification
TLDR
The system allows to solve type checking, type inhabitation, higher-order unification, and type inference for PTS using purely first-order machinery and a novel feature of the system is that it combines substitutions and variable declarations.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 36 REFERENCES
A Unification Algorithm for Typed lambda-Calculus
  • G. Huet
  • Computer Science
    Theor. Comput. Sci.
  • 1975
Partial polymorphic type inference and higher-order unification
  • F. Pfenning
  • Computer Science
    LISP and Functional Programming
  • 1988
TLDR
It is shown that the problem of partial type inference in the nth-order polymorphic &lgr;-calculus is equivalent to n fourth-order unification, and an implementation in &l gr;Prolog in full is presented.
AN OVERVIEW OF PROLOG
TLDR
The correspondence between each extension to Prolog and the new features in the stronger logical theory is discussed and various aspects of an experimental implementation of λProlog are discussed.
Introduction to combinators and λ-calculus
TLDR
These notes form a simple introduction to the two topics, suitable for a reader who has no previous knowledge of combinatory logic, but has taken an undergraduate course in predicate calculus and recursive functions.
A Theory of Type Polymorphism in Programming
  • R. Milner
  • Computer Science
    J. Comput. Syst. Sci.
  • 1978
Uses of Higher-Order Unification for Implementing Program Transformers
TLDR
This paper details some properties of higher-order unification that make it suitable for analyzing program structures and presents (in λProlog) the specification of several simple program transformers together with a more involved partial evaluator.
Miranda: A Non-Strict Functional language with Polymorphic Types
data types Many of the data types which in other languages would have to be expressed as abstract data types can be represented in Miranda as algebraic data types with associated laws. Nevertheless
The Undecidability of the Second-Order Unification Problem
HOPE: An experimental applicative language
TLDR
An applicative language called HOPE is described and discussed, to produce a very simple programming language which encourages the construction of clear and manipulable programs.
...
1
2
3
4
...