Simpler Specifications and Easier Proofs of Distributed Algorithms Using History Variables

02/27/2018
by   Saksham Chand, et al.
0

This paper studies specifications and proofs of distributed algorithms when only message history variables are used, using Basic Paxos and Multi-Paxos for distributed consensus as precise case studies. We show that not using and maintaining other state variables yields simpler specifications that are more declarative and easier to understand. It also allows easier proofs to be developed by needing fewer invariants and facilitating proof derivations. Furthermore, the proofs are mechanically checked more efficiently. We show that specifications in TLA+ and proofs in TLA+ Proof System (TLAPS) are reduced by 25 100 lines to about 50 lines) and 48 lines), respectively, for Multi-Paxos. Overall we need 54 written invariants and our proofs have 46 Basic Paxos takes 26 our proofs for Multi-Paxos are checked by TLAPS within 1.5 minutes whereas prior proofs for Multi-Paxos fail to be checked in the new version of TLAPS.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/03/2022

On Brooks' Theorem

In this note we give two proofs of Brooks' Theorem. The first is obtaine...
research
02/20/2018

Breaking the Loop: Recursive Proofs for Coinductive Predicates in Fibrations

The purpose of this paper is to develop and study recursive proofs of co...
research
08/21/2023

Proofs about Network Communication: For Humans and Machines

Many concurrent and distributed systems are safety-critical and therefor...
research
04/14/2022

Fundamentals of Compositional Rewriting Theory

A foundational theory of compositional categorical rewriting theory is p...
research
01/14/2020

What's Live? Understanding Distributed Consensus

Distributed consensus algorithms such as Paxos have been studied extensi...
research
11/04/2018

Why Extension-Based Proofs Fail

We prove that a class of fundamental shared memory tasks are not amenabl...
research
03/27/2021

{log}: Applications to Software Specification, Prototyping and Verification

This document shows how Z specifications can be translated into {log} an...

Please sign up or login with your details

Forgot password? Click here to reset