Skip to main content

An Abstract Interpretation Approach to Termination of Logic Programs

  • Conference paper
  • First Online:
Logic for Programming and Automated Reasoning (LPAR 2000)

Part of the book series: Lecture Notes in Artificial Intelligence ((LNAI,volume 1955))

Abstract

In this paper we define a semantic foundation for an abstract interpretation approach to universal termination and we develop a new abstract domain useful for termination analysis. Based on this approximation we define a method which is able to detect classes of goals which universally terminate (with a fair selection rule). We also define a method which is able to characterize classes of programs and goals for which depth-first search is fair.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K. R. Apt. Introduction to Logic Programming. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B: Formal Models and Semantics, pages 495–574. Elsevier and The MIT Press, 1990. 365

    Google Scholar 

  2. K. R. Apt. From Logic Programming to Prolog. Prentice Hall, 1997. 362

    Google Scholar 

  3. K. R. Apt and D. Pedreschi. Studies in Pure Prolog: Termination. In J. W. Lloyd, editor, Computational Logic, pages 150–176. Springer-Verlag, 1990. 372

    Google Scholar 

  4. K. R. Apt and D. Pedreschi. Reasoning about termination of pure PROLOG programs. Information and Computation, 106(1):109–157, 1993. 372

    Article  MATH  MathSciNet  Google Scholar 

  5. K. R. Apt and D. Pedreschi. Modular termination proofs for logic and pure Prolog programs. In G. Levi, editor, Advances in Logic Programming Theory, pages 183–229. Oxford University Press, 1994. 372

    Google Scholar 

  6. F. Benoy and A. King. Inferring argument size relationships with clp(r). In Proc. of the Sixth International Workshop on Logic Program Synthesis and Transformation (LOPSTR’96), 1996. 362

    Google Scholar 

  7. M. Bezem. Characterizang termination of logic programs with level mappings. In E.L. Lusk and R.A. Overbeek, editors, Proc. of the North American Conference on Logic Programming, pages 69–80. The MIT Press, 1989. 372

    Google Scholar 

  8. M. Bezem. Strong termination of logic programs. Journal of Logic Programming, 15(1 & 2):79–98, 1993. 372

    Article  MATH  MathSciNet  Google Scholar 

  9. A. Bossi, N. Cocco, and M. Fabris. Proving Termination of Logic Programs by Exploiting Term Properties. In S. Abramsky and T. S. E. Maibaum, editors, Proc. TAPSOFT’91, volume 494 of Lecture Notes in Computer Science, pages 153–180. Springer-Verlag, 1991. 362

    Google Scholar 

  10. A. Brodsky and Y. Sagiv. Inference of monotonicity constraints in datalog programs. In Proceedings of the Eighth ACM SIGACT-SIGART-SIGMOND Symposium on Principles of Database Systems, pages 190–199, 1989. 362

    Google Scholar 

  11. F. Bueno, M. Carro, M. Hermenegildo, P. López, and G. Puebla. Ciao prolog development system. http://www.clip.dia.fi.upm.es/Software/Ciao/. 372

  12. M. Codish and C. Taboch. Termiweb. http://www.cs.bgu.ac.il/ taboch/TerminWeb/. 362, 363, 378

  13. M. Codish and C. Taboch. A semantic basis for the termination analysis of logic programs. Journal of Logic Programming, 41(1):103–123, 1999. 363, 363

    Article  MATH  MathSciNet  Google Scholar 

  14. M. Comini, G. Levi, and M. C. Meo. A theory of observables for logic programs. Information and Computation, 1999. To appear. 376, 376, 376

    Google Scholar 

  15. M. Comini and M. C. Meo. Compositionality properties of SLD-derivations. Theoretical Computer Science, 211(1-2):275–309, 1999. 368

    Article  MATH  MathSciNet  Google Scholar 

  16. P. Cousot. Constructive design of a hierarchy of semantics of a transition system by abstract interpretation (Invited Paper). In S. Brookes and M. Mislove, editors, Proc. of the 13th Internat. Symp. on Mathematical Foundations of Programming Semantics (MFPS’ 97), volume 6 of Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam, 1997. 376

    Google Scholar 

  17. P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Proc. Fourth ACM Symp. Principles of Programming Languages, pages 238–252, 1977. 365

    Google Scholar 

  18. P. Cousot and R. Cousot. Systematic Design of Program Analysis Frameworks. In Proc. Sixth ACM Symp. Principles of Programming Languages, pages 269–282, 1979. 365, 374, 377

    Google Scholar 

  19. P. Cousot and R. Cousot. Comparing the Galois Connection and Widening/ Narrowing Approaches to Abstract Interpretation. In M. Bruynooghe and M. Wirsing, editors, Proc. of PLILP’92, volume 631 of Lecture Notes in Computer Science, pages 269–295. Springer-Verlag, 1992. 372

    Google Scholar 

  20. F.S. de Boer, A. Di Pierro, and C. Palamidessi. Nondeterminism and Infinite Computations in Constraint Programming. Theoretical Computer Science, 151(1), 1995. 364, 365, 365, 370

    Google Scholar 

  21. S. Decorte and D. De Schreye. Termination of logic programs: the never-ending story. Journal of Logic Programming, 1920:199–260, 1994. 362, 363

    MathSciNet  Google Scholar 

  22. S. Decorte, D. De Schreye, and M. Fabris. Automatic Inference of Norms: a Missing Link in Automatic Termination Analysis. In D. Miller, editor, Proc. 1993 Int'l Symposium on Logic Programming, pages 420–436. The MIT Press, 1993. 362

    Google Scholar 

  23. M. Gabbrielli and R. Giacobazzi. Goal independency and call patterns in the analysis of logic programs. In J. Urban E. Deaton, D. Oppenheim and H. Berghel, editors, Proceedings of the Ninth ACM Symposium on Applied Computing, pages 394–399, Phoenix AZ, 1994. ACM Press. 363

    Google Scholar 

  24. W. G. Golson. Toward a declarative semantics for infinite objects in logic programming. Journal of Logic Programming, 5:151–164, 1988. 364, 365, 370

    Article  MathSciNet  MATH  Google Scholar 

  25. R. Gori. A fixpoint semantics for reasoning about finite failure. In H. Ganzinger, D. McAllester, and A. Voronkov, editors, Proceedings of the 6th International Conference on Logic for Programming and Automated Reasoning, volume 1705 of LNAI, pages 238–257. Springer, 1999. 368

    Google Scholar 

  26. R. Gori. Reasoning about finite failure and infinite computations by abstract interpretation. PhD thesis, Dipartimento di Matematica, Università di Siena, 1999. http://www.di.unipi.it/ gori/gori.html. 367, 368, 369, 371, 371, 372, 373, 376

  27. Marta Z. Kwiatkowska. Infinite Behaviour and Fairness in Concurrent Constraint Programming. In J.W. de Bakker, W. P. de Roever, and G. Rozenberg, editors, Semantics: Foundations and Applications, volume 666 of Lecture Notes in Computer Science, pages 348–383, Beekbergen The Nederland, June 1992. REX Workshop, Springer Verlag. 364

    Google Scholar 

  28. B. Le Charlier, S. Rossi, and P. Van Hentenryck. An abstract interpretation framework which accurately handles prolog search-rule and the cut. In Proc. of the 1994 International Logic Programming Symposium. The MIT Press, 1994. 364

    Google Scholar 

  29. N. Lindenstrauss. TermiLog. http://www.cs.huji.ac.il/ talre/form.html. 362, 363, 363, 363, 378

  30. N. Lindenstrauss and Y. Sagiv. Checking termination of queries to logic programs. http://www.cs.huji.ac.il/ naomil. 363, 363

  31. N. Lindenstrauss and Y. Sagiv. Automatic termination analysis of logic programs. In L. Naish, editor, Proc. of the Fourteenth International Conference on Logic Programming, pages 63–67, 1997. 363, 377

    Google Scholar 

  32. J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987. Second edition. 364, 365, 365, 370

    Google Scholar 

  33. F. Mesnard. Inferring left-terminating classes of queries for constraint logic programs. In M.J. Maher, editor, Proc. of the Joint International Conference on Logic Programming, pages 7–21, 1996. 362, 363, 377

    Google Scholar 

  34. M. A. NaitAbdallah. On the intepretation of infinite computations in logic programming. In J. Paredaens, editor, Proc. of Automata, Languages and Programming, volume 172, pages 374–381. Springer Verlag, 1984. 364, 365, 370

    Google Scholar 

  35. S. O. Nyström and B. Jonsson. Indeterminate Concurrent Constraint Programming: A Fixpoint Semantics for Non-Terminating Computations. In D. Miller, editor, Proc. of the 1993 International Logic Programming Symposium, Series on Logic Programming, pages 335–352. The MIT Press, 1993. 365

    Google Scholar 

  36. L. Plümer. Termination Proofs for Logic Programs, volume 446 of Lecture Notes in Artificial Intelligence. Springer-Verlag, 1990. 362, 362, 363, 377

    Google Scholar 

  37. S. Ruggeri. ∃-universal termination of logic programs. Theoretical Computer Science, 1999. To appear. 372, 373, 373, 373

    Google Scholar 

  38. V. A. Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie-Mellon University, January 1989. 364, 365, 370

    Google Scholar 

  39. T. Sato and H. Tamaki. Enumeration of Success Patterns in Logic Programs. Theoretical Computer Science, 34:227–240, 1984. 369

    Article  MATH  MathSciNet  Google Scholar 

  40. C. Speirs, Z. Somogyi, and H. Sondergaard. Mercury’s termination analyzer. http://www.cs.mu.oz.au/research/mercury/. 362, 363, 378

  41. A. Van Gelder. Deriving Constraints Among Argument Sizes in Logic Programs. In Proc. of the eleventh ACM Conference on Principles of Database Systems, pages 47–60. ACM, 1990. 362

    Google Scholar 

  42. K. Verschaetse and D. De Schreye. Deriving Termination Proofs for Logic Programs, Using Abstract Procedures. In K. Furukawa, editor, Proc. Eighth Int'l Conf. on Logic Programming, pages 301–315. The MIT Press, 1991. 363, 377

    Google Scholar 

  43. K. Verschaetse and D. De Schreye. Deriving linear size relations by abstract interpretation. New Generation Computing, 13(2):117–154, 1995. 362, 363, 363, 377

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gori, R. (2000). An Abstract Interpretation Approach to Termination of Logic Programs. In: Parigot, M., Voronkov, A. (eds) Logic for Programming and Automated Reasoning. LPAR 2000. Lecture Notes in Artificial Intelligence(), vol 1955. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44404-1_23

Download citation

  • DOI: https://doi.org/10.1007/3-540-44404-1_23

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41285-4

  • Online ISBN: 978-3-540-44404-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics