Polymorphic predicate abstraction

21Citations
Citations of this article
29Readers
Mendeley users who have this article in their library.

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. © 2005 ACM.

Cite

CITATION STYLE

APA

Ball, T., Millstein, T., & Rajamani, S. K. (2005). Polymorphic predicate abstraction. ACM Transactions on Programming Languages and Systems, 27(2), 314–343. https://doi.org/10.1145/1057387.1057391

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free