← Latest papers
💻 computer science

Completeness of Logical Atomicity for Linearizability in Concurrent Separation Logic

This paper resolves an open question in the Iris separation logic framework by proving the completeness of logical atomicity for linearizability, demonstrating that any linearizable data structure can be assigned a logically atomic specification and thereby enabling the mechanized integration of various linearizability proof techniques.

Original authors: Zichen Zhang, Simon Oddershede Gregersen, Joseph Tassarotti

Published 2026-07-14
📖 5 min read🧠 Deep dive

Original authors: Zichen Zhang, Simon Oddershede Gregersen, Joseph Tassarotti

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you are running a chaotic, high-speed bank with thousands of tellers working at once. In the real world, we want to be sure that even though everyone is moving fast and overlapping, the money doesn't disappear or get duplicated. In the world of computer science, this "safety guarantee" is called linearizability. It's like saying, "Even though you saw two people grab the same account at the same time, if you rewind the tape, there was a single, perfect moment where one finished and the other started, just like a line at a coffee shop."

For a long time, computer scientists had two different ways to prove this safety.

The Old Way: The "Black Box" Inspector
One way was to act like a detective looking at the whole history of the bank. You'd watch every single transaction, try to find the exact split-second (the "linearization point") where each teller did their magic, and prove that if you rearranged them in that order, the math still worked. This is linearizability. It's great for proving the bank is safe, but it's a nightmare to use when you want to build new things on top of the bank. It's like trying to build a house by constantly re-checking the foundation's blueprints every time you lay a brick. It's too heavy and clunky for the next step.

The New Way: The "Magic Wand"
The other way, used by a fancy logic system called Iris, is called logical atomicity. Instead of looking at the whole history, this approach gives the programmer a "magic wand" (a logical rule). It says, "Trust me, this operation happened all at once, so you can treat it like a single, instant step." This makes building new apps much easier because you don't have to worry about the messy details of how the magic happened, just that it did.

The Big Question: Is the Magic Wand Enough?
Here is the puzzle this paper solves: We knew that if you had the "Magic Wand" (logical atomicity), you could prove the bank was safe (linearizability). That was like saying, "If you have a magic wand, you can definitely build a safe house."

But the reverse question was a mystery: If we already know the bank is safe (linearizable), can we always find a Magic Wand for it?
Some people worried that maybe some banks were so complex that no Magic Wand existed, even if they were perfectly safe. They thought the Magic Wand might be missing some rules, making it "too weak" to describe every possible safe bank.

The Breakthrough: Yes, the Wand Exists!
This paper proves, with absolute mathematical certainty (it's a theorem, not just a guess or a simulation), that yes, you can always find a Magic Wand for any safe bank.

The authors, Zichen Zhang, Simon Oddershede Gregersen, and Joseph Tassarotti, showed that if a data structure (like a queue or a list) is linearizable, you can always derive a logically atomic specification for it. They didn't just suggest this; they built a machine-checked proof using a tool called the Rocq Prover to verify every single step.

How Did They Do It? (The Time Travelers and The Helpers)
To prove this, they had to solve two tricky problems:

  1. The Future Problem: Sometimes, you don't know when a transaction is "done" until you see what happens later. It's like a teller saying, "I'll finish this transaction once the next person walks in." This is called "future-dependent linearization." To solve this, they used prophecy variables. Think of these as time-traveling crystal balls. At the start of the program, the crystal ball predicts the entire future history of the bank. This lets the proof "know" exactly when to snap its fingers (apply the magic) for every transaction, even the ones that depend on the future.
  2. The Helping Problem: Sometimes, one teller helps another finish their work. In the old way, you had to prove exactly who helped whom at a specific physical moment. But the authors showed that you can use a shared notebook (an invariant). When a transaction starts, you write a "promise" in the notebook. When the transaction finishes, you look at the notebook, find all the promises that are now ready to be kept, and snap your fingers for all of them at once. This is called helping. It means one physical step can logically "finish" multiple operations.

What This Means for You
The paper doesn't just say "we did it." It actually demonstrated this power by taking three different, complex ways of proving safety that existed outside of the Iris logic system and translating them into the Magic Wand style.

  • They proved the Herlihy-Wing queue (a famous, tricky bank line) is safe using three different methods: "aspect-oriented" proofs, "forward simulation," and "meta-configuration tracking."
  • They proved the Baskets Queue is safe.
  • They even took a proof for the Folly MPMC queue (a high-performance bank line used by Meta) that was already proven to be safe in a different way, and used their new "bridge" to turn it into a Magic Wand proof.

The Bottom Line
This paper closes a huge gap in computer science. It proves that the "Magic Wand" (logical atomicity) is not a limited tool; it is complete. If a concurrent data structure is safe, the Magic Wand can describe it. You don't have to choose between a complex history check and a simple magic rule; you can use the complex history check to prove safety, and then automatically get the simple magic rule for free.

The authors have made all their code and proofs available on GitHub, so anyone can check their work. They didn't just suggest this might be true; they proved it, turning a long-standing open question into a settled fact.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →