The Decidability of Verification under Promising 2.0

07/20/2020
by   Parosh Aziz Abdulla, et al.
0

In PLDI'20, Lee et al. introduced the promising semantics PS 2.0 of the C++ concurrency that captures most of the common program transformations while satisfying the DRF guarantee. The reachability problem for finite-state programs under PS 2.0 with only release-acquire accesses is already known to be undecidable. Therefore, we address, in this paper, the reachability problem for programs running under PS 2.0 with relaxed accesses together with promises. We show that this problem is undecidable even in the case where the input program has finite state. Given this undecidability result, we consider the fragment of PS 2.0 with only relaxed accesses allowing bounded number of promises. We show that under this restriction, the reachability is decidable, albeit very expensive: it is non-primitive recursive. Given this high complexity with bounded number of promises and the undecidability result for the RA fragment of PS 2.0, we consider a bounded version of the reachability problem. To this end, we bound both the number of promises and the "view-switches", i.e, the number of times the processes may switch their local views of the global memory. We provide a code-to-code translation from an input program under PS 2.0, with relaxed and release-acquire memory accesses along with promises, to a program under SC. This leads to a reduction of the bounded reachability problem under PS 2.0 to the bounded context-switching problem under SC. We have implemented a prototype tool and tested it on a set of benchmarks, demonstrating that many bugs in programs can be found using a small bound.

READ FULL TEXT

page 15

page 19

research
11/11/2020

The complexity of bounded context switching with dynamic thread creation

Dynamic networks of concurrent pushdown systems (DCPS) are a theoretical...
research
11/22/2018

Verifying C11 Programs Operationally

This paper develops an operational semantics for a release-acquire fragm...
research
05/28/2023

Overcoming Memory Weakness with Unified Fairness

We consider the verification of liveness properties for concurrent progr...
research
04/13/2018

CUBA: Interprocedural Context-UnBounded Analysis of Concurrent Programs (Extended Manuscript)

A classical result by Ramalingam about synchronization-sensitive interpr...
research
03/26/2018

Bounded Context Switching for Valence Systems

We study valence systems, finite-control programs over infinite-state me...
research
08/23/2017

The Reachability of Computer Programs

Would it be possible to explain the emergence of new computational ideas...
research
11/17/2021

Context-Bounded Verification of Thread Pools

Thread pooling is a common programming idiom in which a fixed set of wor...

Please sign up or login with your details

Forgot password? Click here to reset