[论文解读] Scheduling Constraint Based Abstraction Refinement for Multi-Threaded Program Verification
该论文提出了一种基于调度约束的抽象精化方法,用于多线程程序验证,避免了在有界模型检查(BMC)中对线程交错进行复杂编码。通过最初抽象掉调度约束,并仅在反例不可行时进行精化——利用事件顺序图上的图算法——该方法实现了显著的性能提升,在SV-COMP 2017基准测试中,公式大小缩小了8倍,验证时间更短。
Bounded model checking is among the most efficient techniques for the automatic verification of concurrent programs. However, encoding all possible interleavings often requires a huge and complex formula, which significantly limits the salability. This paper proposes a novel and efficient abstraction refinement method for multi-threaded program verification. Observing that the huge formula is usually dominated by the exact encoding of the scheduling constraint, this paper proposes a sc based abstraction refinement method, which avoids the huge and complex encoding of BMC. In addition, to obtain an effective refinement, we have devised two graph-based algorithms over event order graph for counterexample validation and refinement generation, which can always obtain a small yet effective refinement constraint. Enhanced by two constraint-based algorithms for counterexample validation and refinement generation, we have proved that our method is sound and complete w.r.t. the given loop unwinding depth. Experimental results on \svcompc benchmarks indicate that our method is promising and significantly outperforms the existing state-of-the-art tools.
研究动机与目标
- 为解决由于复杂调度约束编码导致的有界模型检查(BMC)在并发程序验证中的可伸缩性瓶颈问题。
- 通过最初抽象掉调度约束,减少BMC公式的大小和复杂度。
- 开发高效、基于图的算法,用于验证反例并生成有效的精化约束。
- 确保在给定循环展开深度下,验证过程的正确性与完备性。
- 在真实世界的并发程序验证基准测试中超越现有工具。
提出的方法
- 该方法从忽略调度约束的程序过度近似开始,这些约束通常因时钟变量的存在而呈立方级大小。
- 使用事件顺序图(EOG)表示线程交错并分析反例的可行性。
- 基于图的算法通过识别导致不可行性的核心内核原因,验证反例是否不可行。
- 基于约束的精化生成过程产生最小且有效的约束,以消除虚假反例。
- 精化过程通过在EOG中识别不可行性的原因来引导,确保抽象增长最小化。
- 该方法在给定循环展开深度下被形式化证明为正确且完备。
实验结果
研究问题
- RQ1在BMC中抽象掉调度约束是否能显著减小公式大小,并提升多线程程序的可伸缩性?
- RQ2对事件顺序图的基于图的分析是否能有效识别并发程序中不可行的反例?
- RQ3基于约束的精化是否能高效生成最小但有效的约束,以消除虚假反例?
- RQ4所提出的方法在验证性能和资源使用方面是否优于现有最先进工具?
- RQ5该方法在减少调度约束编码复杂度的同时,能否保持正确性与完备性?
主要发现
- 所提方法将公式平均大小减少至原始大小的1/8,相比精确编码调度约束的方法。
- 该工具在1550秒内、使用43 GB内存验证了所有SV-COMP 2017并发基准测试,优于Lazy-CSeq-Abs(需9820秒和104 GB内存)。
- 该方法仅通过数十次精化迭代即成功验证所有基准测试,表明收敛效率高。
- 与初始抽象相比,精化过程中抽象的大小增长可忽略不计,表明开销极低。
- 基于图的EOG验证方法在大多数情况下成功检测出不可行性,仅极少数情况需依赖基于约束的验证。
- 该工具在SV-COMP 2017并发赛道中荣获金牌,证实了其实际优越性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。