Computer-aided verification of coordinating processes: the automata-theoretic approach
Computer-aided verification of coordinating processes: the automata-theoretic approach
DAC '98 Proceedings of the 35th annual Design Automation Conference
High-level variable selection for partial-scan implementation
Proceedings of the 1998 IEEE/ACM international conference on Computer-aided design
Modular verification of software components in C
Proceedings of the 25th International Conference on Software Engineering
Testability Analysis for Software Components
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Disjunctive image computation for embedded software verification
Proceedings of the conference on Design, automation and test in Europe: Proceedings
The software model checker Blast: Applications to software engineering
International Journal on Software Tools for Technology Transfer (STTT)
Deciding bit-vector arithmetic with abstraction
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Structural abstraction of software verification conditions
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Cogent: accurate theorem proving for program verification
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Proceedings of the Conference on Design, Automation and Test in Europe
Hi-index | 0.00 |
We present a new abstraction approach based on the concept of the under- and over-approximation to efficiently solve bit-vector formulae generated from software verification instances, which include intensive control structures. Our proposed approach applies two common testability metrics: controllability metric (CM) and observability metric (OM) for guiding the abstraction refinement procedure. We implement the under-approximation by enforcing constant constraints on a small set of single-bit variables that control the branch selection of some ITE nodes. Subsequently, each constructed under-approximate model includes only a subset of paths in the formula. We use CM and OM to build such models so that a counterexample can be obtained with little effort. If the under-approximate model is unsatisfiable, an over-approximate abstraction is obtained by refining along the paths included in the model. This is conducted by learning the relevant formula constraints using the UNSAT proof. So the verification can be conducted incrementally due to the path(s) based partition feature of our approach. We also use OM as a guide to heuristically and efficiently restore additional verification-relevant constraints during the iteration. The experimental results show a significant reduction of the solving time compared to state-of-the-art solvers for bit-vector arithmetic.