Bounded Model Checking of Multi-threaded Software using SMT solvers
Lucas Cordeiro, Bernd Fischer

TL;DR
This paper extends the ESBMC model checker to verify multi-threaded software with shared variables and locks using SMT-based bounded model checking, employing three novel approaches to handle interleavings efficiently.
Contribution
It introduces three new methods for model checking multi-threaded programs with shared resources using SMT solvers, enhancing scalability and efficiency.
Findings
Able to analyze larger multi-threaded problems
Significantly reduces verification time
Effective use of partial-order reduction techniques
Abstract
The transition from single-core to multi-core processors has made multi-threaded software an important subject in computer aided verification. Here, we describe and evaluate an extension of the ESBMC model checker to support the verification of multi-threaded software with shared variables and locks using bounded model checking (BMC) based on Satisfiability Modulo Theories (SMT). We describe three approaches to model check multi-threaded software and our modelling of the synchronization primitives of the Pthread library. In the lazy approach, we generate all possible interleavings and call the BMC procedure on each of them individually, until we either find a bug, or have systematically explored all interleavings. In the schedule recording approach, we encode all possible interleavings into one single formula and then exploit the high speed of the SMT solvers. In the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Software Testing and Debugging Techniques · Software Reliability and Analysis Research
