Polymorphic predicate abstraction
- 1 March 2005
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 27 (2) , 314-343
- https://doi.org/10.1145/1057387.1057391
Abstract
Predicate abstraction is a technique for creating abstract models of software that are amenable to model checking algorithms. We show how polymorphism, a well-known concept in programming languages and program analysis, can be incorporated in a predicate abstraction algorithm for C programs. The use of polymorphism in predicates, via the introduction of symbolic names for values, allows us to model the effect of a procedure independent of its calling contexts. Therefore, we can safely and precisely abstract a procedure once and then reuse this abstraction across multiple calls and multiple applications containing the procedure. Polymorphism also enables us to handle programs that need to be analyzed in an open environment, for all possible callers. We have proved that our algorithm is sound and have implemented it in the C2BP tool as part of the SLAM software model checking toolkit.Keywords
This publication has 15 references indexed in Scilit:
- A theory of type polymorphism in programmingPublished by Elsevier ,2003
- Boolean and Cartesian Abstraction for Model Checking C ProgramsPublished by Springer Nature ,2001
- Bebop: A Symbolic Model Checker for Boolean ProgramsPublished by Springer Nature ,2000
- Counterexample-Guided Abstraction RefinementPublished by Springer Nature ,2000
- Polymorphic versus Monomorphic Flow-Insensitive Points-To Analysis for CPublished by Springer Nature ,2000
- Experience with Predicate AbstractionPublished by Springer Nature ,1999
- The model checker SPINIEEE Transactions on Software Engineering, 1997
- Construction of abstract state graphs with PVSPublished by Springer Nature ,1997
- A safe approximate algorithm for interprocedural aliasingACM SIGPLAN Notices, 1992
- On understanding types, data abstraction, and polymorphismACM Computing Surveys, 1985