English

A Higher-Order Logic for Concurrent Termination-Preserving Refinement

Programming Languages 2017-01-23 v1 Logic in Computer Science

Abstract

Compiler correctness proofs for higher-order concurrent languages are difficult: they involve establishing a termination-preserving refinement between a concurrent high-level source language and an implementation that uses low-level shared memory primitives. However, existing logics for proving concurrent refinement either neglect properties such as termination, or only handle first-order state. In this paper, we address these limitations by extending Iris, a recent higher-order concurrent separation logic, with support for reasoning about termination-preserving refinements. To demonstrate the power of these extensions, we prove the correctness of an efficient implementation of a higher-order, session-typed language. To our knowledge, this is the first program logic capable of giving a compiler correctness proof for such a language. The soundness of our extensions and our compiler correctness proof have been mechanized in Coq.

Keywords

Cite

@article{arxiv.1701.05888,
  title  = {A Higher-Order Logic for Concurrent Termination-Preserving Refinement},
  author = {Joseph Tassarotti and Ralf Jung and Robert Harper},
  journal= {arXiv preprint arXiv:1701.05888},
  year   = {2017}
}

Comments

78 pages, extended version of a conference paper for ESOP 2017

R2 v1 2026-06-22T17:55:29.102Z