Syntactic Regions for Concurrent Programs

by   Samuel Mimram, et al.

In order to gain a better understanding of the state space of programs, with the aim of making their verification more tractable, models based on directed topological spaces have been introduced, allowing to take in account equivalence between execution traces, as well as translate features of the execution (such as the presence of deadlocks) into geometrical situations. In this context, many algorithms were introduced, based on a description of the geometrical models as regions consisting of unions of rectangles. We explain here that these constructions can actually be performed directly on the syntax of programs, thus resulting in representations which are more natural and easier to implement. In order to do so, we start from the observation that positions in a program can be described as partial explorations of the program. The operational semantics induces a partial order on positions, and regions can be defined as formal unions of intervals in the resulting poset. We then study the structure of such regions and show that, under reasonable conditions, they form a boolean algebra and admit a representation in normal form (which corresponds to covering a space by maximal intervals), thus supporting the constructions needed for the purpose of studying programs. All the operations involved here are given explicit algorithmic descriptions.


page 1

page 2

page 3

page 4


Dynamic Verification with Observational Equivalence of C/C++ Concurrency

Program executions under relaxed memory model (rmm) semantics are signif...

Directed Homotopy in Non-Positively Curved Spaces

A semantics of concurrent programs can be given using precubical sets, i...

Safe Execution of Concurrent Programs by Enforcement of Scheduling Constraints

Automated software verification of concurrent programs is challenging be...

Operational Annotations: A new method for sequential program verification

I present a new method for specifying and verifying the partial correctn...

Reversing Parallel Programs with Blocks and Procedures

We show how to reverse a while language extended with blocks, local vari...

Generalising KAT to verify weighted computations

Kleene algebra with tests (KAT) was introduced as an algebraic structure...

Direct Construction of Program Alignment Automata for Equivalence Checking

The problem of checking whether two programs are semantically equivalent...

Please sign up or login with your details

Forgot password? Click here to reset