Affiliation:
1. Uppsala University, Uppsala, Sweden
Abstract
Stateless model checking is a powerful technique for program verification, which however suffers from an exponential growth in the number of explored executions. A successful technique for reducing this number, while still maintaining complete coverage, is Dynamic Partial Order Reduction (DPOR). We present a new DPOR algorithm, which is the first to be provably optimal in that it always explores the minimal number of executions. It is based on a novel class of sets, called
source sets
, which replace the role of persistent sets in previous algorithms. First, we show how to modify an existing DPOR algorithm to work with source sets, resulting in an efficient and simple to implement algorithm. Second, we extend this algorithm with a novel mechanism, called
wakeup trees
, that allows to achieve optimality. We have implemented both algorithms in a stateless model checking tool for Erlang programs. Experiments show that source sets significantly increase the performance and that wakeup trees incur only a small overhead in both time and space.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
19 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Greybox Fuzzing for Concurrency Testing;Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2;2024-04-27
2. Mria: An Eventually Consistent Mnesia;Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang;2023-08-30
3. Optimal Stateless Model Checking for Causal Consistency;Tools and Algorithms for the Construction and Analysis of Systems;2023
4. Consistency-preserving propagation for SMT solving of concurrent program verification;Proceedings of the ACM on Programming Languages;2022-10-31
5. BiRD: Race Detection in Software Binaries under Relaxed Memory Models;ACM Transactions on Software Engineering and Methodology;2022-07-12