# Verification of logic programs with delay declarations

## Abstract

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.

## Preview

Unable to display preview. Download preview PDF.

## References

- [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 - [AP94]K. R. Apt and A. Pellegrini. On the occur-check free Prolog programs.
*ACM Toplas*, 16(3):687–726, 1994.Google Scholar - [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 - [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 - [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 - [CC88]H. Coelho and J. C. Cotta.
*Prolog by Example*. Springer-Verlag, Berlin, 1988.Google Scholar - [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 - [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 - [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 - [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 - [HL94]P. M. Hill and J. W. Lloyd.
*The Gödel Programming Language*. The MIT Press, 1994.Google Scholar - [Kow79]R. Kowalski. Algorithm = Logic + Control.
*Communications of ACM*, 22:424–431, 1979.Google Scholar - [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 - [Llo87]J. W. Lloyd.
*Foundations of Logic Programming*. Springer-Verlag, Berlin, second edition, 1987.Google Scholar - [Lui94]I. Luitjes. Logic programming and dynamic selection rules. Scriptie (Master's Thesis), University of Amsterdam, 1994.Google Scholar
- [MM82]A. Martelli and U. Montanari. An efficient unification algorithm.
*ACM Transactions on Programming Languages and Systems*, 4:258–282, 1982.Google Scholar - [Nai82]L. Naish. An Introduction to MU-PROLOG. Technical Report TR 82/2, Dept. of Computer Science, Univ. of Melbourne, 1982.Google Scholar
- [Nai86]L. Naish.
*Negation and Control in Prolog*. Number 238 in Lecture Notes in Computer Science. Springer-Verlag, 1986.Google Scholar - [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 - [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
- [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 - [Sha89]E. Shapiro. The family of concurrent logic programming languages.
*ACM Computing Surveys*, 21(3):412–510, 1989.Google Scholar