A Unification Algorithms for Confluent Theories

We present a correct and complete unification algorithm for confluent theories. The algorithm is based on inference rules for sets of equations and is an extension of the standard unification algorithm invented by Martelli and Montanari [16]. It 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.

[1]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[2]  Peter Henderson Functional Programming , 1980 .

[3]  Uday S. Reddy,et al.  Narrowing as the Operational Semantics of Functional Languages , 1985, SLP.

[4]  Alberto Martelli,et al.  An Efficient Unification Algorithm , 1982, TOPL.

[5]  Heinrich Hußmann,et al.  Unification in Conditional Equational Theories , 1985, European Conference on Computer Algebra.

[6]  Jörg H. Siekmann,et al.  Universal Unification , 1982, GWAI.

[7]  Robert A. Kowalski,et al.  The Semantics of Predicate Logic as a Programming Language , 1976, JACM.

[8]  D. A. Turner,et al.  A new implementation technique for applicative languages , 1979, Softw. Pract. Exp..

[9]  Giorgio Levi,et al.  The Relation between Logic and Functional Languages: A Survey , 1986, J. Log. Program..

[10]  Jean-Marie Hullot,et al.  Canonical Forms and Unification , 1980, CADE.

[11]  Jörg H. Siekmann,et al.  Universal Unification and Regular Equational ACFM Theories , 1981, IJCAI.

[12]  Krzysztof R. Apt,et al.  Contributions to the Theory of Logic Programming , 1982, JACM.

[13]  Mike Paterson,et al.  Linear unification , 1976, STOC '76.

[14]  G. Huet,et al.  Equations and rewrite rules: a survey , 1980 .

[15]  Elbert Ernest Sibert A machine-oriented logic incorporating the equality relation , 1967 .

[16]  Donald E. Knuth,et al.  Simple Word Problems in Universal Algebras††The work reported in this paper was supported in part by the U.S. Office of Naval Research. , 1970 .

[17]  Gérard P. Huet,et al.  A Unification Algorithm for Typed lambda-Calculus , 1975, Theor. Comput. Sci..

[18]  Laurent Fribourg,et al.  SLOG: A Logic Programming Language Interpreter Based on Clausal Superposition and Rewriting , 1985, SLP.

[19]  Corrado Moiso,et al.  An Algorithm for Unification in Equational Theories , 1986, SLP.

[20]  D. Knuth,et al.  Simple Word Problems in Universal Algebras , 1983 .

[21]  Daniel P. Friedman,et al.  CONS Should Not Evaluate its Arguments , 1976, ICALP.

[22]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[23]  Laurent Fribourg Oriented Equational Clauses as a Programming Language , 1984, J. Log. Program..

[24]  L. Wos,et al.  Paramodulation and Theorem-Proving in First-Order Theories with Equality , 1983 .