Abstract
This reports some experiences with a recently-implemented prototype system for verification using predicate abstraction, based on the method of Graf and Saïdi [9]. Systems are described using a language of iterated guarded commands, called Murø -- (since it is a simplified version of our Murø protocol description language). The system makes use of two libraries: SVC [1] (an efficient decision procedure for quantifier- free first-order logic) and the CMU BDD library. The use of these libraries increases the scope of problems that can be handled by predicate abstraction through increased efficiency, especially in SVC, which is typically called thousands of times. The verification system also provides limited support for quantifiers in formulas. The system has been applied successfully to two nontrivial examples: the Flash multiprocessor cache coherence protocol, and a concurrent garbage collection algorithm. Verification of the garbage collector algorithm required proving properties simple of graphs, which was also done using predicate abstraction.
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. Barrett, D. Dill, and J. Levitt. Validity checking for combinations of theories with equality. In M. Srivas and A. Camilleri, editors, Formal Methods In Computer-Aided Design, volume 1166 of Lecture Notes in Computer Science, pages 187–201. Springer-Verlag, November 1996. Palo Alto, California, November 6-8.
M. Ben-Ari. Algorithms for on-the-fly garbage collection. ACM Transactions on Programming Languages and Systems, 6(3):333–344, July 1984.
M. A. Col_on and T. E. Uribe. Generating finite-state abstractions of reactive systems using decision procedures. In Conference on Computer-Aided Verification, volume 1427 of Lecture Notes in Computer Science, pages 293–304. Springer-Verlag, 1998.
E. W. Dijkstra, L. Lamport, A. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):966–75, November 1978.
D. Doligez and G. Gonthier. Portable, unobtrusive garbage collection for multi-processor systems. Proc. ACM Symp. on Principles of Programming Languages, January 1994.
D. Doligez and X. Leroy. A concurrent, generational garbage collector for a multi-threaded implementation of ML. Proc. ACM Symp. on Principles of Programming Languages, January 1993.
E. A. Emerson and K. S. Namjoshi. Reasoning about rings. Proc. ACM Symp. on Principles of Programming Languages, 1995.
S. M. German and A. P. Sistla. Reasoning about systems with many processes. Journal of the ACM, 39(3), July 1992.
S. Graf and H. Saïdi. Construction of abstract state graphs with PVS. In O. Grumberg, editor, Conference on Computer Aided Verification, volume 1254 of Lecture Notes in Computer Science, pages 72–83. Springer-Verlag, 1997. June 1997, Haifa, Israel.
K. Havelund. Mechanical verification of a garbage collector. Unpublished manuscript, 1996.
K. Havelund and N. Shankar. A mechanized refinement proof for a garbage collector. Unpublished manuscript, 1997.
D. Lessens and H. Saïdi. Automatic verification of parameterized networks of processes by abstraction. Electronic Notes of Theoretical Computer Science (ENTCS), 1997.
Z. Manna and A. Pnueli. Temporal Verification of Reactive Systems: Safety. Springer-Verlag, 1995.
S. Park and D. L. Dill. Verification of cache coherence protocols by aggregation of distributed transactions. Theory of Computing Systems, 31(4):355–376, 1998.
C. Pixley. An incremental garbage collection algorithm for multi-mutator systems. Distributed Computing, 3(1):41–50, 1988.
D. M. Russinoff. A mechanically verified incremental garbage collector. Formal Aspects of Computing, 6(4):359–390, 1994.
A. P. Sistla and S. M. German. Reasoning with many processes. Symp. on Logic in Computer Science, Ithaca, pages 138–152, June 1987.
J. van de Snepscheut. Algorithms for on-the-fly garbage collection revisited. Information Processing Letters, 24(4):211–16, March 1987.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Das, S., Dill, D.L., Park, S. (1999). Experience with Predicate Abstraction. In: Halbwachs, N., Peled, D. (eds) Computer Aided Verification. CAV 1999. Lecture Notes in Computer Science, vol 1633. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48683-6_16
Download citation
DOI: https://doi.org/10.1007/3-540-48683-6_16
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66202-0
Online ISBN: 978-3-540-48683-1
eBook Packages: Springer Book Archive