Verification under TSO with an infinite Data Domain
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Florian Furbach, Shashwat Garg
TL;DR
This paper studies safety verification for concurrent programs under Total Store Ordering (TSO) when data domains are infinite. It shows that control-state reachability is undecidable in general via a reduction from Lossy Channel Systems with Data (DLCS), motivating the use of context-bounded analysis as a tractable under-approximation. The authors develop a two-step abstraction, AB$(\mathsf{Prog},k)$ to handle unbounded buffers and a domain abstraction using relational information to collapse the infinite data domain, establishing that CB($k$)-Reach[$\mathtt{D}$, $\mathsf{Rl}_{\leq n}$] is PSPACE-complete. This work delineates the boundary between undecidability and practical decidability for verifying weak-memory concurrent programs with unbounded data, and outlines future directions for broader under-approximations and more expressive relations.
Abstract
We examine verification of concurrent programs under the total store ordering (TSO) semantics used by the x86 architecture. In our model, threads manipulate variables over infinite domains and they can check whether variables are related for a range of relations. We show that, in general, the control state reachability problem is undecidable. This result is derived through a reduction from the state reachability problem of lossy channel systems with data (which is known to be undecidable). In the light of this undecidability, we turn our attention to a more tractable variant of the reachability problem. Specifically, we study context bounded runs, which provide an under-approximation of the program behavior by limiting the possible interactions between processes. A run consists of a number of contexts, with each context representing a sequence of steps where a only single designated thread is active. We prove that the control state reachability problem under bounded context switching is PSPACE complete.
