DeepAI AI Chat
Log In Sign Up

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

by   Peizun Liu, et al.

A classical result by Ramalingam about synchronization-sensitive interprocedural program analysis implies that reachability for concurrent threads running recursive procedures is undecidable. A technique proposed by Qadeer and Rehof, to bound the number of context switches allowed between the threads, leads to an incomplete solution that is, however, believed to catch "most bugs" in practice. The question whether the technique can also prove the absence of bugs at least in some cases has remained largely open. In this paper we introduce a broad verification methodology for resource-parameterized programs that observes how changes to the resource parameter affect the behavior of the program. Applied to the context-unbounded analysis problem (CUBA), the methodology results in partial verification techniques for procedural concurrent programs. Our solutions may not terminate, but are able to both refute and prove context-unbounded safety for concurrent recursive threads. We demonstrate the effectiveness of our method using a variety of examples, the safe of which cannot be proved safe by earlier, context-bounded methods.


page 1

page 2

page 3

page 4


Delay-Bounded Scheduling Without Delay! (Extended Technical Report)

We consider the broad problem of analyzing safety properties of asynchro...

Verification-Preserving Inlining in Automatic Separation Logic Verifiers (extended version)

Bounded verification has proved useful to detect bugs and to increase co...

The Decidability of Verification under Promising 2.0

In PLDI'20, Lee et al. introduced the promising semantics PS 2.0 of the...

Borrowing Safe Pointers from Rust in SPARK

In the field of deductive software verification, programs with pointers ...

On Reachability in Parameterized Phaser Programs

We address the problem of statically checking safety properties (such as...

Safe Pointers in SPARK 2014

In the context of deductive software verification, programs with pointer...

Checking Linearizability of Concurrent Priority Queues

Efficient implementations of concurrent objects such as atomic collectio...