Linearizability Analysis of the Contention-Friendly Binary Search Tree

05/12/2023
by   Uri Abraham, et al.
0

We present a formal framework for proving the correctness of set implementations backed by binary-search-tree (BST) and linked lists, which are often difficult to prove correct using automation. This is because many concurrent set implementations admit non-local linearization points for their `contains' procedure. We demonstrate this framework by applying it to the Contention-Friendly Binary-Search Tree algorithm of Crain et al. We took care to structure our framework in a way that can be easily translated into input for model-checking tools such as TLA+, with the aim of using a computer to verify bounded versions of claims that we later proved manually. Although this approach does not provide complete proof (i.e., does not constitute full verification), it allows checking the reasonableness of the claims before spending effort constructing a complete proof. This is similar to the test-driven development methodology, that has proven very beneficial in the software engineering community. We used this approach and validated many of the invariants and properties of the Contention-Friendly algorithm using TLA+. It proved beneficial, as it helped us avoid spending time trying to prove incorrect claims. In one example, TLA+ flagged a fundamental error in one of our core definitions. We corrected the definition (and the dependant proofs), based on the problematic scenario TLA+ provided as a counter-example. Finally, we provide a complete, manual, proof of the correctness of the Contention-Friendly algorithm, based on the definitions and proofs of our two-tiered framework.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/02/2020

Proving Highly-Concurrent Traversals Correct

Modern highly-concurrent search data structures, such as search trees, o...
research
07/08/2012

Minimal Proof Search for Modal Logic K Model Checking

Most modal logics such as S5, LTL, or ATL are extensions of Modal Logic ...
research
03/11/2020

Animated Logic: Correct Functional Conversion to Conjunctive Normal Form

We present an approach to obtain formally verified implementations of cl...
research
05/13/2021

Verification of the Incremental Merkle Tree Algorithm with Dafny

The Deposit Smart Contract (DSC) is an instrumental component of the Eth...
research
10/02/2017

Proof-checking Euclid

We used computer proof-checking methods to verify the correctness of our...
research
07/23/2019

Using Model Checking to Formally Verify Rendezvous Algorithms for Robots with Lights in Euclidean Space

The paper details the first successful attempt at using model-checking t...
research
10/20/2022

Proof of Unlearning: Definitions and Instantiation

The "Right to be Forgotten" rule in machine learning (ML) practice enabl...

Please sign up or login with your details

Forgot password? Click here to reset