AbstractThis paper is a contribution to the amalgamation of logic programming (as embodied in PROLOG) and functional programming (as embodied in languages like SASL, KRC, HOPE, or in dialects of LISP like LISPKIT LISP or SCHEME). We investigate how equational rewriting, which we assume is an adequate model for functional programming, can be performed within the context of logic programming. The equational program plus the standard equality axioms (reflexivity, symmetry, transitivity, and substitutivity) is our standard of correctness: we regard it as a logic specification from which the result of any evaluation must be a logical consequence. Although the standard equality axioms plus the equations formally qualify as a PROLOG program, their...