Simuliris: A separation logic framework for verifying concurrent program optimizations

Gäher L, Sammler MJ, Spies S, Jung R, Dang H-H, Krebbers R, Kang J, Dreyer D. 2022. Simuliris: A separation logic framework for verifying concurrent program optimizations. Proceedings of the ACM on Programming Languages. 6(POPL), 1–31.

Download (ext.)
OA https://doi.org/10.1145/3498689 [Published Version]

Journal Article | Published | English

Scopus indexed
Author
Gäher, Lennard; Sammler, Michael JoachimISTA; Spies, Simon; Jung, Ralf; Dang, Hoang-Hai; Krebbers, Robbert; Kang, Jeehoon; Dreyer, Derek
Abstract
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.
Publishing Year
Date Published
2022-01-12
Journal Title
Proceedings of the ACM on Programming Languages
Volume
6
Issue
POPL
Page
1-31
ISSN
IST-REx-ID

Cite this

Gäher L, Sammler MJ, Spies S, et al. Simuliris: A separation logic framework for verifying concurrent program optimizations. Proceedings of the ACM on Programming Languages. 2022;6(POPL):1-31. doi:10.1145/3498689
Gäher, L., Sammler, M. J., Spies, S., Jung, R., Dang, H.-H., Krebbers, R., … Dreyer, D. (2022). Simuliris: A separation logic framework for verifying concurrent program optimizations. Proceedings of the ACM on Programming Languages. Association for Computing Machinery. https://doi.org/10.1145/3498689
Gäher, Lennard, Michael Joachim Sammler, Simon Spies, Ralf Jung, Hoang-Hai Dang, Robbert Krebbers, Jeehoon Kang, and Derek Dreyer. “Simuliris: A Separation Logic Framework for Verifying Concurrent Program Optimizations.” Proceedings of the ACM on Programming Languages. Association for Computing Machinery, 2022. https://doi.org/10.1145/3498689.
L. Gäher et al., “Simuliris: A separation logic framework for verifying concurrent program optimizations,” Proceedings of the ACM on Programming Languages, vol. 6, no. POPL. Association for Computing Machinery, pp. 1–31, 2022.
Gäher L, Sammler MJ, Spies S, Jung R, Dang H-H, Krebbers R, Kang J, Dreyer D. 2022. Simuliris: A separation logic framework for verifying concurrent program optimizations. Proceedings of the ACM on Programming Languages. 6(POPL), 1–31.
Gäher, Lennard, et al. “Simuliris: A Separation Logic Framework for Verifying Concurrent Program Optimizations.” Proceedings of the ACM on Programming Languages, vol. 6, no. POPL, Association for Computing Machinery, 2022, pp. 1–31, doi:10.1145/3498689.
All files available under the following license(s):
Copyright Statement:
This Item is protected by copyright and/or related rights. [...]

Link(s) to Main File(s)
Access Level
OA Open Access

Export

Marked Publications

Open Data ISTA Research Explorer

Search this title in

Google Scholar