一句话:将命题PDR重构为单调理论中的抽象解释,并用最佳变换器刻画其不变式推断。
不变式推断是形式验证的核心难题;抽象解释虽提供丰富框架,但社区通常视性质导向可达性(PDR)与其无关。本文证明命题PDR可表述为逻辑域上的抽象解释。作者定义Λ-PDR:强化frame时预先使用反例的所有泛化,故无需创建后细化。借助Bshouty单调理论,他们揭示frame间存在与单调理论相关的固有过近似,并构造抽象域,使最佳抽象变换器执行该过近似;在该域中,Λ-PDR等价于最佳变换器的Kleene迭代。最后给出少量迭代收敛的充分条件,有时相较朴素精确前向可达性有指数级加速,为PDR优势提供理论基础。
Inferring inductive invariants is one of the main challenges of formal verification. The theory of abstract interpretation provides a rich framework to devise invariant inference algorithms. One of the latest breakthroughs in invariant inference is property-directed reachability (PDR), but the research community views PDR and abstract interpretation as mostly unrelated techniques. This paper shows that, surprisingly, propositional PDR can be formulated as an abstract interpretation algorithm in a logical domain. More precisely, we define a version of PDR, called Λ-PDR, in which all generalizations of counterexamples are used to strengthen a frame. In this way, there is no need to refine frames after their creation, because all the possible supporting facts are included in advance. We analyze this algorithm using notions from Bshouty’s monotone theory, originally developed in the context of exact learning. We show that there is an inherent overapproximation between the algorithm’s frames that is related to the monotone theory. We then define a new abstract domain in which the best abstract transformer performs this overapproximation, and show that it captures the invariant inference process, i.e., Λ-PDR corresponds to Kleene iterations with the best transformer in this abstract domain. We provide some sufficient conditions for when this process converges in a small number of iterations, with sometimes an exponential gap from the number of iterations required for naive exact forward reachability. These results provide a firm theoretical foundation for the benefits of how PDR tackles forward reachability.
@article{paperbot1586,
title = {Property-directed reachability as abstract interpretation in the monotone theory},
author = {Yotam M. Y. Feldman and Mooly Sagiv and Sharon Shoham and James R. Wilcox},
journal = {Proceedings of the ACM on Programming Languages},
volume = {6},
number = {POPL},
year = {2022},
doi = {10.1145/3498676}
}