Expression Decomposition in a Rely/Guarantee Context
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Understanding programming language concepts via operational semantics
Domain modeling and the duration calculus
Compositional action system derivation using enforced properties
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
A unified theory of program logics: an approach based on the π-calculus
VoCS'08 Proceedings of the 2008 international conference on Visions of Computer Science: BCS International Academic Conference
Abstraction as a unifying link for formal approaches to concurrency
SEFM'12 Proceedings of the 10th international conference on Software Engineering and Formal Methods
Deriving real-time action systems in a sampling logic
Science of Computer Programming
Hi-index | 0.00 |
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.