# Solving goals in equational languages

## Abstract

Solving equations in equational Horn-clause theories is a programming paradigm that combines logic programming and functional programming in a clean manner. Languages like Eqlog, Slog and Rite, express programs as conditional rewrite rules and goals as equations to be solved. Procedures for completion of conditional equational theories, in a manner akin to that of Knuth and Bendix for unconditional theories, also require methods for solving equations appearing in conditions. Rewrite-based logic-programming uses (conditional) narrowing to solve equational goals. Recently a different, topdown equation solving procedure was proposed for unconditional rewrite systems. In this paper, we express equational goal solving using conditional rules. Some refinements are described: the notion of *operator derivability* is used to prune useless paths in the search tree and our use of *oriented goals* eliminates some redundant paths leading to non-normalized solutions. Our *goal-directed* method can also be extended to handle conditional systems.

## Preview

Unable to display preview. Download preview PDF.

## References

- [Bosco, etal.-87][Bosco,
*etal.*-87] Bosco, P. G., Giovanetti, E., and Moiso, C. “Refined strategies for semantic unification”*Proceedings of International Joint Conference on Theory and Practice of Software Development*, Pisa, Italy (March 1987), pp. 276–290. (Available as Vol. 250, Lecture Notes in Computer Science, Springer, Berlin.)Google Scholar - [Dershowitz-Plaisted-85]Dershowitz, N., and Plaisted, D. A. “Logic programming
*cum*applicative programming”.*Proceedings of the 1985 Symposium on Logic Programming*, Boston, MA (July 1985), pp. 54–66.Google Scholar - [Dershowitz-Plaisted-87]Dershowitz, N., and Plaisted, D. A. “Equational programming”. In:
*Machine Intelligence 11*(J. E. Hayes, D. Michie, and J. Richards, eds.), Oxford Press, Oxford, pp. 21–56, in press.Google Scholar - [Fay-79]Fay, M. “First-order unification in an equational theory”.
*Proceedings of the Fourth Workshop on Automated Deduction*, Austin, TX (February 1979), pp. 161–167.Google Scholar - [Fribourg-85]Fribourg, L. “Slog: A logic programming language interpreter based on clausal superposition and rewriting”.
*Proceedings of the 1985 Symposium on Logic Programming*, Boston, MA (July 1985), pp. 172–184.Google Scholar - [Goguen-Meseguer-86]Goguen, J. A., and Meseguer, J. “Eqlog: Equality, types and generic modules for logic programming”. In
*Logic Programming: Functions, relations and equations*(D. DeGroot and G. Lindstrom, eds.), Prentice-Hall, Englewood Cliffs, NJ, pp. 295–363, 1986.Google Scholar - [Hullot-80]Hullot, J. M. “Canonical forms and unification”.
*Proceedings of the Fifth Conference on Automated Deduction*, Les Arcs, France (July 1980), pp. 318–334.Google Scholar - [Josephson-Dershowitz-86]Josephson, N. A., and Dershowitz, N. “An implementation of narrowing: The Rite way”.
*Proceedings of the Third IEEE Symposium on Logic Programming*, Salt Lake City, UT (September 1986), pp. 187–197. (Revised version to appear in*Journal of Logic Programming*.)Google Scholar - [Kaplan-88]Kaplan, S. “Simplifying conditional term rewriting systems: Unification, termination and confluence”,
*Journal of Symbolic Computation*, to appear.Google Scholar - [Kapur,etal.-86][Kapur,
*etal.*-86] Kapur, D., Sivakumar, G. and Zhang, H., “RRL: A Rewrite rule laboratory”.*8th Intl. Conference on Automated Deduction*, Oxford, England (July 1986). (Available as Vol. 230, Lecture Notes in Computer Science, Springer, Berlin.)Google Scholar - [Martelli,etal.-86][Martelli,
*etal.*-86] Martelli, A., Moiso, C. and Rossi, G. F. “An algorithm for unification in Equational Theories”.*Proceedings of the Third IEEE Symposium on Logic Programming*, Salt Lake City, UT (September 1986), pp. 180–186.Google Scholar - [Padawitz-87]Padawitz, P. “Strategy-controlled reduction and narrowing”.
*Proceedings of the Second International Conference on Rewriting Techniques and Applications*, Bordeaux, France (May 1987), pp. 242–255.Google Scholar - [Reddy-85]Reddy, U. S. “Narrowing as the operational semantics of functional languages”.
*Proceedings of the 1985 Symposium on Logic Programming*, Boston, MA (July 1985), pp. 138–151.Google Scholar - [Rety-87]Réty, P. “Improving basic narrowing techniques”.
*Proceedings of the Second International Conference on Rewriting Techniques and Applications*, Bordeaux, France (May 1987), pp. 228–241. (Available as Vol. 256, Lecture Notes in Computer Science, Springer, Berlin.)Google Scholar - [Rety,etal.-85][Rety,
*etal.*-85] Réty, P., Kirchner, C., Kirchner, H., and Lescanne, P. “Narrower: A new algorithm for unification and its application to logic programming”.*Proceedings of the First International Conference on Rewriting Techniques and Applications*, Dijon, France (May 1985), pp. 141–157. (Available as Vol. 202, Lecture Notes in Computer Science, Springer, Berlin [September 1985].)Google Scholar