| OCR Text |
Show 87 can always ask for more general solutions, if the answer he or she already obtained is not minimal.'" It should be mentioned that a model-theoretic semantics can be s1m1larly defined. In this case, given a set of equations, we take the least Herbrand E-model as the intended model, that is, the intersection of all Herbrand models under the equality theory. This has been done for the case of equational clauses in [33, 54]. The equational logic programs discussed here are special forms of equational clauses, in that all the equational clauses are unit equations. Therefore, the results for equational clauses trivially apply to equational logic programs presented here. 5.2.4 lazy Narrowing on "Conditional Terms" A term involving a conditional function symbol, such as if_ then_ else and if_ then, is said to be a "conditional term." In almost all functional languages, conditional functions are treated as being nonstrict; only the conditional part is evaluated at first, and the expression then gets reduced according to the result of that evaluation. To incorporate a similar strategy into equational logic programming, we need to adjust the definition for E-equality. Recall that the free algebra T(F,V) is divided into congruence classes, closed under instantiation, each of which contains equivalent terms. Let T be a congruence class, which is the union of two disjoint subsets T=Tc u Tn where T c is the set of all conditional terms and T n the set of all nonconditional terms. We now interpret =E to be the congruence of T n's, that is, all the conditional terms are taken out. We believe that this interpretation also reflects the *This corresponds to complete sets of unifiers. Ideally, one should be able to get one (or several or all) of the minimum unifiers. However, recall that there are equational theories, for which complete sets of minimal E-unifiers may not always exist. |