Skip to main content
Log in

Experience of improving the blast static verification tool

  • Published:
Programming and Computer Software Aims and scope Submit manuscript

Abstract

The BLAST static verification tool is one of the open-source verifiers of software written in C. The paper describes principles of BLAST implementation, the limitations revealed in the course of its practical use in the verification of the Linux operating system drivers, and an attempt to improve BLAST in the framework of the Linux Driver Verification (LDV) project [3].

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.

Similar content being viewed by others

References

  1. Clarke, E.M., Grumberg, O., Jha, S., Lu, Y., and Veith, H., Counterexample-Guided Abstraction Refinement, Proc. of the 12th Conf. on Computer-Aided Verification (CAV), Chicago, 2000.

  2. Henzinger, T., Jhala, R., Majmudar, R., and Sutre, G., Lazy Abstraction, Proc. of the 29th Annual Symp. on Principles of Programming Languages, ACM, 2002, pp. 58–70.

  3. Khoroshilov, A., Mutilin, V., Shcherbina, V., Starikov, O., Vinogradov, S., and Zakharov, V., How to Cook an Automated System for Linux Driver Verification, Proc. of the 2nd Spring Young Researchers’ Colloquium on Software Engineering, 2008, pp. 11–14.

  4. Beyer, D., Henzinger, T., Jhala, R., and Majumdar, R., The Software Model Checker BLAST: Applications to Software Engineering, Int. J. Software Tools Technol. Transfer, 2007, vol. 9, nos. 5–6, pp. 505–525.

    Article  Google Scholar 

  5. Henzinger, T., Jhala, R., Majumdar, R., and McMillan, K., Abstractions from Proofs, Proc. of the 31st ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, ACM, 2004, pp. 232–244.

  6. Ball, T., Podelski, A., and S. Rajamani, Boolean and Cartesian Abstractions for Model Checking of C Programs, Proc. of TACAS, 2001, vol. 2031, pp. 268–285.

    Google Scholar 

  7. Necula, G., McPeak, S., Rahul, S., and Weimer, W., CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs, Proc. of the Int. Conf. on Compiler Construction, 2002, vol. 2304, pp. 213–228.

    Article  Google Scholar 

  8. Kim, M., Kim, Y., and Kim, H., Comparative Study of Software Model Checkers as Unit Testing Tools: An Industrial Case Study, IEEE Trans. Software Eng., 2011, vol. 37, no. 2, pp. 146–160.

    Article  Google Scholar 

  9. Beyer, D., Cimatti, A., Griggio, A., Keremoglu, M., and Sebastiani, R., Software Model Checking via Large-Block Encoding, Proc. of the 9th Int. Conf. on Formal Methods in Computer-Aided Design (FMCAD), Austin, November 15–18, 2009, Los Alamitos: IEEE Comput. Society, 2009, pp. 25–32.

    Chapter  Google Scholar 

  10. O. Barrett, C. and Tinelli, C., CVC3, Proc. of the 19th Int. Conf. on Computer Aided Verification (CAV-2007), 2007, pp. 298–302.

  11. Ball, T., Bounimova, E., Kumar, R., and Levin, V., Static Driver Verification with Under 4% False Alarms, Proc. of the Conf. Formal Methods in Computer Aided Design (FMCAD), Lugano, 2010, pp. 35–42.

  12. Beyer, D., Zufferey, D., and Majumdar, R., CSIsat: Interpolation for LA+EUF, Proc. of the 20th Int. Conf. on Computer Aided Verification (CAV-2008), pp. 304–308.

  13. Lopes, N. and Rybalchenko, A., Distributed and Predictable Software Model Checking, Proc. of VMCAI-2011, 2011, pp. 340–355.

  14. Beyer, D., Henzinger, T., and Theoduloz, G., Lazy Shape Analysis, Proc. of the 18th Int. Conf. on Computer Aided Verification (CAV-2006), 2006, pp. 532–546.

  15. Andersen, L.O., Program Analysis and Specialization for the C Programming Language, Ph.D. Thesis, Univ. of Copenhagen, 1994.

  16. Berndl, M. Lhotak, O., Qian, F., Hendren, L., and Umanee, N., Points-to Analysis using BDDs, Proc. of the ACM SIGPLAN 2003 Conf. on Programming Language Design and Implementation, San Diego, 2003.

  17. http://forge.ispras.ru/projects/blast

  18. Craig, W., Linear Reasoning. A New Form of the Herbrand-Gentzen Theorem, J. Symb. Log., 1957, vol. 22, no. 3, pp. 250–268.

    Article  MathSciNet  Google Scholar 

  19. McMillan, K.L., An Interpolating Theorem Prover, Theor. Comput. Sci., vol. 345, no. 1., pp. 01–121. doi 10.1016/j.tcs.2005.07.003

  20. http://caml.inria.fr/ocaml/

  21. Kroening, D. and Strichman, O., Decision Procedures: An Algorithmic Point of View, Springer, 2008.

  22. http://www.smtlib.org/

  23. Detlefs, D., Nelson, G., and Saxe, J.B., Simplify: A Theorem Prover for Program Checking, J. ACM, 2005, vol. 52, no. 3, pp. 365–473.

    Article  MathSciNet  Google Scholar 

  24. http://www.kenmcmil.com/foci.html

  25. Beyer, D., Henzinger, T.A., and Theoduloz, G., Configurable Software Verification: Concretizing the Convergence of Model Checking and Program Analysis, Proc. of the 19th Int. Conf. on Computer Aided Verification (CAV-2007), 2007, pp. 504–518.

  26. http://linuxtesting.org/results/ldv

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to P. E. Shved.

Additional information

Original Russian Text © P.E. Shved, V.S. Mutilin, M.U. Mandrykin, 2012, published in Programmirovanie, 2012, Vol. 38, No. 3.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Shved, P.E., Mutilin, V.S. & Mandrykin, M.U. Experience of improving the blast static verification tool. Program Comput Soft 38, 134–142 (2012). https://doi.org/10.1134/S0361768812030061

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1134/S0361768812030061

Keywords

Navigation