Proving Correctness of Parallel Implementations of Transition System Specifications

01/25/2023
by   Frank S. de Boer, et al.
0

The overall problem addressed in this paper is the long-standing problem of program correctness, and in particular programs that describe systems of parallel executing processes. We propose a new method for proving correctness of parallel implementations of high-level transition system specifications. The implementation language underlying the method is based on the model of active (or concurrent) objects. The method defines correctness in terms of a simulation relation between the transition system which specifies the program semantics and the transition system that is described by the correctness specification. The simulation relation itself abstracts from the fine-grained interleaving of parallel processes by exploiting a global confluence property of the particular model of active objects considered in this paper. As a proof-of-concept we apply our method to the correctness of a parallel simulator of multicore memory systems.

READ FULL TEXT
research
09/23/2018

Kishon's Poker Game

We present an approach for proving the correctness of distributed algori...
research
07/31/2023

Verified Scalable Parallel Computing with Why3

BSML is a pure functional library for the multi-paradigm language OCaml....
research
10/31/2019

Data Abstraction and Relational Program Logic

In a paper published in 1972 Hoare articulated the fundamental notions o...
research
10/23/2018

Correctness of Concurrent Objects under Weak Memory Models

In this paper we develop a theory for correctness of concurrent objects ...
research
01/24/2023

Relation-Algebraic Verification of Disjoint-Set Forests

This paper studies how to use relation algebras, which are useful for hi...
research
11/06/2021

Abstraction for Crash-Resilient Objects (Extended Version)

We study abstraction for crash-resilient concurrent objects using non-vo...
research
03/27/2018

Proving Equivalence Between Imperative and MapReduce Implementations Using Program Transformations

Distributed programs are often formulated in popular functional framewor...

Please sign up or login with your details

Forgot password? Click here to reset