Reasoning about concurrent loops and recursion with rely-guarantee rules
By: Ian J. Hayes, Larissa A. Meinicke, Cliff B. Jones
Potential Business Impact:
Helps computers check tricky programs safely.
The objective of this paper is to present general, mechanically verified, refinement rules for reasoning about recursive programs and while loops in the context of concurrency. Unlike many approaches to concurrency, we do not assume that expression evaluation is atomic. We make use of the rely-guarantee approach to concurrency that facilitates reasoning about interference from concurrent threads in a compositional manner. Recursive programs can be defined as fixed points over a lattice of commands and hence we develop laws for reasoning about fixed points. Loops can be defined in terms of fixed points and hence the laws for recursion can be applied to develop laws for loops.
Similar Papers
The nature of loops in programming
Programming Languages
Simplifies proving computer programs work correctly.
Have a thing? Reasoning around recursion with dynamic typing in grounded arithmetic
Programming Languages
Lets computers safely use any math rule.
Mechanized Metatheory of Forward Reasoning for End-to-End Linearizability Proofs
Programming Languages
Proves computer programs work correctly together.