A class of confluent term rewriting systems and unification

The narrowing mechanism and term rewriting systems are powerful tools for constructing complete and efficient unification algorithms for useful classes of equational theories. This has been shown for the case where term rewriting systems are confluent and noetherian (i.e., terminating). In this paper we show that the narrowing mechanism, combined with ordinary unification, yields a complete unification algorithm for equational theories that can be described by a closed linear term rewriting system with the non-repetition property; this class allows non-terminating rewrite systems. For some special forms of input terms, narrowing generates complete sets of E-unifiers without resorting to the non-repetition property. The key observation underlying the proof is that a reduction sequence in this class of term rewriting system can be transformed into one which possesses properties that enable a completeness proof.

[1]  Laurent Fribourg,et al.  A Superposition Oriented Theorem Prover , 1983, IJCAI.

[2]  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 .

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

[4]  Nachum Dershowitz,et al.  Logic Programming cum Applicative Programming , 1985, SLP.

[5]  Claude Kirchner,et al.  NARROWER: A New Algorithm for Unification and Its Application to Logic Programming , 1985, RTA.

[6]  José Meseguer,et al.  Equality, Types, Modules and Generics for Logic Programming , 1984, ICLP.

[7]  Claude Kirchner,et al.  Incremental Construction of Unification Algorithms in Equational Theories , 1983, ICALP.

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

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

[10]  Jia-Huai You,et al.  Equational logic programming: an extension to equational programming , 1986, POPL '86.

[11]  Christoph M. Hoffmann,et al.  Programming with Equations , 1982, TOPL.

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

[13]  Mark E. Stickel,et al.  Complete Sets of Reductions for Some Equational Theories , 1981, JACM.

[14]  José Meseguer,et al.  Equality, Types, Modules, and (Why not ?) Generics for Logic Programming , 1984, J. Log. Program..

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

[16]  Michael J. O'Donnell,et al.  Computing in systems described by equations , 1977, Lecture Notes in Computer Science.

[17]  Jia-Huai You,et al.  FUNLOG: A Computational Model Integrating Logic Programming and Functional Programming , 1986, Logic Programming: Functions, Relations, and Equations.

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