Abstract
We demonstrate an assertional proof technique for showing termination of CSP-like programs. We introduce the notion of annotation which generalizes the idea of annotated program or proof outline. Our annotation is defined as a branching structure of predicates of the assertion language. The framework of annotations allows us to adopt the method of well founded counters. The resulting methodology for doing termination proofs is sound and complete for arithmetical interpretations. Moreover, we do not need to introduce auxiliary variables into the verified programs. Instead of using auxiliary variables to encode references to control flow, what is normally done, we factor out the reasoning on the flow of control from the assertional correctness proof. The separated reasoning on the flow of control can be easily mechanized. An example is worked out in which termination of a program for set partitioning is proved. The presented approach is, in fact, only a part of a more comprehensive methodology which is developed in the full version of this paper.
on leave from Institute of Mathematics, University of Gdańsk, 80-952 Gdańsk, Poland.
Preview
Unable to display preview. Download preview PDF.
References
K.R. Apt, Formal justification of a proof system for communicating sequential processes, Journal of the ACM 30(1), pp. 197–216 (1983).
K.R. Apt, Ten years of Hoare's Logic: a survey — Part II: nondeterminism, Theoretical Computer Science 28, pp. 83–109 (1984).
K.R. Apt, N. Francez, W.P. de Roever, A proof system for communicating sequential processes, TOPLAS 2(3), pp. 359–384 (1980).
H. Barringer, A Survey of Verification Techniques for Parallel Programs, LNCS 191, Springer-Verlag, 1985.
S.D. Brookes, A semantically based proof system for partial correctness and deadlock in CSP, in: Proceedings 1986 LICS, pp. 58–65.
E.W. Dijkstra, A correctness proof for communicating processes — A small exercise, in: Selected writings on Computing: A Personal Perspective. Springer-Verlag, 1982.
D. Harel, First-Order Dynamic Logic, LNCS 68, Springer-Verlag, 1979.
G.M. Levin, D. Gries, A proof technique for communicating sequential processes, Acta Informatica 15, pp. 159–172 (1981).
J. Misra, K.M. Chandy, Proofs of Networks of Processes, IEEE Transactions on Software Engineering, vol. SE-7 (4), pp. 417–426, 1981.
P. Pączkowski, Proving correctness of concurrent programs without using auxiliary variables, ECS-LFCS-89-100, University of Edinburgh, 1989.
G.D. Plotkin, A Structural Approach to Operational Semantics, DAIMI Report FN-19, Aarhus University, 1981.
W.P. de Roever, The quest for compositionality: a survey of assertion based proof systems for concurrent programs. Part 1, Technical Report RUU-CS-85-2, University of Utrecht, 1985.
F.B. Schneider, G.R. Andrews, Concepts for concurrent programming, in: Current Trends in Concurrency. Overviews and Tutorials. (J.W. de Bakker, W.P. de Roever, G. Rozenberg, Eds.), LNCS 224, Springer-Verlag, 1986.
N. Soundararajan, Correctness proofs of CSP programs, Theoretical Computer Science 24(2), pp. 131–141 (1983).
J. Zwiers, W.P. de Roever, P. van Emde Boas, Compositionality and concurrent networks: soundness and completeness of a proof system, in: Proc. of ICALP 85, pp. 509–519, LNCS 194, Springer-Verlag 1985.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Paczkowski, P. (1990). Proving termination of communicating programs. In: Baeten, J.C.M., Klop, J.W. (eds) CONCUR '90 Theories of Concurrency: Unification and Extension. CONCUR 1990. Lecture Notes in Computer Science, vol 458. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0039074
Download citation
DOI: https://doi.org/10.1007/BFb0039074
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-53048-0
Online ISBN: 978-3-540-46395-5
eBook Packages: Springer Book Archive