Authors
Omar Inverso, Ermenegildo Tomasco, Bernd Fischer, Salvatore La Torre, Gennaro Parlato
Publication date
2021/12/9
Journal
ACM Transactions on Programming Languages and Systems (TOPLAS)
Volume
44
Issue
1
Pages
1-50
Publisher
ACM
Description
Bounded verification techniques such as bounded model checking (BMC) have successfully been used for many practical program analysis problems, but concurrency still poses a challenge. Here, we describe a new approach to BMC of sequentially consistent imperative programs that use POSIX threads. We first translate the multi-threaded program into a nondeterministic sequential program that preserves reachability for all round-robin schedules with a given bound on the number of rounds. We then reuse 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 it produces tight SAT/SMT formulae, and is thus very effective in practice: Our Lazy-CSeq tool implementing this translation for the C programming language won several gold and silver medals in …
Total citations
202220232024641
Scholar articles
O Inverso, E Tomasco, B Fischer, S La Torre, G Parlato - ACM Transactions on Programming Languages and …, 2021