一句话:在 Isabelle/HOL 中提出组合式 rely-guarantee 仿真框架 CSim²,将并发系统高层规约的性质自顶向下保持到实现层。
验证大型复杂并发系统需要组合式技术,而在实现或机器码等低抽象层直接验证性质代价高昂,因此自顶向下的仿真式验证十分必要。本文提出 CSim²,一个在 Isabelle/HOL 中实现的基于 rely-guarantee 的组合式验证框架,其规约语言 CSimpl 表达力强,可刻画异常、断言与过程等真实语言特性。CSim² 支持对 CSimpl 规约组合式地推理 rely-guarantee 性质,并提供基于仿真的机制,将高层抽象规约上已证性质沿各并发组件组合式地传播至源代码或机器码层。作者以 Arinc-653 通信服务的两个 CSimpl 规约为例开展案例研究,证明了一个复杂性质并在更低抽象层保持该性质,展示了框架的可用性。
To make feasible and scalable the verification of large and complex concurrent systems, it is necessary the use of compositional techniques even at the highest abstraction layers. When focusing on the lowest software abstraction layers, such as the implementation or the machine code, the high level of detail of those layers makes the direct verification of properties very difficult and expensive. It is therefore essential to use techniques allowing to simplify the verification on these layers. One technique to tackle this challenge is top-down verification where by means of simulation properties verified on top layers (representing abstract specifications of a system) are propagated down to the lowest layers (that are an implementation of the top layers). There is no need to say that simulation of concurrent systems implies a greater level of complexity, and having compositional techniques to check simulation between layers is also desirable when seeking for both feasibility and scalability of the refinement verification. In this article, we present CSim 2 a (compositional) rely-guarantee-based framework for the top-down verification of complex concurrent systems in the Isabelle/HOL theorem prover. CSim 2 uses CSimpl, a language with a high degree of expressiveness designed for the specification of concurrent programs. Thanks to its expressibility, CSimpl is able to model many of the features found in real world programming languages like exceptions, assertions, and procedures. CSim 2 provides a framework for the verification of rely-guarantee properties to compositionally reason on CSimpl specifications. Focusing on top-down verification, CSim 2 provides a simulation-based framework for the preservation of CSimpl rely-guarantee properties from specifications to implementations. By using the simulation framework, properties proven on the top layers (abstract specifications) are compositionally propagated down to the lowest layers (source or machine code) in each concurrent component of the system. Finally, we show the usability of CSim 2 by running a case study over two CSimpl specifications of an Arinc-653 communication service. In this case study, we prove a complex property on a specification, and we use CSim 2 to preserve the property on lower abstraction layers.
@article{paperbot1222,
title = {<b>CSim</b>
<sup>
<i>2</i>
</sup>},
author = {David Sanan and Yongwang Zhao and Shang-Wei Lin and Liu Yang},
journal = {ACM Transactions on Programming Languages and Systems},
volume = {43},
number = {1},
year = {2021},
doi = {10.1145/3436808}
}