An approach for modularly verifying the core of Rust's atomic reference counting algorithm against the (X)C20 memory consistency model
We propose an approach for modular verification of programs that use relaxed-consistency atomic memory access primitives and fences, sufficient for verifying the core of Rust’s Atomic Reference Counting (ARC) algorithm, and we argue its soundness, when combined with a simple static analysis and admitting an open sub-problem, with respect to the C20 memory consistency model, as well as, even in the absence of any static analysis and without any assumptions, with respect to XC20, a recently proposed minor strengthening of C20 that rules out out-of-thin-air behaviors but allows load buffering. In contrast to existing work on verifying ARC, we do not assume acyclicity of the union of the program-order and reads-from relations. We define an interleaving operational semantics, prove its soundness with respect to (X)C20’s axiomatic semantics, and then apply any existing program logic for fine-grained interleaving concurrency, such as Iris.
Thu 3 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:45 - 12:30 | Session 1FTfJP at M209 Chair(s): Rosemary Monahan Department of Computer Science & Hamilton Institute, Maynooth University | ||
10:45 60mKeynote | Formal model guided conformance testing for blockchains (joint keynote, location: M207) FTfJP Pavle Subotic Microsoft Azure | ||
12:00 30mTalk | An approach for modularly verifying the core of Rust's atomic reference counting algorithm against the (X)C20 memory consistency model FTfJP | ||