Abstract
In formal verification, we verify that a system is correct with respect to a specification. Cases like antecedent failure can make a successful pass of the verification procedure meaningless. Vacuity detection can signal such “meaningless” passes of the specification, and indeed vacuity checks are now a standard component in many commercial model checkers.
We address two dimensions of vacuity: the computational effort and the information that is given to the user. As for the first dimension, we present several preliminary vacuity checks that can be done without the design itself, which implies that some information can be found with a significantly smaller effort. As for the second dimension, we present algorithms for deriving two types of information that are not provided by standard vacuity checks, assuming \(M\models\varphi\) for a model M and formula φ: (a) behaviors that are possibly missing from M (or wrongly restricted by the environment) (b) the largest subset of occurrences of literals in φ that can be replaced with false simultaneously without falsifying φ in M. The complexity of each of these problems is proven. Overall this extra information can lead to tighter specifications and more guidance for finding errors.
Similar content being viewed by others
References
Armoni R, Fix L, Flaisher A, Grumberg O, Piterman N, Tiemeyer A, Vardi MY (2003) Enhanced vacuity detection in linear temporal logic. In: Proceedings of 15th international conference in computer aided verification (CAV). Lecture notes in computer science, vol 2725. Springer, Berlin, pp 368–380
Beaty D, Bryant R (1994) Formally verifying a microprocessor using a simulation methodology. In: Proc. 31st design automation conference. IEEE Comput Soc, Los Alamitos, pp 596–602
Beer I, Ben-David S, Eisner C, Rodeh Y (2001) Efficient detection of vacuity in temporal model checking. Form Methods Syst Des 18(2):141–162
Ben-David S, Fisman D, Ruah S (2007) Temporal antecedent failure: Refining vacuity. In: CONCUR, pp 492–506
Bustan D, Flaisher A, Grumberg O, Kupferman O, Vardi MY (2005) Regular vacuity. In: 13th advanced research working conference on correct hardware design and verification methods. Lecture notes in computer science, vol 3725. Springer, Berlin, pp 191–206
Cimatti A, Clarke E, Giunchiglia F, Roveri M (1998) NuSMV: a new symbolic model checker. Int J Softw Tools Technol Transf (STTT)
Clarke EM, Draghicescu IA (1988) Expressibility results for linear-time and branching-time logics. In: de Bakker JW, de Roever WP, Rozenberg G (eds) Proc. workshop on linear time, branching time, and partial order in logics and models for concurrency. Lecture notes in computer science, vol 354. Springer, Berlin, pp 428–437
Clarke EM, Emerson EA (1981) Design and synthesis of synchronization skeletons using branching time temporal logic. In: Proc. workshop on logic of programs. Lecture notes in computer science, vol 131. Springer, Berlin, pp 52–71
Chechik M, Gurfinkel A (2004) Extending extended vacuity. In: Proceedings of FMCAD. Lecture notes in computer science, vol 3312. Springer, Berlin
Chechik M, Gurfinkel A (2004) How vacuous is vacuous? In: Proceedings of TACAS. Lecture notes in computer science, vol 2988. Springer, Berlin, pp 451–466
Chechik M, Gheorghiu M, Gurfinkel A (2007) Finding environment guarantees. In: FASE, pp 352–367
Clarke EM, Grumberg O, McMillan KL, Zhao X (1995) Efficient generation of counterexamples and witnesses in symbolic model checking. In: Proc. 32nd design automation conference. IEEE Comput Soc, Los Alamitos, pp 427–432
Clarke EM, Grumberg O, Peled D (1999) Model checking. MIT Press, Cambridge
Chockler H, Halpern JY (2004) Responsibility and blame: a structural-model approach. J Artif Intell Res (JAIR) 22:93–115
Chockler H, Kupferman O, Vardi MY (2001) Coverage metrics for temporal logic model checking. In: Tools and algorithms for the construction and analysis of systems. Lecture notes in computer science, vol 2031. Springer, Berlin, pp 528–542
Chockler H, Kupferman O, Vardi MY (2003) Coverage metrics for formal verification. In: Correct hardware design and verification methods (CHARME). Lecture notes in computer science, vol 2860. Springer, Berlin, pp 111–125
Cimatti A, Roveri M, Tonetta S (2007) Syntactic optimizations for psl verification. In: TACAS, pp 505–518
Chockler H, Strichman O (2007) Easier and more informative vacuity checks. In: Proceedings of fifth ACM-IEEE international conference on formal methods and models for co-design, pp 189–198, Nice, France, May 2007
Downey RG, Fellows MR (1995) Fixed-parameter tractability and completeness ii: On completeness for w[1]. Theor Comput Sci 141(1, 2):109–131
Dong Y, Sarna-Starosta B, Ramakrishnan CR, Smolka SA (2002) Vacuity checking in the modal mu-calculus. In: Proceedings of 9th international conference on algebraic methodology and software technology (AMAST). Springer, Berlin, pp 147–162
Eisner C, Fisman D (2006) A practical introduction to PSL. Springer, Berlin
Emerson EA (1990) Temporal and modal logic. In: Van Leeuwen J (ed) Handbook of theoretical computer science, vol B. Elsevier/MIT Press, Amsterdam, pp 997–1072, Chap 16
Gupta A (2006) Learning abstractions for model checking. PhD thesis, Carnegie Mellon University, A CMU technical report: CMU-CS-06-131
Hoskote Y, Kam T, Ho P-H, Zhao X (1999) Coverage estimation for symbolic model checking. In: Proc. 36th design automation conference, pp 300–305
Simmonds J, Davies J, Gurfinkel A (2006) VaqTree: Efficient vacuity detection for bounded model checking. In: Proceedings of 14th international symposium on formal methods (FM), Hamilton, Canada, August 2006. Lecture notes in computer science, vol 4085. Springer, Berlin. Tool and Posters track
Johnson DS (1974) Approximation algorithms for combinatorial problems. J Comput Syst Sci 9:256–278
Katz S, Geist D, Grumberg O (1999) “Have I written enough properties?” A method of comparison between specification and implementation. In: 10th advanced research working conference on correct hardware design and verification methods. Lecture notes in computer science, vol 1703. Springer, Berlin, pp 280–297
Krentel MW (1988) The complexity of optimization problems. JCSS 36:490–509
Kupferman O (2006) Sanity checks in formal verification. In: Proc. 17th international conference on concurrency theory. Lecture notes in computer science, vol 4137. Springer, Berlin, pp 37–51
Kupferman O, Vardi MY (2003) Vacuity detection in temporal model checking. J Softw Tools Technol Transf 4(2):224–233
Lichtenstein O, Pnueli A (1985) Checking that finite state concurrent programs satisfy their linear specification. In Proc. 12th ACM symp. on principles of programming languages, pp 97–107, New Orleans, January 1985
Namjoshi KS (2004) An efficiently checkable, proof-based formulation of vacuity in model checking. In: Proc. of CAV. Lecture notes in computer science. Springer, Berlin, pp 57–69
Papadimitriou CH (1984) The complexity of unique solutions. JACM 31:492–500
Pratt VR (1978) A practical decision method for propositional dynamic logic: Preliminary report. In: STOC, pp 326–337
Prosyd: Property-based system design (2005). http://www.prosyd.org/
Purandare M, Somenzi F (2002) Vacuum cleaning ctl formulae. In: Proc. 14th conference on computer aided verification. Lecture notes in computer science. Springer, Berlin
Queille JP, Sifakis J (1981) Specification and verification of concurrent systems in Cesar. In: Proc. 5th international symp. on programming. Lecture notes in computer science, vol 137. Springer, Berlin, pp 337–351
Sistla AP, Clarke EM (1985) The complexity of propositional linear temporal logic. JACM 32:733–749
Tasiran S, Keutzer K (2001) Coverage metrics for functional validation of hardware designs. IEEE Des Test Comput 18(4):36–45
Vardi MY, Wolper P (1994) Reasoning about infinite computations. Inf Comput 115(1):1–37
Author information
Authors and Affiliations
Corresponding author
Additional information
A preliminary version of this article was published in the proceedings of MEMOCODE 2007 [18].
Rights and permissions
About this article
Cite this article
Chockler, H., Strichman, O. Before and after vacuity. Form Methods Syst Des 34, 37–58 (2009). https://doi.org/10.1007/s10703-008-0060-y
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10703-008-0060-y