Verification of logic programs with delay declarations

  • Krzysztof R. Apt
  • Ingrid Luitjes
Invited Lectures
Part of the Lecture Notes in Computer Science book series (LNCS, volume 936)


Logic programs augmented with delay declarations form a higly expressive programming language in which dynamic networks of processes that communicate asynchronously by means of multiparty channels can be easily created. In this paper we study correctness these programs. In particular, we propose proof methods allowing us to deal with occur check freedom, absence of deadlock, absence of errors in presence of arithmetic relations, and termination. These methods turn out to be simple modifications of the corresponding methods dealing with Prolog programs. This allows us to derive correct delay declarations by analyzing Prolog programs. Finally, we point out difficulties concerning proofs of termination.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AE93]
    K. R. Apt and S. Etalle. On the unification free Prolog programs. In A. Borzyszkowski and S. Sokolowski, editors, Proceedings of the Conference on Mathematical Foundations of Computer Science (MFCS 93), Lecture Notes in Computer Science, pages 1–19, Berlin, 1993. Springer-Verlag.Google Scholar
  2. [AP94]
    K. R. Apt and A. Pellegrini. On the occur-check free Prolog programs. ACM Toplas, 16(3):687–726, 1994.Google Scholar
  3. [Apt90]
    K. R. Apt. Logic programming. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, pages 493–574. Elsevier, 1990. Vol. B.Google Scholar
  4. [Apt93]
    K. R. Apt. Declarative programming in Prolog. In D. Miller, editor, Proc. International Symposium on Logic Programming, pages 11–35. MIT Press, 1993.Google Scholar
  5. [BLR92]
    F. Bronsard, T.K. Lakshman, and U.S. Reddy. A framework of directionality for proving termination of logic programs. In K. R. Apt, editor, Proceedings of the Joint International Conference and Symposium on Logic Programming, pages 321–335. MIT Press, 1992.Google Scholar
  6. [CC88]
    H. Coelho and J. C. Cotta. Prolog by Example. Springer-Verlag, Berlin, 1988.Google Scholar
  7. [CP94]
    R. Chadha and D. A. Plaisted. Correctness of unification without occur check in Prolog. Journal of Logic Programming, 18(2):99–122, 1994.Google Scholar
  8. [DFT91]
    P. Deransart, G. Ferrand, and M. Téguia. NSTO programs (not subject to occur-check). In V. Saraswat and K. Ueda, editors, Proceedings of the International Logic Symposium, pages 533–547. The MIT Press, 1991.Google Scholar
  9. [DM85]
    P. Dembinski and J. Maluszynski. AND-parallelism with intelligent back-tracking for annotated logic programs. In Proceedings of the International Symposium on Logic Programming, pages 29–38, Boston, 1985.Google Scholar
  10. [Dra87]
    W. Drabent. Do Logic Programs Resemble Programs in Conventional Languages? In International Symposium on Logic Programming, pages 389–396. San Francisco, IEEE Computer Society, August 1987.Google Scholar
  11. [HL94]
    P. M. Hill and J. W. Lloyd. The Gödel Programming Language. The MIT Press, 1994.Google Scholar
  12. [Kow79]
    R. Kowalski. Algorithm = Logic + Control. Communications of ACM, 22:424–431, 1979.Google Scholar
  13. [LK93]
    S. Lüttringhaus-Kappel. Control generation for logic programs. In D. S. Warren, editor, Proceedings of the 10th Int. Conf. on Logic Programming, Budapest, pages 478–495. MIT, July 1993.Google Scholar
  14. [Llo87]
    J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, Berlin, second edition, 1987.Google Scholar
  15. [Lui94]
    I. Luitjes. Logic programming and dynamic selection rules. Scriptie (Master's Thesis), University of Amsterdam, 1994.Google Scholar
  16. [MM82]
    A. Martelli and U. Montanari. An efficient unification algorithm. ACM Transactions on Programming Languages and Systems, 4:258–282, 1982.Google Scholar
  17. [Nai82]
    L. Naish. An Introduction to MU-PROLOG. Technical Report TR 82/2, Dept. of Computer Science, Univ. of Melbourne, 1982.Google Scholar
  18. [Nai86]
    L. Naish. Negation and Control in Prolog. Number 238 in Lecture Notes in Computer Science. Springer-Verlag, 1986.Google Scholar
  19. [Nai88]
    L. Naish. Parallelizing NU-Prolog. In Proceedings of the Fifth Annual Symposium on Logic in Computer Science, pages 1546–1564. The MIT Press, 1988.Google Scholar
  20. [Nai92]
    L. Naish. Coroutining and the construction of terminating logic programs. Technical Report 92/5, Department of Computer Science, University of Melbourne, 1992.Google Scholar
  21. [SD94]
    D. De Schreye and S. Decorte. Termination of logic programs: the never-ending story. Journal of Logic Programming, 19–20:199–260, 1994.Google Scholar
  22. [Sha89]
    E. Shapiro. The family of concurrent logic programming languages. ACM Computing Surveys, 21(3):412–510, 1989.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Krzysztof R. Apt
    • 1
    • 2
  • Ingrid Luitjes
    • 2
  1. 1.CWIGB AmsterdamThe Netherlands
  2. 2.Department of Mathematics and Computer ScienceUniversity of AmsterdamTV AmsterdamThe Netherlands

Personalised recommendations