Linearizability! Refinement! Prophecy!

A long explainer on proving a queue linearizable with TLA+ refinement and prophecy.

Author
Lorin Hochstein (Surfing Complexity)
Published
22 September 2024
Kind
Personal blog explainer with TLA+ models and code in a linked repository
Original
surfingcomplexity.blog/2024/09/22/linearizability-refinement-prophecy/
Subject
Checkable specs for coding agents
Themes
Checking the work, Getting good

What it is

Lorin Hochstein writes a blog on software, complex systems and incidents. The post explains a result from Herlihy and Wing's linearizability paper and Lamport's book. The author says explaining is the best way to learn.

What it says

What evidence it gives

The post works through counter, queue, locked-list and array-queue examples with diagrams. It shows excerpts of PlusCal, Python and C++ code. Full TLA+ models are in two linked GitHub repositories. The post does not report running the models.

Interests and limits

The post is a personal explainer. The author says readers may not absorb it at first. The full prophecy mapping is deferred to Lamport's book. The post leaves liveness out. Model checking results are not reported. The figures were images, which were not viewed.

Connections

These links are this wiki's own reading, not claims the sources make.