Tasks in modular proofs of concurrent algorithms
Proving the correctness of distributed or concurrent algorithms is a complex process. Errors in the reasoning are hard to find, calling for computer-checked proof systems like Coq or TLA+. To use these tools, sequential specifications of base objects are required to build modular proofs by compositi...
Saved in:
| Published in: | Information and computation Vol. 292; no. Selected papers from SSS’2019, the 21st International Symposium on Stabilization, Safety, and Security of Distributed Systems; p. 105040 |
|---|---|
| Main Authors: | , , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
Elsevier Inc
01.06.2023
Elsevier |
| Subjects: | |
| ISSN: | 0890-5401, 1090-2651 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Summary: | Proving the correctness of distributed or concurrent algorithms is a complex process. Errors in the reasoning are hard to find, calling for computer-checked proof systems like Coq or TLA+. To use these tools, sequential specifications of base objects are required to build modular proofs by composition. Unfortunately, many concurrent objects lack a sequential specification. This article describes a method to transform any task, a specification of a concurrent one-shot distributed problem, into a sequential specification involving two calls, set and get. This enables designers to compose proofs, facilitating modular computer-checked proofs of algorithms built using tasks and sequential objects as building blocks. Moir & Anderson implementation of renaming using splitters, wait-free concurrent objects, is an algorithm designed by composition, but it is not modular. Using our transformation, a modular description of the algorithm is given in TLA+ and mechanically verified using the TLA+ Proof System. As far as we know, this is the first time this algorithm is mechanically verified. |
|---|---|
| ISSN: | 0890-5401 1090-2651 |
| DOI: | 10.1016/j.ic.2023.105040 |