Abstract interpretation and application to logic programs
Journal of Logic Programming
Symbolic model checking: 1020 states and beyond
Information and Computation - Special issue: Selections from 1990 IEEE symposium on logic in computer science
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Science of Computer Programming
The pointer assertion logic engine
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Automatically validating temporal safety properties of interfaces
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Bebop: A Symbolic Model Checker for Boolean Programs
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
ACM Transactions on Software Engineering and Methodology (TOSEM)
Techniques for program verification
Techniques for program verification
Abstract interpretation with alien expressions and heap structures
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Data structure specifications via local equality axioms
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
Falsifying Safety Properties Through Games on Over-approximating Models
Electronic Notes in Theoretical Computer Science (ENTCS)
Hector: software model checking with cooperating analysis plugins
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Hi-index | 0.00 |
In this paper we propose a modular framework for program analysis, where multiple program analysis tools are combined in order to exploit the particular advantages of each. This allows for ''plugging together'' such tools as required by each verification task and makes it easy to integrate new analyses. Our framework automates the sharing of information between plugins using a first order logic with transitive closure, in a way inspired by the open product of Cortesi et al. We show how to use our framework for static assertion checking by adapting the interprocedural dataflow analysis of Ball and Rajamani. We describe our implementation of a prototype checker for a subset of Java which combines predicate abstraction, 3-valued shape analysis and a decidable pointer analysis. We demonstrate through an example the increase in precision that our approach can provide.