Abstract
Bounded model checking (BMC) has successfully been used for many practical program verification problems, but concurrency still poses a challenge. Here we describe a new approach to BMC of sequentially consistent C programs using POSIX threads. Our approach first translates a multi-threaded C program into a nondeterministic sequential C program that preserves reachability for all round-robin schedules with a given bound on the number of rounds. It then re-uses existing high-performance BMC tools as backends for the sequential verification problem. Our translation is carefully designed to introduce very small memory overheads and very few sources of nondeterminism, so that it produces tight SAT/SMT formulae, and is thus very effective in practice: our prototype won the concurrency category of SV-COMP14. It solved all verification tasks successfully and was 30x faster than the best tool with native concurrency handling. © 2014 Springer International Publishing.
Cite
CITATION STYLE
Inverso, O., Tomasco, E., Fischer, B., La Torre, S., & Parlato, G. (2014). Bounded model checking of multi-threaded C programs via lazy sequentialization. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 8559 LNCS, pp. 585–602). Springer Verlag. https://doi.org/10.1007/978-3-319-08867-9_39
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.