Journal of Logic and Computation Advance Access originally published online on August 6, 2007
Journal of Logic and Computation 2007 17(4):807-841; doi:10.1093/logcom/exm030
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Original Articles |
A Structural Proof of the Soundness of Rely/guarantee Rules
School of Computing Science, Newcastle University, NE1 7RU, UK. E-mail: j.w.coleman, cliff.jones{at}ncl.ac.uk
| Abstract |
|---|
Various forms of rely/guarantee conditions have been used to record and reason about interference in ways that provide compositional development methods for concurrent programs. This article illustrates such a set of rules and proves their soundness. The underlying concurrent language allows fine-grained interleaving and nested concurrency; it is defined by an operational semantics; the proof that the rely/guarantee rules are consistent with that semantics (including termination) is by a structural induction. A key lemma which relates the states which can arise from the extra interference that results from taking a portion of the program out of context makes it possible to do the proofs without having to perform induction over the computation history. This lemma also offers a way to think about expressibility issues around auxiliary variables in rely/guarantee conditions.
Keywords: Rely/guarantee reasoning; structural operational semantics; soundness; structural induction; concurrency