Incremental formal verification of hardware

Formal verification is a reliable and fully automatic technique for proving correctness of hardware designs. Its main drawback is the high complexity of verification, and this problem is especially acute in regression verification, where a new version of the design, differing from the previous version very slightly, is verified with respect to the same or a very similar property. In this paper, we present an efficient algorithm for incremental verification, based on the ic3 algorithm, that uses stored information from the previous verification runs in order to improve the complexity of re-verifying similar designs on similar properties. Our algorithm applies both to the positive and to the negative results of verification (that is, both when there is a proof of correctness and when there is a counterexample). The algorithm is implemented and experimental results show improvement of up to two orders of magnitude in running time, compared to full verification.

[1]  Robert K. Brayton,et al.  Efficient implementation of property directed reachability , 2011, 2011 Formal Methods in Computer-Aided Design (FMCAD).

[2]  Robert K. Brayton,et al.  Automated Extraction of Inductive Invariants to Aid Model Checking , 2007, Formal Methods in Computer Aided Design (FMCAD'07).

[3]  Thomas Wilke,et al.  Program Complexity of Dynamic LTL Model Checking , 2003, CSL.

[4]  Edmund M. Clarke,et al.  Efficient generation of counterexamples and witnesses in symbolic model checking , 1995, DAC '95.

[5]  Orna Kupferman,et al.  Coverage Metrics for Temporal Logic Model Checking , 2001, TACAS.

[6]  Jason Baumgartner,et al.  Scalable conditional equivalence checking: An automated invariant-generation based approach , 2009, 2009 Formal Methods in Computer-Aided Design.

[7]  Gianpiero Cabodi,et al.  Strengthening Model Checking Techniques With Inductive Invariants , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[8]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[9]  Yassine Lakhnech,et al.  Incremental Verification by Abstraction , 2001, TACAS.

[10]  Gianpiero Cabodi,et al.  Speeding up model checking by exploiting explicit and hidden verification constraints , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[11]  Timothy Kam,et al.  Coverage estimation for symbolic model checking , 1999, DAC '99.

[12]  Robert K. Brayton,et al.  Incremental methods for FSM traversal , 1995, Proceedings of ICCD '95 International Conference on Computer Design. VLSI in Computers and Processors.

[13]  Aaron R. Bradley,et al.  SAT-Based Model Checking without Unrolling , 2011, VMCAI.

[14]  Daniel Kroening,et al.  Coverage in interpolation-based model checking , 2010, Design Automation Conference.

[15]  Niklas Sörensson,et al.  Temporal induction by incremental SAT solving , 2003, BMC@CAV.

[16]  Helmut Veith,et al.  Counterexample-guided abstraction refinement for symbolic model checking , 2003, JACM.

[17]  Orna Kupferman,et al.  Coverage metrics for formal verification , 2004, International Journal on Software Tools for Technology Transfer.

[18]  Sanjit A. Seshia,et al.  A Theory of Mutations with Applications to Vacuity, Coverage, and Fault Tolerance , 2008, 2008 Formal Methods in Computer-Aided Design.

[19]  Alan Mishchenko,et al.  A single-instance incremental SAT formulation of proof- and counterexample-based abstraction , 2010, Formal Methods in Computer Aided Design.