TY - JOUR
T1 - Property-directed inference of universal invariants or proving their absence
AU - Karbyshev, Aleksandr
AU - Bjørner, Nikolaj
AU - Itzhaky, Shachar
AU - Rinetzky, Noam
AU - Shoham, Sharon
N1 - Publisher Copyright:
© 2017 ACM.
PY - 2017/3
Y1 - 2017/3
N2 - We present Universal Property Directed Reachability (PDR∀), a property-directed semi-algorithm for automatic inference of invariants in a universal fragment of first-order logic. PDR∀ is an extension of Bradley's PDR/IC3 algorithm for inference of propositional invariants. PDR∀ terminates when it discovers a concrete counterexample, infers an inductive universal invariant strong enough to establish the desired safety property, or finds a proof that such an invariant does not exist. PDR∀ is not guaranteed to terminate. However, we prove that under certain conditions, for example, when reasoning about programs manipulating singly linked lists, it does. We implemented an analyzer based on PDR∀ and applied it to a collection of list-manipulating programs. Our analyzer was able to automatically infer universal invariants strong enough to establish memory safety and certain functional correctness properties, show the absence of such invariants for certain natural programs and specifications, and detect bugs. All this without the need for user-supplied abstraction predicates.
AB - We present Universal Property Directed Reachability (PDR∀), a property-directed semi-algorithm for automatic inference of invariants in a universal fragment of first-order logic. PDR∀ is an extension of Bradley's PDR/IC3 algorithm for inference of propositional invariants. PDR∀ terminates when it discovers a concrete counterexample, infers an inductive universal invariant strong enough to establish the desired safety property, or finds a proof that such an invariant does not exist. PDR∀ is not guaranteed to terminate. However, we prove that under certain conditions, for example, when reasoning about programs manipulating singly linked lists, it does. We implemented an analyzer based on PDR∀ and applied it to a collection of list-manipulating programs. Our analyzer was able to automatically infer universal invariants strong enough to establish memory safety and certain functional correctness properties, show the absence of such invariants for certain natural programs and specifications, and detect bugs. All this without the need for user-supplied abstraction predicates.
KW - EPR
KW - IC3
KW - PDR
KW - Property-directed reachability
KW - Universal invariants
UR - http://www.scopus.com/inward/record.url?scp=85017182110&partnerID=8YFLogxK
U2 - 10.1145/3022187
DO - 10.1145/3022187
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???
AN - SCOPUS:85017182110
SN - 0004-5411
VL - 64
JO - Journal of the ACM
JF - Journal of the ACM
IS - 1
M1 - 7
ER -