Recursive Variable-Length State Compression for Multi-Core Software Model Checking [article]

Freark I. van der Berg
2021 arXiv   pre-print
High-performance multi-core software typically uses concurrent data structures. Tests for such data structures have significantly smaller state spaces than the entire software, making it feasible to model check them. However, dynamic memory allocations on the heap complicate the use of standard fixed-length state vectors. In this paper, we introduce dtree, a concurrent compression tree data structure that compactly stores variable-length states while allowing partial state reconstruction and
more » ... remental updates without concretising states. It supports describing a state as a tree, allowing direct modeling of the heap. We implemented dtree in DMC, our multi-core model checker. We show that its performance approaches that of state-of-the-art model checkers for fixed-length states. For models with variable-length states, dtree is up to 2.9 times faster.
arXiv:2007.12174v2 fatcat:qayl7fxp3vb2rbcdqncsuxmtie