RacerX: effective, static detection of race conditions and deadlocks
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Summarizing procedures in concurrent programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compositional dynamic test generation
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The software model checker Blast: Applications to software engineering
International Journal on Software Tools for Technology Transfer (STTT)
Calysto: scalable and precise extended static checking
Proceedings of the 30th international conference on Software engineering
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Loopfrog: A Static Analyzer for ANSI-C Programs
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
SAT-based summarization for Boolean programs
Proceedings of the 14th international SPIN conference on Model checking software
CPACHECKER: a tool for configurable software verification
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Lazy abstraction with interpolants
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Applications of craig interpolants in model checking
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
SATABS: SAT-Based predicate abstraction for ANSI-C
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Lazy annotation for program testing and verification
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Leveraging interpolant strength in model checking
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
FunFrog: bounded model checking with interpolation-based function summarization
ATVA'12 Proceedings of the 10th international conference on Automated Technology for Verification and Analysis
Function summaries in software upgrade checking
HVC'11 Proceedings of the 7th international Haifa Verification conference on Hardware and Software: verification and testing
eVolCheck: incremental upgrade checker for C
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Disjunctive interpolants for horn-clause verification
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Hi-index | 0.00 |
During model checking of software against various specifications, it is often the case that the same parts of the program have to be modeled/verified multiple times. To reduce the overall verification effort, this paper proposes a new technique that extracts function summaries after the initial successful verification run, and then uses them for more efficient subsequent analysis of the other specifications. Function summaries are computed as over-approximations using Craig interpolation, a mechanism which is well-known to preserve the most relevant information, and thus tend to be a good substitute for the functions that were examined in the previous verification runs. In our summarization-based verification approach, the spurious behaviors introduced as a side effect of the over-approximation, are ruled out automatically by means of the counter-example guided refinement of the function summaries. We implemented interpolation-based summarization in our FunFrog tool, and compared it with several state-of-the-art software model checking tools. Our experiments demonstrate the feasibility of the new technique and confirm its advantages on the large programs.