| OCR Text |
Show 131 A direct application of this result is in theorem proving; the narrowing method can serve as a basis for a special purpose equality theorem prover, m which equational theories are expressed as typical equational or functional programs. This theorem prover is efficient and goal oriented. As another result of the above investigation, we found counterexamples which show that the narrowing method is not complete for all term rewrrting systems. That is, there exist term rewriting systems for which narrowing fails to yield a complete unification algorithm. This result indicates the limitation of using narrowing as a primary mechanism for E-unification. Another indication of th ese counterexa mples is that the kind of term rewriting systems for which narrowi ng fai ls to generate a complete E-un ification algorithm are not typical; rather, t hey are unusual. 7.2.2 Logic and Functional Programming The applications of E-unification that we investigated in t hi s t hesis are in the cont ext of logic programming t hat provides eq uality and fun ctional notation. An equational logic programming language w as proposed, w hich is based on the familiar notion of equality. Several exten sions of functional programming have been proposed by other researchers, and various good ideas in t his di rec-tion have emerged. The advantages for the equat ional log ic programming lan-guage proposed in this thesis include its semantic simplicity and the ability to reason about equations. These two features distinguish our approa ch towards extensions of functional programming from most ot hers. The Funlog language was among the first efforts on developing a com-putational mechanism combining functional programming and logic programming [116]. The main contributions of Funlog can be summarized as fo llows: * A demonstration of the need of integration of f unctional programming and logic programming, though the approach of amalgamating functional and logic programming has generally been accepted today. |