| OCR Text |
Show * formalizes a computational model in which functional programming is incorporated into Prolog-like logic programming, and further shows how to provide the ability to reason about equations. 10 Chapter 2 provides a review of important not1ons in E-unificatiOn and early results in this field. Readers familiar with E-unification can browse through this chapter or refer to it when needed. Section 2.3 elaborates on the relationship between unification and narrowing, and is particularly relevant to the results presented in this thesis. Chapter 3 presents the first result of this thesis: it is shown therein that unification in equational theories is complete. That is, given an arbitrary equa-tional theory, there exists an E-unification algorithm which generates complete sets of unifiers for all E-unifiable terms. The completeness of first-order unification in equational theories is shown by constructing a "universal" algo-rithm such that it is complete for any equational theory. Useful insights for developing efficient unification algorithms are given and limitations and problems are discussed. As was alluded to earlier, narrowing is an efficient general mechanism. We are interested in studying classes of term rewriting systems for which nar-rowing yields a complete unification algorithm. Chapter 4 shows that narrowing provides a complete unification algorithm for a larger class of term rewriting systems that was originally presumed; this class allows nontermi nati ng term rewriting systems. A key observation underlying this proof is that a reduction sequence in this class of term rewriting systems can be transformed into one which has properties that enable a completeness proof. Based upon the results obtained in Chapter 4, we propose an equational logic programming paradigm in Chapter 5, where the operational semantics consists of narrowing and deletion upon successful unification. The operational semantics coincides with the classical theory of equality. A Prolog-like sequential implementation based on backtracking is then sketched. Chapter 6 describes Funlog, a computational model integrating functional |