Experience of improving the blast static verification tool

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

[1]  Vladimir A. Zakharov,et al.  How to Cook an Automated System for Linux Driver Verification , 2008 .

[2]  William Craig,et al.  Linear reasoning. A new form of the Herbrand-Gentzen theorem , 1957, Journal of Symbolic Logic.

[3]  Thomas Ball,et al.  SLAM2: Static driver verification with under 4% false alarms , 2010, Formal Methods in Computer Aided Design.

[4]  Moonzoo Kim,et al.  A Comparative Study of Software Model Checkers as Unit Testing Tools: An Industrial Case Study , 2011, IEEE Transactions on Software Engineering.

[5]  Thomas A. Henzinger,et al.  The software model checker B last : Applications to software engineering , 2007 .

[6]  Daniel Kroening,et al.  Decision Procedures - An Algorithmic Point of View , 2008, Texts in Theoretical Computer Science. An EATCS Series.

[7]  Thomas A. Henzinger,et al.  Lazy Shape Analysis , 2006, CAV.

[8]  Thomas A. Henzinger,et al.  Configurable Software Verification: Concretizing the Convergence of Model Checking and Program Analysis , 2007, CAV.

[9]  Andrey Rybalchenko,et al.  Distributed and Predictable Software Model Checking , 2011, VMCAI.

[10]  Andreas Podelski,et al.  Boolean and Cartesian Abstraction for Model Checking C Programs , 2001, TACAS.

[11]  Edmund M. Clarke,et al.  Counterexample-Guided Abstraction Refinement , 2000, CAV.

[12]  Thomas A. Henzinger,et al.  Abstractions from proofs , 2004, POPL.

[13]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

[14]  Kenneth L. McMillan An interpolating theorem prover , 2005, Theor. Comput. Sci..

[15]  Lars Ole Andersen,et al.  Program Analysis and Specialization for the C Programming Language , 2005 .

[16]  Rupak Majumdar,et al.  CSIsat: Interpolation for LA+EUF , 2008, CAV.

[17]  George C. Necula,et al.  CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs , 2002, CC.

[18]  Dirk Beyer,et al.  Software model checking via large-block encoding , 2009, 2009 Formal Methods in Computer-Aided Design.

[19]  Ondrej Lhoták,et al.  Points-to analysis using BDDs , 2003, PLDI '03.

[20]  David Detlefs,et al.  Simplify: a theorem prover for program checking , 2005, JACM.