skip to main content
article
Open Access

Verifying temporal properties without temporal logic

Published:01 January 1989Publication History
Skip Abstract Section

Abstract

An approach to proving temporal properties of concurrent programs that does not use temporal logic as an inference system is presented. The approach is based on using Buchi automata to specify properties. To show that a program satisfies a given property, proof obligations are derived from the Buchi automata specifying that property. These obligations are discharged by devising suitable invariant assertions and variant functions for the program. The approach is shown to be sound and relatively complete. A mutual exclusion protocol illustrates its application.

References

  1. 1 ALPERN, B. Proving temporal properties of concurrent programs: A non-temporal approach. Ph.D. thesis, Dept. of Computer Science, Cornell Univ., Feb. 1986. Google ScholarGoogle Scholar
  2. 2 ALPERN, B., AND SCHNEIDER, F.B. Verifying temporal properties without using temporal logic. Tech. Rep. TR 85-723, Dept. of Computer Science, Cornell Univ., Dec. 1985. Google ScholarGoogle Scholar
  3. 3 BARRINGER, H., KUIPER, R., AND PNUELI, A. Now you may compose temporal logic specifications. In Proceedings of the 16th Annual Symposium on Theory of Computing (Washington, D.C., Apr. 1984). ACM, New York, 1984, pp. 51-63. Google ScholarGoogle Scholar
  4. 4 CLARKE, E. M., AND GRUMBERG, O. Avoiding the state explosion problem in temporal logic model checking algorithms. In Proceedings of the 6th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (Vancouver, B.C., Canada, Aug., 1987). ACM, New York, 1987, pp. 294-303. Google ScholarGoogle Scholar
  5. 5 CLARKE, E. M., EMERSON, E. A., AND SISTLA, A. P. Automatic verification of finite-state concurrent systems using temporal logic specifications: A practical approach. In Proceedings of the lOth ACM Symposium on Principles of Programming Languages (Austin, Tex., Jan. 1983). ACM, New York, 1983, pp. 117-126. Google ScholarGoogle Scholar
  6. 6 EILENEERG, S. Automata, Languages and Machines, Vol A. Academic Press, New York, 1974. Google ScholarGoogle Scholar
  7. 7 EMERSON, E. A., AND LEI, C.-L. Modalities for model checking: Branching time strikes back. In Proceedings of the 12th ACM Symposium on Principles of Programming Languages (New Orleans, La., Jan. 1985). ACM, New York, 1985, pp. 84-96. Google ScholarGoogle Scholar
  8. 8 EMERSON, E. A., AND SISTLA, A.P. Deciding branching time logic: A triple exponential decision procedure for CTL*. In Logics of Programs. Lecture Notes in Computer Science, vol. 164. Springer- Verlag, Berlin, 1983, pp. 176-192. Google ScholarGoogle Scholar
  9. 9 FRANCEZ, N. Fairness. Texts and Monographs in Computer Science. Springer-Verlag, Berlin, 1986. Google ScholarGoogle Scholar
  10. 10 GERTH, R. Transition logic. In Proceedings of the 16th Annual Symposium on Theory of Computing (Washington, D.C., Apr. 1984). ACM, New York, 1984, pp. 39-50. Google ScholarGoogle Scholar
  11. 11 HOARE, C. A.R. An axiomatic basis for computer programming. Commun. ACM 12, 10 (Oct. 1969), 576-580. Google ScholarGoogle Scholar
  12. 12 JONES, C.B. Specification and design of (parallel) programs. In Information Processing '83, R. E. A. Mason, Ed. North-Holland, Amsterdam, 1983, pp. 321-332.Google ScholarGoogle Scholar
  13. 13 KURSHAN, R. Complementing deterministic Buchi automata in polynomial time. J. Comput. Syst. Sci. 35, i (Aug. 1987), 59-71. Google ScholarGoogle Scholar
  14. 14 KURSHAN, g. Reducibility in analysis of coordination. In Discrete Event Systems: Models and Applications, Lecture Notes in Control and Information Sciences. IIASA, vol. 103, Springer-Verlag, New York, 1987, pp. 19-39.Google ScholarGoogle Scholar
  15. 15 LAMPORT, L. Specifying concurrent program modules. ACM Trans. Program. Lang. Syst. 6, 2 (Apr. 1983), 190-222. Google ScholarGoogle Scholar
  16. 16 LAMPORT, L. What good is temporal logic. In Information Processing '83, R. E. A. Mason, Ed. North-Holland, Amsterdam, 1983, pp. 657-668.Google ScholarGoogle Scholar
  17. 17 LAMPORT, L., AND SCHNEIDER, F.B. The "Hoare logic" of CSP, and all that. ACM Trans. Program. Lang. Syst. 6, 2 (Apr. 1984), 281-296. Google ScholarGoogle Scholar
  18. 18 LEHMANN, D., PNUELI, A., AND STAVI, J. Impartiality, justice and fairness: The ethics of concurrent termination. In Automata, Languages, and Programming. Lecture Notes in Computer Science, vol. 115. Springer-Verlag, Berlin, 1981, pp. 264-277. Google ScholarGoogle Scholar
  19. 19 LICHTENSTEIN, O., AND PNUELI, A. Checking that finite state concurrent programs satisfy their linear specification. In Proceedings of the 12th ACM Symposium on Principles of Programming Languages (New Orleans, La., Jan. 1985). ACM, New York, 1985, pp. 97-107. Google ScholarGoogle Scholar
  20. 20 MANNA, Z., AND PNUELI, A. The modal logic of programs. In Proceedings of the 6th International} Colloquium on Automata, Languages, and Programming. Lecture Notes in Computer Science, vol. 71. Springer-Verlag, Berlin, 1979, pp. 385-409. Google ScholarGoogle Scholar
  21. 21 MANNA, Z., AND PNUELI, A. Verification of concurrent programs: The temporal framework. In The Correctness Problem in Computer Science, R. S. Boyer and J. S. Moore, Eds. International Lecture Series in Computer Science. Academic Press, London, 1981, pp. 141-154.Google ScholarGoogle Scholar
  22. 22 MANNA, Z., AND PNUELI, A. Verification of concurrent programs: Temporal proof principles. In Logic of Programs. Lecture Notes in Computer Science, vol. 131. Springer-Verlag, Berlin, 1981, pp. 200-252. Google ScholarGoogle Scholar
  23. 23 MANNA, Z., AND PNUELI, A. How to cook a temporal proof system for your pet language. In Proceedings of the Symposium on Principles of Programming Languages (Austin, Tex., Jan. 1983). ACM, New York, 1983, pp. 141-154. Google ScholarGoogle Scholar
  24. 24 MANNA, Z., AND PNUELI, A. Verification of concurrent programs: A temporal proof system. In Foundations of Computer Science IV, Distributed Systems: Part 2, J. W. DeBakkar and J. Van Leuwen, Eds. Mathematical Centre Tracts 159, Amsterdam, 1983, pp. 163-255.Google ScholarGoogle Scholar
  25. 25 MANNA, Z., AND PNUELI, A. Adequate proof principles for invariance and liveness properties of concurrent programs. Sci. Comput. Program. 4, 3 (1984), 257-289. Google ScholarGoogle Scholar
  26. 26 MANNA, Z., AND PNUELI, A. Specification and verification of concurrent programs by V- automata. In Proceedings of the 14th Symposium Principles of Programming Languages (Munich, Jan. 1987). ACM, New York, 1987, pp. 1-12. Google ScholarGoogle Scholar
  27. 27 MISRA, J., CHANDY, K. M., AND SMITH, T. Proving safety and liveness of communicating processes with examples. In Proceedings o{ the ACM SIGACT-SIGOPS Symposium on Principles o{ Distributed Computing (Ottawa, Canada, Aug. 1982). ACM, New York, 1982, pp. 157-164. Google ScholarGoogle Scholar
  28. 28 NGUYEN, V., GRIES, D., AND OWlCKI, S. A model and temporal proof system for networks of processes. In Proceedings of the 12th ACM Symposium on Principles o{ Programming Languages (New Orleans, La., Jan. 1985). ACM, New York, 1985, pp. 121-131. Google ScholarGoogle Scholar
  29. 29 OWICKI, S. S., AND LAMPORT, L. Proving liveness properties of concurrent programs. ACM Trans. Program. Lang. Syst. 4, 3 (July 1982), 455-496. Google ScholarGoogle Scholar
  30. 30 PEWERSON, G.L. Myths about the mutual exclusion problem. Inf. Process. Lett. 12, 3 (June 1981), 115-116.Google ScholarGoogle Scholar
  31. 31 PNUELI, A. The temporal logic of programs. In Proceedings of the 18th Symposium on the Foundations of Computer Science (Providence, R.I., Nov. 1977). IEEE, New York, 1977, pp. 46-57.Google ScholarGoogle Scholar
  32. 32 SgSTLA, A. P., ANO GERMAN, S. M. Reasoning with many processes. In Proceedings of the Symposium on Logic in Computer Science (Ithaca, N.Y., June 1987). IEEE, New York, 1987, pp. 138-152.Google ScholarGoogle Scholar
  33. 33 STARK, E.W. Foundations of a theory of specification for distributed systems. MIT/LCS/TR- 342, Ph.D. thesis, MIT Laboratory for Computer Science, Cambridge, Mass., Aug. 1984. Google ScholarGoogle Scholar
  34. 34 VARDI, M. Y., AND WOLPER, P. An automata-theoretic approach to automatic program verification. In Proceedings of the Symposium on Logic in Computer Science (Boston, Mass, June 1986). IEEE, New York, 1986, pp. 332-344.Google ScholarGoogle Scholar
  35. 35 WOLPER, P. Temporal logic can be more expressive. Inf. Control 56, 1-2 (1983), 72-99.Google ScholarGoogle Scholar

Index Terms

  1. Verifying temporal properties without temporal logic

                    Recommendations

                    Reviews

                    Ann E. Kelley Sobel

                    Alpern and Schneider define a temporal property of a program as the disjunction of properties that can be specified by deterministic Bu¨chi automata. Proof obligations for a single clause involve exhibiting an invariant (for safety aspects), a variant function (for liveness aspects), and a candidate function, which arbitrates among the automata specifying the disjuncts of the clause. These verification conditions can also be formulated as Hoare triples. The main contribution of the work is to provide a systematic method of reducing a temporal property of a (potentially infinite-state) program to nontemporal proof obligations. Candidate functions, a nonstandard proof instrument, can be eliminated, thereby simplifying the verification conditions. Unfortunately, the proof methodology is not modular since it requires the definition of predicates using control points, which are inserted before and after each atomic action in the annotated program text.

                    Access critical reviews of Computing literature here

                    Become a reviewer for Computing Reviews.

                    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

                    • Published in

                      cover image ACM Transactions on Programming Languages and Systems
                      ACM Transactions on Programming Languages and Systems  Volume 11, Issue 1
                      Jan. 1989
                      167 pages
                      ISSN:0164-0925
                      EISSN:1558-4593
                      DOI:10.1145/59287
                      Issue’s Table of Contents

                      Copyright © 1989 ACM

                      Publisher

                      Association for Computing Machinery

                      New York, NY, United States

                      Publication History

                      • Published: 1 January 1989
                      Published in toplas Volume 11, Issue 1

                      Permissions

                      Request permissions about this article.

                      Request Permissions

                      Check for updates

                      Qualifiers

                      • article

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader