Abstract
The concurrent refinement algebra developed here is designed to
provide a foundation for rely/guarantee reasoning about concurrent
programs. The algebra builds on a complete lattice of commands by
providing sequential composition, parallel composition and a novel
weak conjunction operator. The weak conjunction operator coincides
with the lattice supremum providing its arguments are non-aborting,
but aborts if either of its arguments do. Weak conjunction provides an
abstract version of a guarantee condition as a guarantee process. We
distinguish between models that distribute sequential composition over
non-deterministic choice from the left (referred to as being
conjunctive in the refinement calculus literature) and those that
don't. Least and greatest fixed points of monotone functions are
provided to allow recursion and iteration operators to be added to the
language. Additional iteration laws are available for conjunctive
models. The rely quotient of processes c and
i is the process that, if executed in parallel with
i implements c. It represents an
abstract version of a rely condition generalised to a process.
License
Topics
Session Concurrent_Ref_Alg
- Refinement_Lattice
- Sequential
- Parallel
- Conjunction
- CRA
- Galois_Connections
- Iteration
- Conjunctive_Sequential
- Infimum_Nat
- Conjunctive_Iteration
- Rely_Quotient