Abstract
This article addresses the problem of designing memory-efficient algorithms for the verification of temporal properties of finite-state programs. Both the programs and their desired temporal properties are modeled as automata on infinite words (Büchi automata). Verification is then reduced to checking the emptiness of the automaton resulting from the product of the program and the property. This problem is usually solved by computing the strongly connected components of the graph representing the product automaton. Here, we present algorithms that solve the emptiness problem without explicitly constructing the strongly connected components of the product graph. By allowing the algorithms to err with some probability, we can implement them with a randomly accessed memory of size O(n) bits, where n is the number of states of the graph, instead of O(n log n) bits that the presently known algorithms require.
Similar content being viewed by others
References
C.H. West Generalized technique for communication protocol validation. IBM Journal of Research and Development, 22:393–404 (1978).
M.T. Liu. Protocol engineering. Advances in Computing, 29:79–195 (1989).
H. Rudin. Network protocols and tools to help produce them. Annual Review of Computer Science, 2:191–316 (1987).
C.H. West and P. Zafiropulo. Automated validation of a communication protocol: the ccitt x.21 recommendation. IBM Journal of Research and Development, 22:60–71 (1978).
H. Rudin and C.H. West. A validation technique for tightly-coupled protocols. IEEE Transactions on Computers, C-312:630–636 (1982).
C.A. Sunshine. Experience with automated protocol verification. In Proceedings of the International Conference on Communication, Boston, June 1983, pp. 1306–1310.
B.T. Hailpern. Tools for verifying network protocols. In Logic and Models of Concurrent Systems, NATO ISI Series, K. Apt (ed.). Springer-Verlag, New York, 1985, pp. 57–76.
R. Grotz, C. Jard, and C. Lassudrie. Attacking a complex distributed systems for different sides: an experience with complementary validation tools. In Proceedings of the 4th Workshop of Protocol Specification, Testing, and Verification. North-Holland, Amsterdam, 1984, 3–17.
E.M. Clarke, E.A. Emerson, and A.P. Sistla. Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Transactions on Programming Languages and Systems, 8(2):244–263 (January 1986).
E.M. Clarke and O. Grümberg. Avoiding the state explosion problem in temporal logic modelchecking algorithms. In Proceedings of the 6th ACM Symposium on Principles of Distributed Computing. Vancouver, British Columbia, August 1987, pp. 294–303.
O. Lichtenstein and A. Pneuli. Checking that finite state concurrent programs satisfy their linear specification. In Proceedings of the Twelfth ACM Symposium on Principles of Programming Languages. New Orleans, January 1985, pp. 97–107.
J.P. Queille and J. Sifakis. Specification and verification of concurrent systems in cesar. In Proceedings of the 5th International Symposium on Programming, volume 137, in Lecture Notes in Computer Science. Springer Verlag, New York, 1981, pp. 337–351.
M. Vardi. Unified verification theory. In Proceedings of Temporal Logic in Specification, B. Banieqbal, H. Barringer, and A. Pneuli (ed.), volume 398 in Lecture Notes in Computer Science. Springer-Verlag, New York, 1989, pp. 202–212.
M.Y. Vardi and P. Wolper. An automata-theoretic approach to automatic program verification. In Proceedings of a Symposium on Logic in Computer Science, Cambridge, June 1986, pp. 322–331.
P. Wolper. On the relation of programs and computations to models of temporal logic. In Proceedings of Temporal Logic in Specification, B. Banieqbal, H. Barringer, and A. Pnueli (eds.), volume 398 in Lecture Notes in Computer Science. Springer-Verlag, New York, 1989, pp. 75–123.
G. Holzmann. An improved protocol reachability analysis technique. Software Practice and Experience, vol. 18, no. 2, 137–161 (February 1988).
C. Jard and T. Jéron. On-line model-checking for finite linear temporal logic specifications. In Automatic Verification Methods for Finite State Systems, Proceedings of a International Workshop, Grenoble, volume 407 in Lecture Notes in Computer Science, Grenoble, June 1989. Springer-Verlag, New York, 1989, pp. 189–96.
M.Y. Vardi and P. Wolper. Reasoning about infinite computation paths. IBM Research Report RJ6209, 1988.
André Thayse and et al. From Modal Logic to Deductive Databases: Introducing a Logic Based Approach to Artificial Intelligence, Wiley, New York, 1989.
Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. The Design and Analysis of Computer Algorithms. Addison Wesley, Reading, MA, 1974.
S. Aggarwal, C. Courcoubetis, and P. Wolper. Adding liveness properties to coupled finite-state machines. ACM Transactions on Programming Languages and Systems, 12(2):303–339 (1990).
Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. Data Structures and Algorithms. Addison Wesley, Reading, MA, 1982.
G.J. Holzmann. Tracing protocols. AT&T Technical Journal, 64(12):2413–2434 (1985).
C. Jard and T. Jeron. Bounded-memory algorithms for verification on the fly. In Proceedings of a Workshop on Computer Aided Verification, Aalborg, July 1991.
P. Godefroid, G.J. Holzmann, and D. Pirottin. State space caching revisited. In Proceedings of the 4th Workshop on Computer Aided Verification, Montreal, June 1992.
G. Holzmann. Design and Validation of Computer Protocols. Prentice-Hall International Editions, Englewood Cliffs, NJ, 1991.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Courcoubetis, C., Vardi, M., Wolper, P. et al. Memory-efficient algorithms for the verification of temporal properties. Form Method Syst Des 1, 275–288 (1992). https://doi.org/10.1007/BF00121128
Issue Date:
DOI: https://doi.org/10.1007/BF00121128