Mechanized Metatheory of Forward Reasoning for End-to-End Linearizability Proofs
By: Zachary Kent , Ugur Y. Yavuz , Siddhartha Jayanti and more
Potential Business Impact:
Proves computer programs work correctly together.
In the past decade, many techniques have been developed to prove linearizability, the gold standard of correctness for concurrent data structures. Intuitively, linearizability requires that every operation on a concurrent data structure appears to take place instantaneously, even when interleaved with other operations. Most recently, Jayanti et al. presented the first sound and complete "forward reasoning" technique for proving linearizability that relates the behavior of a concurrent data structure to a reference atomic data structure as time moves forward. This technique can be used to produce machine-checked proofs of linearizability in TLA+. However, while Jayanti et al.'s approach is shown to be sound and complete, a mechanization of this important metatheoretic result is still outstanding. As a result, it is not possible to produce verified end-to-end proofs of linearizability. To reduce the size of this trusted computing base, we formalize this forward reasoning technique and mechanize proofs of its soundness and completeness in Rocq. As a case study, we use the approach to produce a verified end-to-end proof of linearizability for a simple concurrent register.
Similar Papers
Mechanizing a Proof-Relevant Logical Relation for Timed Message-Passing Protocols
Programming Languages
Helps computers check if smart devices follow time rules.
Proof-Producing Translation of Functional Programs into a Time \& Space Reasonable Model
Logic in Computer Science
Builds computer programs from simpler instructions.
Functional Reasoning for Distributed Systems with Failures
Programming Languages
Makes computer systems more trustworthy and reliable.