DeepAI AI Chat
Log In Sign Up

Tasks in Modular Proofs of Concurrent Algorithms

by   Armando Castañeda, et al.
Universidad Nacional Autonoma de Mexico

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.


page 1

page 2

page 3

page 4


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

Frama-C is a software analysis framework that provides a common infrastr...

Proofs about Network Communication: For Humans and Machines

Many concurrent and distributed systems are safety-critical and therefor...

Generalised Dining Philosophers as Feedback Control

We revisit the Generalised Dining Philosophers problem through the persp...

Kishon's Poker Game

We present an approach for proving the correctness of distributed algori...

Formalization of Automated Trading Systems in a Concurrent Linear Framework

We present a declarative and modular specification of an automated tradi...

Visibility Reasoning for Concurrent Snapshot Algorithms

Visibility relations have been proposed by Henzinger et al. as an abstra...

OpSets: Sequential Specifications for Replicated Datatypes (Extended Version)

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