A Universal Technique for Machine-Certified Proofs of Linearizable Algorithms

02/01/2023
by   Prasad Jayanti, et al.
0

Linearizability has been the long standing gold standard for consistency in concurrent data structures. However, proofs of linearizability can be long and intricate, hard to produce, and extremely time consuming even to verify. In this work, we address this issue by introducing simple universal, sound, and complete proof methods for producing machine-verifiable proofs of linearizability and its close cousin, strong linearizability. Universality means that our method works for any object type; soundness means that an algorithm can be proved correct by our method only if it is linearizable (resp. strong linearizable); and completeness means that any linearizable (resp. strong linearizable) implementation can be proved so using our method. We demonstrate the simplicity and power of our method by producing proofs of linearizability for the Herlihy-Wing queue and Jayanti's single-scanner snapshot, as well as a proof of strong linearizability of the Jayanti-Tarjan union-find object. All three of these proofs are machine-verified by TLAPS (the Temporal Logic of Actions Proof System).

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/19/2019

Proof Pearl: Magic Wand as Frame

Separation logic adds two connectives to assertion languages: separating...
research
07/17/2019

Generating Correctness Proofs with Neural Networks

Foundational verification allows programmers to build software which has...
research
04/08/2021

First-order natural deduction in Agda

Agda is a dependently-typed functional programming language, based on an...
research
11/11/2022

Quantum Natural Proof: A New Perspective of Hybrid Quantum-Classical Program Verification

Many quantum programs are assured by formal verification, but such verif...
research
06/09/2023

A Complete Proof Synthesis Method for the Cube of Type Systems

We present a complete proof synthesis method for the eight type systems ...
research
07/06/2022

VeriFx: Correct Replicated Data Types for the Masses

Distributed systems adopt weak consistency to ensure high availability a...
research
07/10/2023

Declarative Linearizability Proofs for Descriptor-Based Concurrent Helping Algorithms

Linearizability is a standard correctness criterion for concurrent algor...

Please sign up or login with your details

Forgot password? Click here to reset