Skip to main content

Narrowing approximations as an optimization for equational logic programs

  • Conference paper
  • First Online:
Book cover Progamming Language Implementation and Logic Programming (PLILP 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 714))

Abstract

Solving equations in equational theories is a relevant programming paradigm which integrates logic and equational programming into one unified framework. Efficient methods based on narrowing strategies to solve systems of equations have been devised. In this paper, we formulate a narrowing-based equation solving calculus which makes use of a top-down abstract interpretation strategy to control the branching of the search tree. We define a refined, but still complete, equation solving procedure which allows us to reduce the branching factor. Our main idea consists of building an abstract narrower for equational theories and executing the set of equations to be solved in the approximated narrower. We define a generic technique of loop detection to ensure termination of our method. We prove that the set of answers computed by the abstract narrower has the property that each concrete solution of the set of equations is an instance of one of the substitutions in the answer set. Thus we define a strategy which computes such a set and uses the substitutions in it for cutting down the search space of the program without losing completeness. We also report on experimental results which demonstrate that our optimization can result in significant speed-ups in program execution.

This work has been partially supported by CICYT under grant TIC 92-0793-C02-02. M.J. Ramis is supported by Spanish Conselleria de Cultura, Educació i Ciència de la Generalitat Valenciana.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. Aguzzi, U. Modigliani, and M.C. Verri. A Universal Unification Condition for Solving Goals in Equational Languages. In Proc. of CTRS'90, volume 516 of Lecture Notes in Computer Science, pages 416–423. Springer-Verlag, Berlin, 1990.

    Google Scholar 

  2. H. Aït-Kaci, P. Lincoln, and R. Nasr. Le Fun: Logic, equations, and Functions. In Proc. of the Fourth IEEE Symposium on Logic Programming, pages 17–23. IEEE Computer Society Press, 1987.

    Google Scholar 

  3. M. Alpuente, M. Falaschi, and G. Levi. Incremental Constraint Satisfaction for Equational Logic Programming. Technical Report TR-20/91, Dipartimento di Informatica, Università di Pisa, 1991. to appear in Theoretical Computer Science.

    Google Scholar 

  4. M. Alpuente, M. Falaschi, and F. Manzo. Analyses of Inconsistency for Incremental Equational Logic Programming. In M. Bruynooghe and M. Wirsing, editors, Proc. of PLILP'92, Leuven (Belgium), volume 631 of Lecture Notes in Computer Science, pages 443–457. Springer-Verlag, Berlin, 1992.

    Google Scholar 

  5. M. Alpuente, M. Falaschi, and F. Manzo. Analyses of Unsatisfiability for Equational Logic Programming. Technical Report DSIC-II/29/92, UPV, 1992. submitted for publication.

    Google Scholar 

  6. M. Alpuente, M. Falaschi, M.J. Ramis, and G. Vidal. Narrowing Aproximations as an optimization for Equational Logic Programs. Technical Report DSIC-II/1/93, Departamento de Sistemas Informáticos y Computación, Universidad Politécnica de Valencia, 1993.

    Google Scholar 

  7. P. Bosco, E. Giovannetti, and C. Moiso. Narrowing vs. SLD-resolution. Theoretical Computer Science, 59:3–23, 1988.

    Article  Google Scholar 

  8. J. Chabin and P. Réty. Narrowing directed by a graph of terms. In G. Goos and J. Hartmanis, editors, Proc. of RTA '91, volume 488 of Lecture Notes in Computer Science, pages 112–123. Springer-Verlag, Berlin, 1991.

    Google Scholar 

  9. J. Christian. Some termination criteria for narrowing and E-narrowing. In 11th Int'l Conf. on Automated Deduction, volume 607 of Lecture Notes in Computer Science, pages 582–588. Springer-Verlag, Berlin, 1992.

    Google Scholar 

  10. M. Codish, M. Falaschi, and K. Marriott. Suspension Analysis for Concurrent Logic Programs. In K. Furukawa, editor, Proc. Eighth Int'l Conf. on Logic Programming, pages 331–345. The MIT Press, Cambridge, Mass., 1991.

    Google Scholar 

  11. N. Dershowitz and J.-P. Jouannaud. Rewrite systems. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B: Formal Models and Semantics, pages 243–320. Elsevier, Amsterdam and The MIT Press, Cambridge, 1990.

    Google Scholar 

  12. N. Dershowitz and G. Sivakumar. Solving Goals in Equational Languages. In S. Kaplan and J. Joaunnaud, editors, Proc. First Int'l Workshop on Conditional Term Rewriting, volume 308 of Lecture Notes in Computer Science, pages 45–55. Springer-Verlag, Berlin, 1987.

    Google Scholar 

  13. L. Fribourg. Slog: a logic programming language interpreter based on clausal superposition and rewriting. In Proc. Second IEEE Int'l Symp. on Logic Programming, pages 172–185. IEEE, 1985.

    Google Scholar 

  14. J.H. Gallier and S. Raatz. Extending SLD-resolution to equational Horn clauses using E-unification. Journal of Logic Programming, 6:3–43, 1989.

    Google Scholar 

  15. E. Giovannetti and C. Moiso. A completeness result for E-unification algorithms based on Conditional Narrowing. In M. Boscarol, L. Carlucci, and G. Levi, editors, Foundations of Logic and Functional Programming, volume 306 of Lecture Notes in Computer Science, pages 157–167. Springer-Verlag, Berlin, 1986.

    Google Scholar 

  16. S. Hölldobler. Foundations of Equational Logic Programming, volume 353 of Lecture Notes in Artificial Intelligence. Springer-Verlag, Berlin, 1989.

    Google Scholar 

  17. J.M. Hullot. Canonical Forms and Unification. In 5th Int'l Conf. on Automated Deduction, volume 87 of Lecture Notes in Computer Science, pages 318–334. Springer-Verlag, Berlin, 1980.

    Google Scholar 

  18. J. Jaffar, J.-L. Lassez, and M.J. Maher. A logic programming language scheme. In D. de Groot and G. Lindstrom, editors, Logic Programming, Functions, Relations and Equations, pages 441–468. Prentice Hall, Englewood Cliffs, NJ, 1986.

    Google Scholar 

  19. J.W. Klop. Term rewriting systems. In S. Abramsky, D. Gabbay, and T. Maibaum, editors, Handbook of Logic in Computer Science, volume I. Oxford University Press, 1991.

    Google Scholar 

  20. J.-L. Lassez, M. J. Maher, and K. Marriott. Unification Revisited. In J. Minker, editor, Foundations of Deductive Databases and Logic Programming, pages 587–625. Morgan Kaufmann, Los Altos, Ca., 1988.

    Google Scholar 

  21. M. J. Maher. Complete Axiomatizations of the Algebras of Finite, Rational and Infinite Trees. In Proc. Third IEEE Symp. on Logic In Computer Science, pages 348–357. Computer Science Press, New York, 1988.

    Google Scholar 

  22. M. J. Maher. On parameterized substitutions. Technical Report RC 16042, IBM-T.J. Watson Research Center, Yorktown Heights, NY, 1990.

    Google Scholar 

  23. A. Middeldorp and E. Hamoen. Counterexamples to completeness results for basic narrowing. In H. Kirchner and G. Levi, editors, Proc. Third Int'l Conf. on Algebraic and Logic Programming, volume 632 of Lecture Notes in Computer Science, pages 244–258. Springer-Verlag, Berlin, 1992.

    Google Scholar 

  24. W. Nutt, P. Réty, and G. Smolka. Basic narrowing revisited. Journal of Symbolic Computation, 7:295–317, 1989.

    Google Scholar 

  25. C. Palamidessi. Algebraic properties of idempotent substitutions. In M. S. Paterson, editor, Proc. of the 17th International Colloquium on Automata, Languages and Programming, volume 443 of Lecture Notes in Computer Science, pages 386–399. Springer-Verlag, Berlin, 1990.

    Google Scholar 

  26. P. Réty, C. Kirchner, H. Kirchner, and P. Lescanne. NARROWER: A new algorithm for unification and its applications to logic programming. In Proc. of RTA'85, volume 202 of Lecture Notes in Computer Science, pages 141–157. Springer-Verlag, Berlin, 1985.

    Google Scholar 

  27. J.H. Siekmann. Unification Theory. Journal of Symbolic Computation, 7:207–274, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Maurice Bruynooghe Jaan Penjam

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Alpuente, M., Falaschi, M., Ramis, M.J., Vidal, G. (1993). Narrowing approximations as an optimization for equational logic programs. In: Bruynooghe, M., Penjam, J. (eds) Progamming Language Implementation and Logic Programming. PLILP 1993. Lecture Notes in Computer Science, vol 714. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57186-8_93

Download citation

  • DOI: https://doi.org/10.1007/3-540-57186-8_93

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57186-5

  • Online ISBN: 978-3-540-47945-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics