Design and synthesis of synchronization skeletons using branching time temporal logic
We have shown that it is possible to automatically synthesize the synchronization skeleton of a concurrent program from a Temporal Logic specification. We believe that this approach may in the long run turn out to be quite practical. Since synchronization skeletons are, in general, quite small, the potentially exponential behavior of our algorithm need not be an insurmountable obstacle. Much additional research will be needed, however, to make the approach feasible in practice.
We have also described a model checking algorithm which can be applied to mechanically verify that a finite state concurrent program meets a particular Temporal Logic specification. We believe that practical software tools based on this technique could be developed in the near future. Indeed, we have already programmed an experimental implementation of the model checker on the DEC 11/70 at Harvard.* Certain applications seem particularly suited to the model checker approach to verification: One example is the problem of verifying the correctness of existing network protocols many of which are coded as finite state machines. We encourage additional work in this area.
KeywordsModel Checker Temporal Logic Decision Procedure Successor State Critical Section
Unable to display preview. Download preview PDF.
- [BA81]Ben-Ari, M., personal communication, 1981.Google Scholar
- [BH81]Ben-Ari, M., Halpern, J., and Pnueli, A., Finite Models for Deterministic Propositional Logic. Proceedings 8th Int. Colloquium on Automata, Languages, and Programming, to appear, 1981.Google Scholar
- [BM81]Ben-Ari, M., Manna, Z., and Pnueli, A., The Temporal Logic of Branching Time. 8th Annual ACM Symp. on Principles of Programming Languages, 1981.Google Scholar
- [CL77]Clarke, E.M., Program Invariants as Fixpoints. 18th Annual Symp. on Foundations of Computer Science, 1977.Google Scholar
- [EC80]Emerson, E.A., and Clarke, E.M., Characterizing Correctness Properties of Parallel Programs as Fixpoints. Proceedings 7th Int. Colloquium on Automata, Languages, and Programming, Lecture Notes in Computer Science #85, Springer-Verlag, 1981.Google Scholar
- [EH81]Emerson, E.A., and Halpern, J., A New Decision Procedure for the Temporal Logic of Branching Time, unpublished manuscript, Harvard Univ., 1981.Google Scholar
- [FS81]Flon, L., and Suzuki, N., The Total Correctness of Parallel Programs. SIAM J. Comp., to appear, 1981.Google Scholar
- [GP80]Gabbay, D., Pnueli, A., et al., The Temporal Analysis of Fairness. 7th Annual ACM Symp. on Principles of Programming Languages, 1980.Google Scholar
- [HC68]Hughes, G., and Cresswell, M., An Introduction to Modal Logic. Methuen, London, 1968.Google Scholar
- [LA80]Lamport, L., "Sometime" is Sometimes "Not Never." 7th Annual ACM Symp. on Principles of Prgramming Languages, 1980.Google Scholar
- [LA78]Laventhal, M., Synthesis of Synchronization Code for Data Abstractions, Ph.D. Thesis, M.I.T., June 1978.Google Scholar
- [PA69]Park, D., Fixpoint Induction and Proofs of Program Properties, in Machine Intelligence 5 (D. Mitchie, ed.), Edinburgh University Press, 1970.Google Scholar
- [PR77]Pratt, V., A Practical Decision Method for Propositional Dynamic Logic. 10th ACM Symp. on Theory of Computing, 1977.Google Scholar
- [RK80]Ramamritham, K., and Keller, R., Specification and Synthesis of Synchronizers. 9th International Conference on Parallel Processing, 1980.Google Scholar
- [SM68]Smullyan, R.M., First Order Logic. Springer-Verlag, Berlin, 1968.Google Scholar
- [TA55]Tarski, A., A Lattice-Theoretical Fixpoint Theorem and Its Applications. Pacific J. Math., 5, pp. 285–309 (1955).Google Scholar
- [WO81]Wolper, P. Synthesis of Communicating Processes From Temporal Logic Specifications, unpublished manuscript, Stanford Univ., 1981.Google Scholar