An Efficient Unification Algorithm

  title={An Efficient Unification Algorithm},
  author={Alberto Martelli and Ugo Montanari},
  journal={ACM Trans. Program. Lang. Syst.},
The unification problem in f'mst-order predicate calculus is described in general terms as the solution of a system of equations, and a nondeterministic algorithm is given. [...] Key Method A new unification algorithm, characterized by having the acyclicity test efficiently embedded into it, is derived from the nondeterministic one, and a PASCAL implementation is given. A comparison with other well-known unification algorithms shows that the algorithm described here performs well in all cases.Expand
A Unification Algorithm for Infinite Trees
A simple unification algorithm for infinite trees has been developed. The algorithm is designed to work efficiently under structure sharing implementations of logic programming languages, e.g.,Expand
Unification in a Combination of Equational Theories: an Efficient Algorithm
  • A. Boudet
  • Mathematics, Computer Science
  • CADE
  • 1990
An algorithm is presented for solving equations in a combination of arbitrary theories with disjoint sets of function symbols that consists in a set of transformation rules that simplify a unification problem until a solved form is obtained. Expand
A Unification Algorithms for Confluent Theories
A correct and complete unification algorithm for confluent theories that is demand driven and can handle infinite and partial instantiated objects and thus can be used as a means to integrate functional and logic programming. Expand
On the termination of an algorithm for unification in equational theories
  • G. Aguzzi, M. Verri
  • Mathematics
  • Fourth IEEE Region 10 International Conference TENCON
  • 1989
The termination properties of a semantic unification procedure for the problem t=/sub R/t' are studied, where R is expressed by means of a canonical term rewriting system and t' is a round term notExpand
Lazy Unification with Inductive Simplification
This paper presents an improvement of the proposed lazy unification methods by incorporating simplification with inductive axioms into the unification process, and proves soundness and completeness of the method for equational theories represented by ground confluent and terminating rewrite systems. Expand
Lazy Unification with Simplification
This paper presents an improvement of the proposed lazy unification methods by incorporating simplification into the unification process, since simplification is a deterministic computation process, more efficient unification algorithms can be achieved. Expand
Implementation of a UU-Algorithm for Primitive Recursive Tree Functions
We present the implementation of an efficient universal unification algorithm for the class of equational theories which are induced by primitive recursive tree functions, on an abstract machine andExpand
A New Approach to Universal Unification and Its Application to AC-Unification
A complete unification algorithm for simple theories is described and a partial correctness proof is given and some preliminary termination results for the AC case are presented. Expand
A Categorical Unification Algorithm
This is a case study in the design of computer programs based upon the twin themes of abstraction and constructivity and considers the unification of a symbol-manipulative task and derives a unification algorithm based upon constructions in category theory. Expand
Unification in an Algebra With Choice and Action Prefix
This paper contains a uniication algorithm for a restricted process algebra with as only operators nondeterministic choice and unary action preex-operators, and with innnite processes. Termination isExpand


A Unification Algorithm for Typed lambda-Calculus
  • G. Huet
  • Computer Science, Mathematics
  • Theor. Comput. Sci.
  • 1975
It is shown that the search space for unification of formulas in typed ω -order λ -calculus is significantly smaller than the one for finding the most general unifiers, and its correctness is proved. Expand
A Complete Unification Algorithm for Associative-Commutative Functions
An algorithm which unifies terms whose function is associativa and commutative is presented here and returns a complete set of unifiers without recourse to the indefinite generation of vurianU and instances of the terms being unified required by previous solutions to the problem. Expand
Complexity of the unification algorithm for first-order expressions
Rewriting and comparisons are the complexity aspects of the unification algorithm which are considered in this paper. A simplified version of Robinson's algorithm [2] is described where rewritingExpand
Linear unification
A unification algorithm is described which tests a set of expressions for unifiability and which requires time and space which are only linear in the size of the input.
A Machine-Oriented Logic Based on the Resolution Principle
The paper concludes with a discussion of several principles which are applicable to the design of efficient proof-procedures employing resolution as the basle logical process. Expand
Ttle sharing of structure in theorem proving programs
The concept of the value of an expression in a binding environment which is used to standardize clauses apart and share the structure of parents in representing the resolvent in resolution programs is introduced. Expand
A Theory of Type Polymorphism in Programming
  • R. Milner
  • Computer Science
  • J. Comput. Syst. Sci.
  • 1978
This work presents a formal type discipline for polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm w which enforces the discipline. Expand
A Transformation System for Developing Recursive Programs
A system of rules for transforming programs is described, with the programs in the form of recursion equations. An initially very simple, lucid, and hopefully correct program is transformed into aExpand
Theorem Proving with Structure Sharing and Efficient Unification
A careful complexity analysis may help in improving substantially the performance of proof checkers and a powerful logic formalism and an efficient proof checker can allow to prove manually theorems whose automatic proof would be otherwise very far from the state of the art. Expand
Prolog - the language and its implementation compared with Lisp
It is argued that pattern matching is a better method for expressing operations on structured data than conventional selectors and constructors - both for the user and for the implementor. Expand