DeepAI AI Chat
Log In Sign Up

Tasks in Modular Proofs of Concurrent Algorithms

09/12/2019
by   Armando Castañeda, et al.
LAAS-CNRS
Universidad Nacional Autonoma de Mexico
ENSEEIHT
0

Proving correctness of distributed or concurrent algorithms is a mind-challenging and complex process. Slight errors in the reasoning are difficult to find, calling for computer-checked proof systems. In order to build computer-checked proofs with usual tools, such as Coq or TLA+, having sequential specifications of all base objects that are used as building blocks in a given algorithm is a requisite to provide a modular proof built by composition. Alas, many concurrent objects do not have a sequential specification. This article describes a systematic method to transform any task, a specification method that captures concurrent one-shot distributed problems, into a sequential specification involving two calls, Set and Get. This transformation allows system designers to compose proofs, thus providing a framework for modular computer-checked proofs of algorithms designed using tasks and sequential objects as building blocks. The Moir Anderson implementation of renaming using splitters is an iconic example of such algorithms designed by composition.

READ FULL TEXT

page 1

page 2

page 3

page 4

08/24/2017

From Concurrent Programs to Simulating Sequential Programs: Correctness of a Transformation

Frama-C is a software analysis framework that provides a common infrastr...
08/21/2023

Proofs about Network Communication: For Humans and Machines

Many concurrent and distributed systems are safety-critical and therefor...
05/05/2018

Generalised Dining Philosophers as Feedback Control

We revisit the Generalised Dining Philosophers problem through the persp...
09/23/2018

Kishon's Poker Game

We present an approach for proving the correctness of distributed algori...
04/15/2019

Formalization of Automated Trading Systems in a Concurrent Linear Framework

We present a declarative and modular specification of an automated tradi...
10/06/2021

Visibility Reasoning for Concurrent Snapshot Algorithms

Visibility relations have been proposed by Henzinger et al. as an abstra...
05/11/2018

OpSets: Sequential Specifications for Replicated Datatypes (Extended Version)

We introduce OpSets, an executable framework for specifying and reasonin...