| OCR Text |
Show 79 general case [98], examples have been constructed to show that they are indispensable if the the set-of-support strategy is used. See, for example, [12, 80] for the general case and [66] for the case of unit equality clauses. As for programming languages, one would hesitate to define an operational semantics based on unrestricted paramodulation, since such an operational semantics is clearly too inefficient to implement. Kornfeld was the first person who emphasized and demonstrated that incorporating equality into Prolog improved the expressive power of Prolog [68, 69]. Though a system was implemented with an efficiency comparable to Prolog, the way the equality was supported needed semantic justification. Since then, several proposals for incorporating equality into Prolog, or for a logic programming system that handles equality have appeared in the literature. Eqlog by Goguen and Meseguer [35, 36, 37] incorporates the results of Eunification and the method of incorporating E-unification into resolution theorem proving procedures described in [92]. This language uses the narrowing process, for which a formal justification is given. The language handles with those equality theories that can be described by a canonical term rewriting system. Tablog employs nonclausal theorem proving methods as a programming language which supports equality. The language is based on Manna and Waldinger's deductive tableau proof system [81, 82]. Several implementation strategies for their interpreter, however, are not well justified; for example, equations are used only one-way (the proof system uses two-way equations), and certain search paths are ignored. The completeness, which was proved for the deductive tableau proof system, is thus lost in defining the programming language. Fribouge described an interesting equational logic programming language, which achieves all the potential power of logic programming with equality [33]. *The goal oriented strategy is a special case of the set-of-support strategy. |