All for One and One for All: Program Logics for Exploiting Internal Determinism in Parallel Programs
Alexandre Moine, Sam Westrick, Joseph Tassarotti
摘要
Nondeterminism makes parallel programs challenging to write and reason about. To avoid these challenges, researchers have developed techniques for internally deterministic parallel programming, in which the steps of a parallel computation proceed in a deterministic way. Internal determinism is useful because it lets a programmer reason about a program as if it executed in a sequential order. However, no verification framework exists to exploit this property and simplify formal reasoning about internally deterministic programs.
To capture the essence of why internally deterministic programs should be easier to reason about, this paper defines a property called schedule-independent safety. A program satisfies schedule-independent safety, if, to show that the program is safe across all orderings, it suffices to show that one terminating execution of the program is safe. We then present a separation logic called Musketeer for proving that a program satisfies schedule-independent safety. Once a parallel program has been shown to satisfy schedule-independent safety, we can verify it with a new logic called Angelic, which allows one to dynamically select and verify just one sequential ordering of the program.
Using Musketeer, we prove the soundness of MiniDet, an affine type system for enforcing internal determinism. MiniDet supports several core algorithmic primitives for internally deterministic programming that have been identified in the research literature, including a deterministic version of a concurrent hash set. Because any syntactically well-typed MiniDet program satisfies schedule-independent safety, we can apply Angelic to verify such programs.
All results in this paper have been verified in Rocq using the Iris separation logic framework.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
它引用的顶会 Paper7
- Simuliris: a separation logic framework for verifying concurrent program optimizationsLennard Gäher, Michael Sammler, Simon Spies, Ralf Jung 等POPL 2022 · 被引用 33 次
- Hyper Hoare Logic: (Dis-)Proving Program HyperpropertiesThibault Dardinier, Peter MüllerPLDI 2024 · 被引用 28 次
- Sound sequentialization for concurrent program verificationAzadeh Farzan, Dominik Klumpp, Andreas PodelskiPLDI 2022 · 被引用 24 次
- Proving hypersafety compositionallyEmanuele D'Osualdo, Azadeh Farzan, Derek DreyerOOPSLA 2022 · 被引用 16 次
- Mechanized logical relations for termination-insensitive noninterferenceSimon Oddershede Gregersen, Johan Bay, Amin Timany, Lars BirkedalPOPL 2021 · 被引用 14 次
相关 Paper
- Delay-Bounded Scheduling Without Delay!Andrew Johnson, Thomas WahlCAV 2021 · 被引用 2 次
- Formal Foundations for Translational Separation Logic VerifiersThibault Dardinier, Michael Sammler, Gaurav Parthasarathy, Alexander J. Summers 等POPL 2025 · 被引用 8 次
- DisLog: A Separation Logic for DisentanglementAlexandre Moine, Sam Westrick, Stephanie BalzerPOPL 2024
- TypeDis: A Type System for DisentanglementAlexandre Moine, Stephanie Balzer, Alex Xu, Sam WestrickPOPL 2026 · 被引用 1 次
- Ghost Signals: Verifying Termination of Busy Waiting - Verifying Termination of Busy WaitingTobias Reinhard, Bart JacobsCAV 2021 · 被引用 3 次
