当前位置: X-MOL 学术Form. Asp. Comput. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A synchronous program algebra: a basis for reasoning about shared-memory and event-based concurrency
Formal Aspects of Computing ( IF 1 ) Pub Date : 2018-08-06 , DOI: 10.1007/s00165-018-0464-4
Ian J. Hayes 1 , Larissa A. Meinicke 1 , Kirsten Winter 1 , Robert J. Colvin 1
Affiliation  

In this paper we introduce an abstract algebra for reasoning about concurrent programs, that includes an abstract algebra of atomic steps, with sub-algebras of program and environment steps, and an abstract synchronisation operator. We show how the abstract synchronisation operator can be instantiated as a synchronous parallel operator with interpretations in rely-guarantee concurrency for shared-memory systems, and in process algebras CCS and CSP. It is also instantiated as a weak conjunction operator, an operator that is useful for the specification of rely and guarantee conditions in rely/guarantee concurrency. The main differences between the parallel and weak conjunction instantiations of the synchronisation operator are how they combine individual atomic steps. Lemmas common to these different instantiations are proved once using the axiomatisation of the abstract synchronous operator. Using the sub-algebras of program and environment atomic steps, rely and guarantee conditions, as well as Morgan-style specification commands, are defined at a high-level of abstraction in the program algebra. Lifting these concepts from rely/guarantee concurrency to a higher level of abstraction makes them more widely applicable. We demonstrate the practicality of the algebra by showing how a core law from rely-guarantee theory, the parallel introduction law, can be abstracted and verified easily in the algebra. In addition to proving fundamental properties for reasoning about concurrent shared-variable programs, the algebra is instantiated to prove abstract process synchronisation properties familiar from the process algebras CCS and CSP. The algebra has been encoded in Isabelle/HOL to provide a basis for tool support for concurrent program verification based on the rely/guarantee technique. It facilitates simpler, more general, proofs that allow a higher level of automation than what is possible in low-level, model-specific interpretations.

中文翻译:

同步程序代数:关于共享内存和基于事件的并发的推理基础

在本文中,我们介绍了一种用于推理并发程序的抽象代数,它包括原子步骤的抽象代数、程序和环境步骤的子代数以及抽象同步算子。我们展示了如何将抽象同步运算符实例化为同步并行运算符,并解释共享内存系统的依赖保证并发以及进程代数 CCS 和 CSP。它也被实例化为弱连接运算符,该运算符对于指定依赖/保证并发中的依赖和保证条件很有用。同步运算符的并行和弱合取实例之间的主要区别在于它们如何组合各个原子步骤。使用抽象同步运算符的公理化证明了这些不同实例化的共同引理。使用程序和环境原子步骤的子代数,依赖和保证条件,以及 Morgan 风格的规范命令,在程序代数的高级抽象中定义。将这些概念从依赖/保证并发提升到更高的抽象级别,使它们更广泛地适用。我们通过展示依赖保证理论的核心定律,并行引入定律,如何在代数中轻松抽象和验证,来证明代数的实用性。除了证明推理并发共享变量程序的基本性质,该代数被实例化以证明与过程代数 CCS 和 CSP 相似的抽象过程同步属性。代数已在 Isabelle/HOL 中编码,为基于依赖/保证技术的并发程序验证提供工具支持的基础。它促进了更简单、更通用的证明,与低级别、特定于模型的解释相比,它允许更高级别的自动化。
更新日期:2018-08-06
down
wechat
bug