# 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.

## 70 Citations

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

- Computer ScienceCTRS
- 1990

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

- MathematicsProceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science
- 1997

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

- Mathematics
- 2001

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

- Mathematics
- 1993

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)

- MathematicsCADE
- 1992

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

- Computer ScienceTPHOLs
- 2002

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(, )

- Computer Science
- 1994

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)

- Computer ScienceConstraint Programming
- 1994

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

- Computer ScienceRTA
- 2000

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.

## References

SHOWING 1-10 OF 36 REFERENCES

A Unification Algorithm for Typed lambda-Calculus

- Computer ScienceTheor. Comput. Sci.
- 1975

Partial polymorphic type inference and higher-order unification

- Computer ScienceLISP and Functional Programming
- 1988

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

- Computer Science
- 1988

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

- Computer Science
- 1986

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.

Uses of Higher-Order Unification for Implementing Program Transformers

- Computer ScienceICLP/SLP
- 1988

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

- Computer ScienceFPCA
- 1985

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…

HOPE: An experimental applicative language

- Computer ScienceLISP Conference
- 1980

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.

Higher-Order Unification Revisited: Complete Sets of Transformations

- Computer ScienceJ. Symb. Comput.
- 1989