Abstract. The number of interleavings of a concurrent program makes automatic analysis of such software very hard. Modern multiprocessors' execution models make this problem even harder. Modelling program executions with partial orders rather than interleavings addresses both issues: we obtain an efficient encoding into integer difference logic for bounded model checking that enables first-time formal verification of deployed concurrent systems code. We implemented the encoding in the CBMC tool and present experiments over a wide range of memory models, including SC, Intel x86 and IBM Power. Our experiments include core parts of PostgreSQL, the Linux kernel and the Apache HTTP server.
Alglave et al. REF introduce a symbolic encoding for verifying concurrent software over a range of memory models including SC, TSO and PSO.
Partial Orders for Efficient Bounded Model Checking of Concurrent Software ⋆
CAV
Computer Science