Export Citations
In networks of communicating processes, it is often useful to prove certain "safety" properties. That is, we would like to be able to make the statement, "If two processes communicate, the messages they send will be the right ones." There have been many ad hoc proof methods proposed--almost as many methods as networks. In this dissertation, we attempt to unify the approach to verification by demonstrating an extremely flexible and robust proof technique.
We give concise formal proofs for a wide variety of networks. In some cases, these networks exhibit properties which make the use of the technique quite stratighforward. The method is also shown to be worthwhile for specification of the network behavior, just as pre and postconditions may be useful for specifying sequential procedures. None of the proofs requires the use of temporal logic.
Finally, we demonstrate that in addition to being usable, in the sense that it is feasible in many and varied instances, the proof technique is also useful, in the sense that it is easy to use, natural for message-passing networks, and modular, i.e., the proofs of individual process functions are separated from the overall network proof.
Cited By
- Jonsson B Modular verification of asynchronous networks Proceedings of the sixth annual ACM Symposium on Principles of distributed computing, (152-166)
- Misra J, Chandy K and Smith T Proving safety and liveness of communicating processes with examples Proceedings of the first ACM SIGACT-SIGOPS symposium on Principles of distributed computing, (201-208)
Recommendations
Runtime Verification of Safety-Progress Properties
Runtime VerificationThe underlying property, its definition and representation play a major role when monitoring a system. Having a suitable and convenient framework to express properties is thus a concern for runtime analysis. It is desirable to delineate in this ...
Formal Verification of Ada Programs
The Penelope verification editor and its formal basis are described. Penelope is a prototype system for the interactive development and verification of programs that are written in a rich subset of sequential Ada. Because it generates verification ...