Affiliation:
1. Masaryk University, Brno, Botanicka, Czech Republic
Abstract
Automatic verification of programs and computer systems with data nondeterminism (e.g., reading from user input) represents a significant and well-motivated challenge. The case of parallel programs is especially difficult, because then also the control flow nontrivially complicates the verification process. We apply the techniques of explicit-state model checking to account for the control aspects of a program to be verified and use
set-based reduction
of the data flow, thus handling the two sources of nondeterminism separately. We build the theory of set-based reduction using first-order formulae in the bit-vector theory to encode the sets of variable evaluations representing program data. These representations are tested for emptiness and equality (state matching) during the verification, and we harness modern satisfiability modulo theory solvers to implement these tests.
We design two methods of implementing the state matching, one using quantifiers and one that is quantifier-free, and we provide both analytical and experimental comparisons. Further experiments evaluate the efficiency of the set-based reduction method, showing the classical, explicit approach to fail to scale with the size of data domains. Finally, we propose and evaluate two heuristics to decrease the number of expensive satisfiability queries, together yielding a 10-fold speedup.
Publisher
Association for Computing Machinery (ACM)
Reference73 articles.
1. Symbolic Execution with Abstract Subsumption Checking
2. Emptiness Check of Powerset Buchi Automata using Inclusion Tests
3. D. Babic and M. Musuvathi. 2005. Modular Arithmetic Decision Procedure. Technical Report. Microsoft Research Redmont. D. Babic and M. Musuvathi. 2005. Modular Arithmetic Decision Procedure. Technical Report. Microsoft Research Redmont.
4. Model Checking Parallel Programs with Inputs
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Symbolic Computation via Program Transformation;Theoretical Aspects of Computing – ICTAC 2018;2018