Summary
This paper describes a compositional proof system called P-A logic for establishing weak total correctness and weak divergence correctness of CSP-like distributed programs with synchronous and asynchronous communication. Each process in a network is specified using logical assertions in terms of a presuppositionPre and an affirmationAff as a triple {Pre}S{Aff}. For purely sequential programs, these triples reduce to the familiar Hoare triples. In distributed programs, P-A triples allow the behaviour of a process to be specified in the context of assumptions about its communications with the other processes in the network. Safety properties of process communications, and progress properties such as finiteness and freedom from divergence can be proved. An extension of P-A logic allowing proof of deadlock freedom is outlined. Finally, proof rules for deriving some liveness properties of a program from its P-A logic specification are discussed; these properties have the form “Q untilR”, whereQ, R are assertions over communication traces. Other liveness properties may be derived from these properties using the rules of temporal logic.
Similar content being viewed by others
References
Apt KR, Francez N, de Roever WP: A proof system for communicating sequential processes. ACM Trans Progr Lang Syst 2(3):359–384 (1980)
Alpern B, Schneider FB: Defining liveness. Inf Process Lett 21:177–180 (1985)
Barringer H, Kuiper R, Pnueli A: A compositional temporal approach to CSP-like languages. In: Neuhold EJ (ed) Proc of the IFIP conference: the role of abstract models in computer science, Vienna. North Holland, Amsterdam 1985, pp 207–227
Brookes SD, Roscoe AW: An improved failures model for communicating sequential processes. In: Lect Notes Comput Sci, vol 197, Springer 1984
Enderton HB: A mathematical introduction to logic. Academic Press, New York 1972
Francez N, Pnueli A: A proof method for cyclic programs. Acta Inf 9:138–158 (1978)
Gries D: The science of programming. Springer, Berlin Heidelberg New York 1981
Hoare CAR: Communicating sequential processes. Commun ACM 21(8):666–667 (1978)
Hoare CAR: A calculus for the total correctness of communicating processes. Sci Comp Progr 1 (1,2):49–72 (1981)
Hoare CAR: Communicating sequential processes. Prentice Hall, Englewood Cliffs, New Jersey 1985
INMOS Ltd.: The Occam programming manual. Prentice-Hall 1983
Jones CB: Specification and design of (parallel) programs. In: Mason REA (ed) Information Processing 83. North-Holland, pp 321–331 1983
Jonsson B: A model and proof system for asynchronous networks. In: Proc 4th ACM Symp on Principles of Distributed Computing, Minaki, Canada (1985)
Lamport L: ‘Sometime’ is sometimes ‘not never’: on the temporal logic of programs. In: 7th ACM Symp on Principles of Programming Languages, Las Vegas 1980, pp 174–185
Levin GM, Gries D: A proof technique for communicating sequential processes. Acta In 15:281–302 (1981)
Misra J, Chandy KM: Proofs of networks of processes. IEEE Trans SE 7(4):417–426 (1981)
Misra J, Chandy KM, Smith T: Proving safety and liveness of communicating processes with examples. In: Proc ACM SIGACT-SIGOPS Symp on Principles of Distributed Computing (1982)
Nguyen V, Gries D, Owicki S: A model and temporal logic proof system for networks of processes. In: Proc 12th ACM Symp on Principles of Programming Languages (1985), pp 121–131
Owicki S: Axiomatic proof techniques for parallel programs. Ph.D. Thesis, Cornell University (1975)
Pandya P: ‘Proving layers closed’. Tech Rep CS-87/28, Computer Science Group, TIFR (1987)
Pandya P: Compositional Verification of Distributed Programs. Ph.D. Thesis. University of Bombay (1988)
Pandya P: Some comments on the assumption-commitment framework for compositional verification of distributed programs. In: de Bakker JW, de Roever WP, Rozenberg G (eds) Stepwise refinement of distributed systems. Lect Notes Comput Sci, vol 430. Springer, Berlin Heidelberg New York 1990, pp 622–640
Pnueli A: Application of temporal logic to the specification and verification of reactive system: a survey of current trends: In: de Bakker JW, de Roever WP, Rozenberg G (eds) Current trends in concurrency. Lect Notes Comput Sci., vol 224. Springer, Berlin Heidelberg New York 1984, pp 510–584
Plotkin GD: An operational semantics for CSP. In: Proc IFIP Working Conference: formal description of programming concepts, Garmisch-Partenkirchen. North-Holland 1983, pp 199–225
de Roever WP: The quest for compositionality — a survey of assertion based proof systems for concurrent programs, Part-I. In: Neuhold EJ (ed) Proc of the IFIP conference: the role of abstract models in computer science, Vienna. North Holland, Amsterdam 1985
Soundararajan N: Correctness proofs of CSP programs. Theor Comput Sci 24(2):131–141 (1983)
Soundararajan N: Total correctness of CSP programs. Acta Inf 23:193–215 (1986)
Widom J, Gries D, Schneider FB: Completeness and incompleteness of trace-based network proof systems. In: Proc of 14 ACM Symp on Principles of Programming Languages, Munich (1987)
Zwiers J, de Roever WP, van Emde Boas P: Compositionality and concurrent networks: soundness and completeness of a proof system. In: Proc 12th ICALP. Lect Notes Comput Sci, vol 194. Springer, Berlin Heidelberg New York, pp 509–519
Zwiers J: Compositionality, concurrency and partial correctness. Lect Notes Comput Sci, vol 321. Springer, Berlin Heidelberg New York 1989
Author information
Authors and Affiliations
Additional information
Paritosh Kulin Pandya received his Master's degree in Computer Science from the Indian Institute of Technology, Kanpur in 1982, and a Ph.D. from the Tata Institute of Fundamental Research in 1988 where he is currently employed. He has worked as a Research Officer in the Programming Research Group of the Oxford University from 1988 to 1991.
Mathai Joseph has since 1985 been professor of Computer Science at the University of Warwick where he leads a group working on developing formal techniques for specifying and implementing realtime and fault-tolerant systems.
Supported in part by Visiting Fellowships awarded by the Science and Engineering Research Council (research grant GR/D 90918) and the British Council
Rights and permissions
About this article
Cite this article
Pandya, P.K., Joseph, M. P — A logic — a compositional proof system for distributed programs. Distrib Comput 5, 37–54 (1991). https://doi.org/10.1007/BF02311231
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF02311231