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.
翻译:本文旨在提出一组通用且经过机械验证的细化规则,用于在并发环境下对递归程序及while循环进行推理。与多数并发处理方法不同,本文不假设表达式求值具有原子性。我们采用依赖-保证(rely-guarantee)方法处理并发问题,该方法支持以组合式推理方式分析并发线程间的干扰效应。递归程序可被定义为命令格上的不动点,因此我们推导了针对不动点的推理法则。循环可通过不动点进行定义,故递归推理法则可进一步应用于循环规则的构建。