Higher Order Unification via Explicit Substitutions
Information and Computation
Higher order uni cation is equational uni cation for -conversion. But it is not rst order equational uni cation, as substitution has to avoid capture. Thus the methods for equational uni cation (such as narrowing) built upon grafting (i.e. substitution without renaming), cannot be used for higher order uni cation, which needs speci c algorithms. Our goal in this paper is to reduce higher order uni cation to rst order equational uni cation in a suitable theory. This is achieved by replacing
... itutionby grafting, but this replacementis not straightforward as it raises two major problems. First, some uni cation problems have solutions with grafting but no solution with substitution. Then equational uni cation algorithms rest upon the fact that grafting and reduction commute. But grafting and -reduction do not commute in -calculus and reducing an equation may change the set of its solutions. This di culty comes from the interaction between the substitutions initiated by -reduction and the ones initiated by the uni cation process. Two kinds of variables are involved: those of -conversion and those of uni cation. So, we need to set up a calculus which distinguishes these two kinds of variables and such that reduction and grafting commute. For this purpose, the application of a substitution of a reduction variable to a uni cation one must be delayed until this variable is instantiated. Such a separation and delay are provided by a calculus of explicit substitutions. Uni cation in such a calculus can be performed by well-known algorithms such as narrowing, but we present a specialised algorithm for greater e ciency. At last we show how to relate uni cation in -calculus and in a calculus with explicit substitutions. Thus we come up with a new higher order uni cation algorithm which eliminates some burdens of the previous algorithms, in particular the functional handling of scopes. Huet's algorithm can be seen as a speci c strategy for our algorithm, since each of its steps can be decomposed into elementary ones, leading to a more atomic description of the uni cation process. Also, solved forms in -calculus can easily be computed from solved forms in -calculus.