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].
Similar content being viewed by others
References
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.
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.
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.
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.
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.
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.
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.
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.
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.
O. Barrett, C. and Tinelli, C., CVC3, Proc. of the 19th Int. Conf. on Computer Aided Verification (CAV-2007), 2007, pp. 298–302.
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.
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.
Lopes, N. and Rybalchenko, A., Distributed and Predictable Software Model Checking, Proc. of VMCAI-2011, 2011, pp. 340–355.
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.
Andersen, L.O., Program Analysis and Specialization for the C Programming Language, Ph.D. Thesis, Univ. of Copenhagen, 1994.
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.
Craig, W., Linear Reasoning. A New Form of the Herbrand-Gentzen Theorem, J. Symb. Log., 1957, vol. 22, no. 3, pp. 250–268.
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
Kroening, D. and Strichman, O., Decision Procedures: An Algorithmic Point of View, Springer, 2008.
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.
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.
Author information
Authors and Affiliations
Corresponding author
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
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
Received:
Published:
Issue Date:
DOI: https://doi.org/10.1134/S0361768812030061