2017
DOI: 10.1145/3158152
|View full text |Cite
|
Sign up to set email alerts
|

A logical relation for monadic encapsulation of state: proving contextual equivalences in the presence of runST

Abstract: We present a logical relations model of a higher-order functional programming language with impredicative polymorphism, recursive types, and a Haskell-style ST monad type with runST. We use our logical relations model to show that runST provides proper encapsulation of state, by showing that effectful computations encapsulated by runST are heap independent. Furthermore, we show that contextual refinements and equivalences that are expected to hold for pure computations do indeed hold in the presence of runST. … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
24
0

Year Published

2017
2017
2024
2024

Publication Types

Select...
5
4

Relationship

2
7

Authors

Journals

citations
Cited by 41 publications
(24 citation statements)
references
References 25 publications
0
24
0
Order By: Relevance
“…A notable program logic in the family of concurrent separation logics is Iris that is specifically designed for reasoning about programs written in concurrent higher-order imperative programming languages. Iris has already proven to be versatile for reasoning about a number of sophisticated properties of programming languages [12,16,37]. In order to support modular reasoning about concurrent programs Iris features (1) impredicative invariants for expressing protocols on shared state among multiple threads and (2) allows for encoding of higher-order ghost state using a form of partial commutative monoids for reasoning about resources.…”
Section: Local and Thread-local Reasoningmentioning
confidence: 99%
“…A notable program logic in the family of concurrent separation logics is Iris that is specifically designed for reasoning about programs written in concurrent higher-order imperative programming languages. Iris has already proven to be versatile for reasoning about a number of sophisticated properties of programming languages [12,16,37]. In order to support modular reasoning about concurrent programs Iris features (1) impredicative invariants for expressing protocols on shared state among multiple threads and (2) allows for encoding of higher-order ghost state using a form of partial commutative monoids for reasoning about resources.…”
Section: Local and Thread-local Reasoningmentioning
confidence: 99%
“…Iris is a language-generic framework for higher-order concurrent separation logic [Jung et al 2016[Jung et al , 2017b[Jung et al , 2015, which in the past year has been equipped with tactical support for conducting machine-checked proofs of programs in Coq ] and deployed in several ongoing verification projects [Kaiser et al 2017;Swasey et al 2017;Tassarotti et al 2017;Timany et al 2018]. By virtue of being a separation logic [O'Hearn 2007;Reynolds 2002], Iris comes with built-in support for reasoning modularly about ownership.…”
Section: Rustbelt: An Extensible Semantic Approach To Proving Soundnmentioning
confidence: 99%
“…It is challenging to construct logical relations for languages with higher-order store because of the so-called type-world circularity [Ahmed 2004;Ahmed et al 2002;. The logic of Iris is rich enough to allow for a direct inductive specification of the logical relations for programming languages with advanced features such as higher-order references, recursive types, and concurrency [Krebbers et al 2017b;Krogh-Jespersen et al 2017;Timany et al 2018].…”
Section: Logical Relationsmentioning
confidence: 99%