Skip to main content
Log in

Before and after vacuity

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. 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

    Google Scholar 

  2. 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

    Google Scholar 

  3. 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

    Article  MATH  Google Scholar 

  4. Ben-David S, Fisman D, Ruah S (2007) Temporal antecedent failure: Refining vacuity. In: CONCUR, pp 492–506

  5. 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

    Chapter  Google Scholar 

  6. Cimatti A, Clarke E, Giunchiglia F, Roveri M (1998) NuSMV: a new symbolic model checker. Int J Softw Tools Technol Transf (STTT)

  7. 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

    Chapter  Google Scholar 

  8. 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

    Chapter  Google Scholar 

  9. Chechik M, Gurfinkel A (2004) Extending extended vacuity. In: Proceedings of FMCAD. Lecture notes in computer science, vol 3312. Springer, Berlin

    Google Scholar 

  10. 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

    Google Scholar 

  11. Chechik M, Gheorghiu M, Gurfinkel A (2007) Finding environment guarantees. In: FASE, pp 352–367

  12. 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

    Chapter  Google Scholar 

  13. Clarke EM, Grumberg O, Peled D (1999) Model checking. MIT Press, Cambridge

    Google Scholar 

  14. Chockler H, Halpern JY (2004) Responsibility and blame: a structural-model approach. J Artif Intell Res (JAIR) 22:93–115

    MATH  MathSciNet  Google Scholar 

  15. 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

    Chapter  Google Scholar 

  16. 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

    Google Scholar 

  17. Cimatti A, Roveri M, Tonetta S (2007) Syntactic optimizations for psl verification. In: TACAS, pp 505–518

  18. 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

  19. Downey RG, Fellows MR (1995) Fixed-parameter tractability and completeness ii: On completeness for w[1]. Theor Comput Sci 141(1, 2):109–131

    Article  MATH  MathSciNet  Google Scholar 

  20. 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

    Chapter  Google Scholar 

  21. Eisner C, Fisman D (2006) A practical introduction to PSL. Springer, Berlin

    Google Scholar 

  22. 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

    Google Scholar 

  23. Gupta A (2006) Learning abstractions for model checking. PhD thesis, Carnegie Mellon University, A CMU technical report: CMU-CS-06-131

  24. 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

  25. 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

    Google Scholar 

  26. Johnson DS (1974) Approximation algorithms for combinatorial problems. J Comput Syst Sci 9:256–278

    Article  MATH  Google Scholar 

  27. 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

    Google Scholar 

  28. Krentel MW (1988) The complexity of optimization problems. JCSS 36:490–509

    MATH  MathSciNet  Google Scholar 

  29. 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

    Google Scholar 

  30. Kupferman O, Vardi MY (2003) Vacuity detection in temporal model checking. J Softw Tools Technol Transf 4(2):224–233

    Article  Google Scholar 

  31. 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

  32. 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

    Google Scholar 

  33. Papadimitriou CH (1984) The complexity of unique solutions. JACM 31:492–500

    Article  Google Scholar 

  34. Pratt VR (1978) A practical decision method for propositional dynamic logic: Preliminary report. In: STOC, pp 326–337

  35. Prosyd: Property-based system design (2005). http://www.prosyd.org/

  36. Purandare M, Somenzi F (2002) Vacuum cleaning ctl formulae. In: Proc. 14th conference on computer aided verification. Lecture notes in computer science. Springer, Berlin

    Google Scholar 

  37. 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

    Google Scholar 

  38. Sistla AP, Clarke EM (1985) The complexity of propositional linear temporal logic. JACM 32:733–749

    Article  MATH  MathSciNet  Google Scholar 

  39. Tasiran S, Keutzer K (2001) Coverage metrics for functional validation of hardware designs. IEEE Des Test Comput 18(4):36–45

    Article  Google Scholar 

  40. Vardi MY, Wolper P (1994) Reasoning about infinite computations. Inf Comput 115(1):1–37

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ofer Strichman.

Additional information

A preliminary version of this article was published in the proceedings of MEMOCODE 2007 [18].

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-008-0060-y

Keywords

Navigation