Purity of an ST monad: full abstraction by semantically typed back-translation
Koen Jacobs, Dominique Devriese, Amin Timany
摘要
In 1995, Launchbury and Peyton Jones extended Haskell with an ST monad that allows the programmer to use higher-order mutable state. They informally argued that these state computations were safely encapsulated, and as such, that the rich reasoning principles stemming from the purity of the language, were not threatened.
In this paper, we give a formal account of the preservation of purity after adding an ST monad to a simplytyped call-by-value recursive lambda calculus. We state and prove full abstraction when embedding the pure language into its extension with ST; contextual equivalences from the pure language continue to hold in the presence of ST.
Proving full abstraction of compilers is usually done by emulating or back-translating the target features (here: ST computations) into the source language, a well-known challenge in the secure compilation community. We employ a novel proof technique for proving our full abstraction result that allows us to use a semantically (but not syntactically) typed back-translation into an intermediate language. We believe that this technique provides additional insight into our proof and that it is of general interest to researchers studying programming languages and compilers using full abstraction.
The results presented here are fully formalized in the Coq proof assistant using the Iris framework.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper6
- Iris-Wasm: Robust and Modular Verification of WebAssembly ProgramsXiaojia Rao, Aïna Linn Georges, Maxime Legoupil, Conrad Watt 等PLDI 2023 · 被引用 19 次
- Trillium: Higher-Order Concurrent and Distributed Separation Logic for Intensional RefinementAmin Timany, Simon Oddershede Gregersen, Léo Stefanesco, Jonas Kastberg Hinrichsen 等POPL 2024 · 被引用 14 次
- Efficient Dual-Numbers Reverse AD via Well-Known Program TransformationsTom Smeding, Matthijs VákárPOPL 2023 · 被引用 10 次
- Securing Verified IO Programs Against Unverified Code in FCezar-Constantin Andrici, Stefan Ciobaca, Catalin Hritcu, Guido Martínez 等POPL 2024 · 被引用 5 次
- Nola: Later-Free Ghost State for Verifying Termination in IrisYusuke Matsushita, Takeshi TsukadaPLDI 2025 · 被引用 2 次
它引用的顶会 Paper2
相关 Paper
- Operational Algorithmic Game SemanticsBenedict Bunting, Andrzej S. MurawskiLICS 2023 · 被引用 1 次
- Certifying derivation of state machines from coroutinesMirai Ikebuchi, Andres Erbsen, Adam ChlipalaPOPL 2022 · 被引用 2 次
- Full Iso-Recursive TypesLitao Zhou, Qianyong Wan, Bruno C. d. S. OliveiraOOPSLA 2024 · 被引用 4 次
- PureCake: A Verified Compiler for a Lazy Functional LanguageHrutvik Kanabar, Samuel Vivien, Oskar Abrahamsson, Magnus O. Myreen 等PLDI 2023 · 被引用 7 次
- Pure Borrow: Linear Haskell Meets Rust-Style BorrowingYusuke Matsushita, Hiromi IshiiPLDI 2026
