Abstract
State space caching is a state space exploration method that stores all states of just one execution sequence plus as many previously visited states as available memory allows. So far, this technique has been of little practical significance. With a conventional reachability analysis, it allows one to reduce memory usage by only two to three times, before an unacceptable exponential increase of the run-time overhead sets in. The explosion of the run-time requirements is caused by redundant multiple explorations of unstored parts of the state space. Indeed, almost all states in the state space of concurrent systems are typically reached several times during the search. There are two causes for this: firstly, several different partial ordcrings of statement executions can lead to the same state; secondly, all interleavings of a same partial ordering of statement executions lead to the same state.
In this paper, we describe a method to completely avoid the effects of the second cause given above. We show that with this method, most reachable states are visited only once during the state space exploration. This makes for the first time state space caching a very efficient verification method. We were able, for instance, to completely explore a state space of 250,000 states while storing simultaneously no more than 500 states and with only a three-fold increase of the run-time requirements.
The work of these authors is partially supported by the European Community ESPRIT BRA project SPEC (3096) and by the Belgian Incentive Program “Information Technology” — Computer Science of the future, initiated by Belgian State — Prime Minister's Service — Science Policy Office. The scientific responsibility is assumed by its authors.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
C. Courcoubetis, M. Vardi, P. Wolper, and M. Yannakakis. Memory efficient algorithms for the verification of temporal properties. In Proc. 2nd Workshop on Computer Aided Verification, volume 531 of Lecture Notes in Computer Science, pages 233–242, Rutgers, June 1990.
P. Godefroid. Using partial orders to improve automatic verification methods. In Proc. 2nd Workshop on Computer Aided Verification, volume 531 of Lecture Notes in Computer Science, pages 176–185, Rutgers, June 1990.
P. Godefroid and P. Wolper. A partial approach to model checking. In Proceedings of the 6th IEEE Symposium on Logic in Computer Science, pages 406–415, Amsterdam, July 1991.
P. Godefroid and P. Wolper. Using partial orders for the efficient verification of deadlock freedom and safety properties. In Proc. 3rd Workshop on Computer Aided Verification, volume 575 of Lecture Notes in Computer Science, pages 332–342, Aalborg, July 1991.
G. J. Holzmann, P. Godefroid, and D. Pirottin. Coverage preserving reduction strategies for reachability analysis. In Proc. 12th International Symposium on Protocol Specification, Testing, and Verification, Lake Buena Vista, Florida, June 1992. North-Holland.
G. J. Holzmann. Pan — a protocol specification analyzer. Technical report, Technical Memorandum 81-11271-5, Bell Laboratories, 1981.
G. J. Holzmann. The pandora system — an interactive system for the design of data communication protocols. Computer Networks, 8(2):71–81, 1984.
G. J. Holzmann. Tracing protocols. AT&T Technical Journal, 64(12):2413–2434, 1985.
G. J. Holzmann. Automated protocol validation in argos — assertion proving and scatter searching. IEEE Trans. on Software Engineering, 13(6):683–696, 1987.
G. J. Holzmann. Algorithms for automated protocol validation. AT&T Technical Journal, 69(1):32–44, 1990. Special issue on Protocol Testing and Verification.
G. J. Holzmann. Design and Validation of Computer Protocols. Prentice Hall, 1991.
C. Jard and T. Jeron. On-line model-checking for finite linear temporal logic specifications. In Workshop on automatic verification methods for finite state systems, volume 407 of Lecture Notes in Computer Science, pages 189–196, Grenoble, June 1989.
C. Jard and Th. Jeron. Bounded-memory algorithms for verification on-the-fly. In Proc. 3rd Workshop on Computer Aided Verification, volume 575 of Lecture Notes in Computer Science, Aalborg, July 1991.
A. Mazurkiewicz. Trace theory. In Petri Nets: Applications and Relationships to Other Models of Concurrency, Advances in Petri Nets 1986, Part II; Proceedings of an Advanced Course, volume 255 of Lecture Notes in Computer Science, pages 279–324, 1986.
M. Trehel and M. Naimi. Un algorithme distribué d'exclusion mutuelle en log(n). Technique et Science Informatiques, pages 141–150, 1987.
M.Y. Vardi and P. Wolper. Automata-theoretic techniques for modal logics of programs. Journal of Computer and System Science, 32(2):182–21, April 1986.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Godefroid, P., Holzmann, G.J., Pirottin, D. (1993). State space caching revisited. In: von Bochmann, G., Probst, D.K. (eds) Computer Aided Verification. CAV 1992. Lecture Notes in Computer Science, vol 663. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56496-9_15
Download citation
DOI: https://doi.org/10.1007/3-540-56496-9_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-56496-6
Online ISBN: 978-3-540-47572-9
eBook Packages: Springer Book Archive