一句话:提出利用迹理论与交换性,将原验证任务替换为更简单的等价程序进行可靠验证。
该文讨论如何利用 Mazurkiewicz 迹理论中的交换性关系简化自动验证。并发执行可视为原子步骤的迹,交换性刻画不同线程步骤重排的等价性;该思想此前多用于预测性测试、模型检测偏序约简与分布式程序推理。作者提出另一条路线:不直接验证原程序,而是借助交换性构造更简单的替代程序,并将验证结果可靠迁移回原程序,使原任务失败时仍可能成功。文中讨论顺序与并发程序的 hypersafety(超安全)验证、并发与分布式程序的安全性与活性验证,并给出可枚举无限多替代程序的验证算法,最后总结开放问题。
Trace theory (formulated by Mazurkiewicz in 1987) is a framework for formalizing equivalence relations for concurrent program runs based on a commutativity relation over the set of atomic steps taken by individual program threads. It has been implicitly or explicitly used in a broad set of program analysis techniques, such as predictive testing for atomicity or data race violations, static and dynamic partial order reduction in model checking (particularly stateless model checking), and reasoning about distributed programs. In this paper, we introduce a different line of work that uses traces for the purpose of proof simplification for a broad set of automated verification goals. The long term thesis of this line of work has been that by taking advantage of commutativity, one can discover a substantially simpler verification task to replace the original one, and succeed at it despite the inevitability of the failure of the original one. The idea is to verify a different program in place of the original one and use commutativity as a way of soundly carrying the verification results over to the original one. We discuss hypersafety verification of sequential and concurrent programs, and safety and liveness verification of concurrent and distributed programs. We show how commutativity can be incorporated into a new verification algorithm which enumerates infinitely many possibilities for alternative programs to be verified instead of the original one. We conclude with an overview of some open research questions in this area.