Tag. concurrency
References (28)
Verifying Isolation Levels of Database Implementations for Free Using Separation Logic mathiasen-2026-verifying
Contextual Refinement of Higher-Order Concurrent Probabilistic Programs li-2026-contextual
Lawyer: Modular Obligations-Based Liveness Reasoning in Higher-Order Impredicative Concurrent Separation Logic namakonov-2026-lawyer
An Axiomatic Basis for Computer Programming on Relaxed Hardware Architectures: The AxSL Logics liu-2026-an
An Equational Axiomatization of Dynamic Threads via Algebraic Effects: Presheaves on Finite Relations, Labelled Posets, and Parameterized Algebraic Theories kammar-2026-an
Probabilistic Concurrent Reasoning in Outcome Logic: Independence, Conditioning, and Invariants zilberstein-2026-probabilistic
Verifying Wait-Freedom for Concurrent Higher-Order Programs namakonov-2026-verifying
Context-Dependent Effects and Concurrency in Guarded Interaction Trees stepanenko-2025-context
Reasoning about Weak Isolation Levels in Separation Logic alnormathiasen-2025-reasoning
Modular Reasoning about Error Bounds for Concurrent Probabilistic Programs li-2025-modular
Precise exceptions in relaxed architectures simner-2025-precise
A Brookes-Style Denotational Semantics for Release/Acquire Concurrency dvir-2025-a
Two-sorted algebraic decompositions of Brookes’s shared-state denotational semantics dvir-2025-two
Denotational Semantics for Probabilistic and Concurrent Programs zilberstein-2025-denotational
Trillium: Higher-Order Concurrent and Distributed Separation Logic for Intensional Refinement timany-2024-trillium
A Denotational Approach to Release/Acquire Concurrency dvir-2024-a
Leaf: Modularity for Temporary Sharing in Separation Logic hance-2023-leaf
Armada: Automated Verification of Concurrent Code with Sound Semantic Extensibility lorch-2022-armada
Simuliris: A Separation Logic Framework for Verifying Concurrent Program Optimizations gaher_etal_simuliris_2022
Today’s compilers employ a variety of non-trivial optimizations to achieve good performance. One key trick compilers use to justify transformations of concurrent programs is to assume that the source program has no data races: if it does, they cause the program to have undefined behavior (UB) and give the compiler free rein. However, verifying correctness of optimizations that exploit this assumption is a non-trivial problem. In particular, prior work either has not proven that such optimizations preserve program termination (particularly non-obvious when considering optimizations that move instructions out of loop bodies), or has treated all synchronization operations as external functions (losing the ability to reorder instructions around them).
In this work we present Simuliris, the first simulation technique to establish termination preservation (under a fair scheduler) for a range of concurrent program transformations that exploit UB in the source language. Simuliris is based on the idea of using ownership to reason modularly about the assumptions the compiler makes about programs with well-defined behavior. This brings the benefits of concurrent separation logics to the space of verifying program transformations: we can combine powerful reasoning techniques such as framing and coinduction to perform thread-local proofs of non-trivial concurrent program optimizations. Simuliris is built on a (non-step-indexed) variant of the Coq-based Iris framework, and is thus not tied to a particular language. In addition to demonstrating the effectiveness of Simuliris on standard compiler optimizations involving data race UB, we also instantiate it with Jung et al.’s Stacked Borrows semantics for Rust and generalize their proofs of interesting type-based aliasing optimizations to account for concurrency.