一句话:将交换性关系作为并发程序验证中的一等对象,提出抽象交换性框架与分层组合证明规则。
本文研究并发程序验证算法中的交换性关系,并将其视为一等对象。作者提出抽象交换性关系的一般框架,给出可靠性条件,并设计从已有证明自动推导可靠抽象交换性关系的方法;该方法可嵌入基于抽象精化的验证算法,在每轮迭代中计算新的交换性关系。第二项贡献是组合多个能力不可比较的交换性关系的通用证明规则,通过分层方式保持可靠性并充分利用各关系能力;作者还给出实现该规则的最优组合算法。实验评估了抽象交换性与分层组合对并发程序验证算法的影响。
The importance of exploitingcommutativity relationsin verification algorithms for concurrent programs is well-known. They can help simplify the proof and improve the time and space efficiency. This paper studies commutativity relations as a first-class object in the setting of verification algorithms for concurrent programs. A first contribution is a general framework forabstract commutativity relations. We introduce a general soundness condition for commutativity relations, and present a method to automatically derive sound abstract commutativity relations from a given proof. The method can be used in a verification algorithm based on abstraction refinement to compute a new commutativity relation in each iteration of the abstraction refinement loop. A second result is a general proof rule that allows one to combine multiple commutativity relations, with incomparable power, in astratifiedway that preserves soundness and allows one to profit from the full power of the combined relations. We present an algorithm for the stratified proof rule that performs an optimal combination (in a sense made formal), enabling usage of stratified commutativity in algorithmic verification. We empirically evaluate the impact of abstract commutativity and stratified combination of commutativity relations on verification algorithms for concurrent programs.
@article{paperbot2120,
title = {Stratified Commutativity in Verification Algorithms for Concurrent Programs},
author = {Azadeh Farzan and Dominik Klumpp and Andreas Podelski},
journal = {Proceedings of the ACM on Programming Languages},
volume = {7},
number = {POPL},
year = {2023},
doi = {10.1145/3571242}
}