skip to main content
article
Open Access

Proving concurrent constraint programs correct

Published:01 September 1997Publication History
Skip Abstract Section

Abstract

We introduce a simple compositional proof system for proving (partial) correctness of concurrent constraint programs (CCP). The proof system is based on a denotational approximation of the strongest postcondition semantics of CCP programs. The proof system is proved to be correct for full CCP and complete for the class of programs in which the denotational semantics characterizes exactly the strongest postcondition. This class includes the so-called confluent CCP, a special case of which is constraint logic programming with dynamic scheduling.

References

  1. Apt, K. 1983. Formal justification of a proof system for communicating sequential processes. J. ACM 30, 197-216.]] Google ScholarGoogle Scholar
  2. Apt, K., Francez, N., and de Roever, W. P. 1980. A proof system for communicating sequential processes. ACM Trans. Program. Lang. Syst. 1, 2, 359-385.]] Google ScholarGoogle Scholar
  3. Apt, K. R. 1990. Introduction to logic programming. In Handbook of Theoretical Computer Science, J. vanLeeuwen,Ed.,Vol.B:Formal Models and Semantics. Elsevier, Amsterdam and The MIT Press, Cambridge, 495-574.]] Google ScholarGoogle Scholar
  4. Apt, K. R.1993. Declarative programming in Prolog. In Proceedings of the International Symposium on Logic Programming, D. Miller, Ed. The MIT Press, Cambridge, Mass.]] Google ScholarGoogle Scholar
  5. Apt, K. R. and Luitjes, I. 1995. Verification of logic programs with delay declarations. In Proceedings of the 4th International Conference on Algebraic Methodology and Software Technology (AMAST'95), A. Borzyszkowski and S. Sokolowski, Eds. Lecture Notes in Computer Science. Springer-Verlag, Berlin.]] Google ScholarGoogle Scholar
  6. Arbab, B. and Berry, D. 1987. Operational and denotational semantics of Prolog. J. Logic Program. 4, 309-330.]] Google ScholarGoogle Scholar
  7. Bergstra, J. and Klop, J. 1986. Conditional rewrite rules: Con uence and termination. J. Comput. Syst. Sci. 32, 323-362.]] Google ScholarGoogle Scholar
  8. Carlsson, M. 1988. SICStus Prolog user's manual. Tech. Rep., Swedish Institute of Computer Science, Sweden. URL: http://www.sics.se/isl/sicstus.html.]]Google ScholarGoogle Scholar
  9. Codish, M., Fal as chi , M. , Marriott, K., and Winsborough, W. 1993. Efficient analysis of concurrent constraint logic programs. In Proceedings of the 20th International Col loquium on Automata, Languages, and Programming, A. Lingas, R. Karlsson, and S. Carlsson, Eds. Lecture Notes in Computer Science, Vol. 700. Springer-Verlag, Berlin, 633-644.]] Google ScholarGoogle Scholar
  10. Colussi, L. and Marchiori, E. 1991. Proving correctness of logic programs using axiomatic semantics. In Proceedings of the 8th International Conference on Logic Programming, K.Furukawa, Ed. The MIT Press, Cambridge, Mass., 629-644.]]Google ScholarGoogle Scholar
  11. Colussi, L., Marchiori, E., and Marchiori, M. 1995. A data ow semantics for constraint logic programs. In Proceedings of the 7th International Symposium on Programming Languages, Implementations, Logics and Programs, M. Hermenegildo and S. D. Swierstra, Eds. Springer Verlag.]] Google ScholarGoogle Scholar
  12. Cook, S. 1978. Soundness and completeness of an axiom system for program verification. SIAM J. Comput. 7, 1, 70-90.]]Google ScholarGoogle Scholar
  13. De Boer, F. and Palamidessi, C. 1992. A process algebra for concurrent constraint programming. In Proceedings of the Joint International Conference and Symposium on Logic Programming, K. Apt, Ed. Series in Logic Programming. The MIT Press, Cambridge, Mass, 463-477.]] Google ScholarGoogle Scholar
  14. De Boer, F. S. and Palamidessi, C. 1990. A fully abstract model of concurrent logic languages. Tech. Rep., Dipartimento di Informatica, Universita diPisa.]]Google ScholarGoogle Scholar
  15. De Boer, F. S., di Pierro, A., and Palamidessi, C. 1995. Infinite computations in nondeterministic constraint programming. Theor. Comput. Sci. 151, 37-78.]] Google ScholarGoogle Scholar
  16. De Boer, F. S., Kok, J. N., Palamidessi, C., and Rutten, J. J. M. M. 1991. The failure of failures: Towards a paradigm for asynchronous communication. In Proceedings of Concur '91. Lecture Notes in Computer Science, Vol. 527. Springer-Verlag, Berlin.]] Google ScholarGoogle Scholar
  17. Dijkstra, E. 1976. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, N.J.]] Google ScholarGoogle Scholar
  18. Falaschi, M., Gabbrielli, M., Marriott, K., and Palamidessi, C. 1993. Compositional analysis for concurrent constraint programming. In Proceedings of the 8th Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society Press, Los Alamitos, Calif., 210-221.]]Google ScholarGoogle Scholar
  19. Falaschi, M., Gabbrielli, M., Marriott, K., and Palamidessi, C. 1996a. Con uence in concurrent constraint programming. Tech. Rep. 96/284, Dept. of Computer Science, Monash University, Australia. To appear in Theoretical Computer Science.]] Google ScholarGoogle Scholar
  20. Falaschi, M., Gabbrielli, M., Marriott, K., and Palamidessi, C. 1996b. Constraint logic programming with dynamic scheduling: A semantics based on closure operators. Tech. Rep. 32/96, Dipartimento di Informatica, Univ. di Udine, Italy/ To appear in Information and Computation.]]Google ScholarGoogle Scholar
  21. Foster, I. and Taylor, S. 1989. Strand: New Concepts in Parallel Programming. Prentice Hall, Englewood Cliffs, N.J.]] Google ScholarGoogle Scholar
  22. Henkin, L., Monk, J., and Tarski, A. 1971. Cylindric Algebras. Part I and II. North-Holland, Amsterdam.]]Google ScholarGoogle Scholar
  23. Hill, P. M. and Lloyd, J. W. 1994. The G'odel Programming Language. TheMITPress, Cambridge, Mass.]] Google ScholarGoogle Scholar
  24. Hoare, C. 1969. An axiomatic basis for computer programming. Commun. ACM 12, 10, 576-580.]] Google ScholarGoogle Scholar
  25. Jaffar, J. and Lassez, J.-L. 1987. Constraint logic programming. In Proceedings of the 14th Annual ACM Symposium on Principles of Programming Languages. ACM Press, New York, 111-119.]] Google ScholarGoogle Scholar
  26. Jaffar, J. and Maher, M. J. 1994. Constraint logic programming: A survey. J. Logic Program. 19/20, 503-581.]]Google ScholarGoogle Scholar
  27. Jaffar, J., Michayov, S., Stuckey, P. J., and Yap, R. H. C. 1992. The CLP( R ) language and system. ACM Trans. Program. Lang. Syst. 14, 3 (July), 339-395.]] Google ScholarGoogle Scholar
  28. Jagadeesan, R., Shanbhogue, V., and Saraswat, V. 1991. Angelic non-determinism in concurrent constraint programming. Tech. Rep., System Science Lab., Xerox PARC, Palo Alto, Calif.]]Google ScholarGoogle Scholar
  29. Luttringhaus-Kappel, S. 1993. Control generation for logic programs. In Proceedings of the 10th International Conference on Logic Programming, D. Warren, Ed. MIT Press, Cambridge, Mass., 478-495.]] Google ScholarGoogle Scholar
  30. Marchiori, E. and Teusink, F. 1995. Proving termination of logic programs with delay declarations. In Proceedings of the 12th International Logic Programming Symposium,J. Lloyd, Ed. MIT Press, Cambridge, Mass.]]Google ScholarGoogle Scholar
  31. Marriott, K., de la Banda, M. G., and Hermenegildo, M. 1994. Analyzing logic programs with dynamic scheduling. In Proceedings of the 21st Annual ACM Symposium on Principles of Programming Languages. ACM Press, New York, 240-253.]] Google ScholarGoogle Scholar
  32. Naish, L. 1982. An introduction to mu-prolog. Tech. Rep. 82/2, The Univ. of Melbourne, Melbourne, Australia.]]Google ScholarGoogle Scholar
  33. Naish, L. 1986. Negation and Control in Prolog. Lecture Notes in Computer Science, Vol. 238. Springer-Verlag, Berlin.]] Google ScholarGoogle Scholar
  34. Olderog, E. 1991. Nets, Terms and Formulas. Cambridge Tracts in Theoretical Computer Science, Vol. 23. Cambridge University Press, UK.]] Google ScholarGoogle Scholar
  35. Owicki, S. and Gries, D. 1976. An axiomatic proof technique for parallel programs. Acta Inf. 6, 319-340.]]Google ScholarGoogle Scholar
  36. Panangaden, P. and Shanbhogue, V. 1992. The expressive power of indeterminate data ow primitives. Inf. Comput. 98, 1, 99-131, 1992.]] Google ScholarGoogle Scholar
  37. Panangaden, P., Saraswat, V., Scott, P., and Seely, R. 1992. A hyperdoctrinal view of concurrent constraint programming. In In Proceedings of the REX Workshop. Lecture Notes in Computer Science, Vol. 666. Springer-Verlag, Berlin, 457-476.]] Google ScholarGoogle Scholar
  38. Plotkin, G. 1980. Dijkstra's predicate transformers and Smyth's powerdomains. Lecture Notes in Computer Science, D. Bjarner, Ed., Vol. 86. Springer-Verlag, Berlin.]] Google ScholarGoogle Scholar
  39. Robinson, E. 1987. Logical aspects of denotational semantics. Lecture Notes in Computer Science, D.H. Pitt, A. Poigne, and D.E. Rydeheard, Eds., Vol. 283. Springer-Verlag, Berlin.]] Google ScholarGoogle Scholar
  40. Saraswat, V. and Rinard, M. 1990. Concurrent constraint programming. In Proceedings of the 17th ACM Symposium on Principles of Programming Languages. ACM Press, New York, 232-245.]] Google ScholarGoogle Scholar
  41. Saraswat, V. A.1989. Concurrent constraint programming languages. Ph.D. thesis, Carnegie- Mellon Univ., Pittsburgh, Pa. Also in ACM distinguished dissertation series. The MIT Press, 1993.]] Google ScholarGoogle Scholar
  42. Saraswat, V. A., Rinard, M., and Panangaden, P. 1991. Semantic foundation of concurrent constraint programming. In Proceedings of the 18th Annual ACM Symposium on Principles of Programming Languages. ACM Press, New York, 333-353.]] Google ScholarGoogle Scholar
  43. Scott, D. 1982. Domains for denotational semantics. In Proceedings of the 9th International Conference on Automata, Languages and Programming,M. NielsenandE. M. Schmidt,Eds. Lecture Notes in Computer Science, Vol. 140. Springer-Verlag, Berlin, 577-613.]] Google ScholarGoogle Scholar
  44. Smyth, M. 1983. Powerdomains and predicate transformers: A topological view. In Proceedings of the International Conference on Automata, Languages and Programming. Lecture Notes in Computer Science, Vol. 154. Springer-Verlag, Berlin, 662-675.]] Google ScholarGoogle Scholar
  45. Wallace, M. and Veron, A. 1993. Two problems - two solutions: One system - ECLiPSe. In Proceedings of the IEEE Col loquium on Advanced Software Technologies for Scheduling.]]Google ScholarGoogle Scholar

Index Terms

  1. Proving concurrent constraint programs correct

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader