Iron

Managing obligations in higher-order concurrent separation logic

Journal Article (2019)
Author(s)

Aleš Bizjak (Aarhus University)

Daniel Gratzer (Aarhus University)

R.J. Krebbers (TU Delft - Programming Languages)

Lars Birkedal (Aarhus University)

Research Group
Programming Languages
Copyright
© 2019 Aleš Bizjak, Daniel Gratzer, R.J. Krebbers, Lars Birkedal
DOI related publication
https://doi.org/10.1145/3290378
More Info
expand_more
Publication Year
2019
Language
English
Copyright
© 2019 Aleš Bizjak, Daniel Gratzer, R.J. Krebbers, Lars Birkedal
Research Group
Programming Languages
Issue number
POPL
Volume number
3
Pages (from-to)
65:1-65:30
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Precise management of resources and the obligations they impose, such as the need to dispose of memory, close locks, and release file handles, is hardÐespecially in the presence of concurrency, when some resources are shared, and different threads operate on them concurrently. We present Iron, a novel higher-order concurrent
separation logic that allows for precise reasoning about resources that are transferable among dynamically allocated threads. In particular, Iron can be used to show the correctness of challenging examples, where the reclamation of memory is delegated to a forked-off thread. We show soundness of Iron by means of a model of
Iron, defined on top of the Iris base logic, and we use this model to prove that memory resources are accounted for precisely and not leaked. We have formalized all of the developments in the Coq proof assistant.