Skip to main content

Software Verification with BLAST

  • Conference paper
  • First Online:
Model Checking Software (SPIN 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2648))

Included in the following conference series:

Abstract

Blast (the Berkeley Lazy Abstraction Software verification Tool) is a verification system for checking safety properties of C programs using automatic property-driven construction and model checking of software abstractions. Blast implements an abstract-model check-refine loop to check for reachability of a specified label in the program. The abstract model is built on the fly using predicate abstraction. This model is then checked for reachability. If there is no (abstract) path to the specified error label, Blast reports that the system is safe and produces a succinct proof. Otherwise, it checks if the path is feasible using symbolic execution of the program. If the path is feasible, Blast outputs the path as an error trace, otherwise, it uses the infeasibility of the path to refine the abstract model. Blast short-circuits the loop from abstraction to verification to refinement, integrating the three steps tightly through “lazy abstraction” [5]. This integration can offer significant advantages in performance by avoiding the repetition of work from one iteration of the loop to the next.

This work was supported in part by the NSF grants CCR-0085949 and CCR-9988172, the DARPA PCES grant F33615-00-C-1693, the MARCO GSRC grant 98-DT-660, and a Microsoft Research Fellowship.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. T. Ball, R. Majumdar, T. Millstein, and S. K. Rajamani. Automatic predicate abstraction of C programs. In PLDI 01: Programming Language Design and Implementation, pages 203–213. ACM, 2001.

    Google Scholar 

  2. S. Das, D. L. Dill, and S. Park. Experience with predicate abstraction. In CAV 99: Computer-Aided Verification, LNCS 1633, pages 160–171. Springer-Verlag, 1999.

    Chapter  Google Scholar 

  3. D. Detlefs, G. Nelson, and J. Saxe. Simplify theorem prover.

    Google Scholar 

  4. T. A. Henzinger, R. Jhala, R. Majumdar, G. C. Necula, G. Sutre, and W. Weimer. Temporal-safety proofs for systems code. In CAV 02: Computer-Aided Verification, LNCS 2404, pages 526–538. Springer-Verlag, 2002.

    Chapter  Google Scholar 

  5. T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In POPL 02: Principles of Programming Languages, pages 58–70. ACM, 2002.

    Google Scholar 

  6. G. C. Necula. Proof-carrying code. In POPL 97: Principles of Programming Languages, pages 106–119. ACM, 1997.

    Google Scholar 

  7. G. C. Necula, S. McPeak, S. P. Rahul, and W. Weimer. CIL: Intermediate language and tools for analysis and transformation of C programs. In CC 02: Compiler Construction, LNCS 2304, pages 213–228. Springer-Verlag, 2002.

    Chapter  Google Scholar 

  8. A. Stump, C. Barrett, and D. L. Dill. CVC: A cooperating validity checker. In CAV 02: Computer-Aided Verification, LNCS 2404, pages 500–504. Springer-Verlag, 2002.

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G. (2003). Software Verification with BLAST. In: Ball, T., Rajamani, S.K. (eds) Model Checking Software. SPIN 2003. Lecture Notes in Computer Science, vol 2648. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44829-2_17

Download citation

  • DOI: https://doi.org/10.1007/3-540-44829-2_17

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40117-9

  • Online ISBN: 978-3-540-44829-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics