Refining Approximations in Software Predicate Abstraction

Predicate abstraction is an automatic technique that can be used to find abstract models of large or infinite-state systems. In tools like Slam, where predicate abstraction is applied to software model checking, a number of heuristic approximations must be used to improve the performance of computing an abstraction from a set of predicates. For this reason, Slam can sometimes reach a state in which it is not able to further refine the abstraction.

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

[2]  Manfred Broy,et al.  Theoretical Foundations of Programming Methodology , 1982 .

[3]  Sriram K. Rajamani,et al.  Bebop: a path-sensitive interprocedural dataflow engine , 2001, PASTE '01.

[4]  Tomás E. Uribe,et al.  Generating Finite-State Abstractions of Reactive Systems Using Decision Procedures , 1998, CAV.

[5]  Alon Itai,et al.  Timing Verification by Successive Approximation , 1992, CAV.

[6]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[7]  George J. Milne,et al.  Correct Hardware Design and Verification Methods , 2003, Lecture Notes in Computer Science.

[8]  Sriram K. Rajamani,et al.  Automatically validating temporal safety properties of interfaces , 2001, SPIN '01.

[9]  Shuvendu K. Lahiri,et al.  A Symbolic Approach to Predicate Abstraction , 2003, CAV.

[10]  David L. Dill,et al.  Counter-Example Based Predicate Discovery in Predicate Abstraction , 2002, FMCAD.

[11]  Xinming Ou,et al.  Theorem Proving Using Lazy Proof Explication , 2003, CAV.

[12]  David L. Dill,et al.  Successive approximation of abstract transition relations , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[13]  Alberto L. Sangiovanni-Vincentelli,et al.  An Iterative Approach to Language Containment , 1993, CAV.

[14]  Sriram K. Rajamani,et al.  Bebop: A Symbolic Model Checker for Boolean Programs , 2000, SPIN.

[15]  Dong Wang,et al.  Making Predicate Abstraction Efficient: How to Eliminate Redundant Predicates , 2003, CAV.

[16]  David L. Dill,et al.  CVC: A Cooperating Validity Checker , 2002, CAV.

[17]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[18]  Thomas A. Henzinger,et al.  Thread-Modular Abstraction Refinement , 2003, CAV.

[19]  Joseph M. Morris A General Axiom of Assignment , 1982 .

[20]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[21]  Alex Groce,et al.  Predicate Abstraction with Minimum Predicates , 2003, CHARME.

[22]  Pierre Wolper,et al.  Iterating transducers in the large , 2003 .

[23]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[24]  Andreas Podelski,et al.  Boolean and Cartesian abstraction for model checking C programs , 2001, International Journal on Software Tools for Technology Transfer.

[25]  Klaus Havelund,et al.  SPIN Model Checking and Software Verification , 2000, Lecture Notes in Computer Science.

[26]  Sriram K. Rajamani,et al.  Generating Abstract Explanations of Spurious Counterexamples in C Programs , 2002 .

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

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