Verifying a Concurrent Garbage Collector with a Rely-Guarantee Methodology

Abstract : Concurrent garbage collection algorithms are a challenge for program verification. In this paper, we address this problem by proposing a mechanized proof methodology based on the Rely-Guarantee proof technique. We design a compiler intermediate representation with strong type guarantees, dedicated support for abstract concurrent data structures, and high-level iterators on runtime internals. In addition, we define an Rely-Guarantee program logic supporting an incremental proof methodology where annotations and invariants can be progressively enriched. We formalize the intermediate representation, the proof system, and prove the soundness of the methodology in the Coq proof assistant. Equipped with this, we prove a fully concurrent garbage collector where mutators never have to wait for the collector.
Document type :
Journal articles
Complete list of metadatas

Cited literature [43 references]  Display  Hide  Download

https://hal.archives-ouvertes.fr/hal-01897251
Contributor : Yannick Zakowski <>
Submitted on : Wednesday, October 17, 2018 - 2:45:51 AM
Last modification on : Friday, September 13, 2019 - 9:48:42 AM
Long-term archiving on : Friday, January 18, 2019 - 12:54:47 PM

File

jar18.pdf
Files produced by the author(s)

Identifiers

Citation

Yannick Zakowski, David Cachera, Delphine Demange, Gustavo Petri, David Pichardie, et al.. Verifying a Concurrent Garbage Collector with a Rely-Guarantee Methodology. Journal of Automated Reasoning, Springer Verlag, 2018, ⟨10.1007/s10817-018-9489-x⟩. ⟨hal-01897251⟩

Share

Metrics

Record views

382

Files downloads

100