We present a thread-modular abstract interpretation(TMAI) technique to verify programs under the release-acquire (RA) memory model for safety property violations. The main contributions of our work are: we capture the execution order of program statements as an abstract domain, and propose a sound upper approximation over this domain to efficiently reason over RA concurrency. The proposed domain is general in its application and captures the ordering relations as a first-class feature in the abstract interpretation theory. In particular, the domain represents a set of sequences of modifications of a global variable in concurrent programs as a partially ordered set. Under this approximation, older sequenced-before stores of a global variable are forgotten and only the latest stores per variable are preserved. We establish the soundness of our proposed abstractions and implement them in a prototype abstract interpreter called PRIORI. The evaluations of PRIORI on existing and challenging RA benchmarks demonstrate that the proposed technique is not only competitive in refutation, but also in verification. PRIORI shows significantly fast analysis runtimes with higher precision compared to recent state-of-the-art tools for RA concurrency.
翻译:我们对安全财产侵犯的释放-获取(RA)记忆模型下的程序进行在线抽象解释(TMAI)技术。我们工作的主要贡献是:我们把程序声明的执行顺序作为一个抽象领域,并提议对这个领域提出一个健全的高近似值,以便有效解释RA conconal 。拟议领域在应用中是一般性的,在抽象解释理论中将订购关系作为一流特征。特别是,这个领域代表了一组在同时程序下对一个全球变量进行修改的顺序,作为部分订购的一组。在这个近似下,一个全球变量的旧序式储存被遗忘,仅保存每个变量的最新储存。我们确定了我们提议的抽象参数的正确性,并在一个原型的抽象解释者中实施,称为PRIORI。 PRIORI对现有和具有挑战性的RA基准的评估表明,拟议的技术不仅在反驳方面具有竞争力,而且在核查方面也具有竞争力。PRIORI显示,与最近最先进的RA concentical工具相比,快速的分析运行时间要高得多。