当前位置:
X-MOL 学术
›
arXiv.cs.PL
›
论文详情
Our official English website, www.x-mol.net, welcomes your
feedback! (Note: you will need to create a separate account there.)
Abstraction Logic: The Marriage of Contextual Refinement and Separation Logic
arXiv - CS - Programming Languages Pub Date : 2021-09-07 , DOI: arxiv-2109.02991 Youngju Song, Minki Cho, Dongjae Lee, Chung-Kil Hur
arXiv - CS - Programming Languages Pub Date : 2021-09-07 , DOI: arxiv-2109.02991 Youngju Song, Minki Cho, Dongjae Lee, Chung-Kil Hur
Contextual refinement and separation logics are successful verification
techniques that are very different in nature. First, the former guarantees
behavioral refinement between a concrete program and an abstract program while
the latter guarantees safety of a concrete program under certain conditions
(expressed in terms of pre and post conditions). Second, the former does not
allow any assumption about the context when locally reasoning about a module
while the latter allows rich assumptions. In this paper, we present a new
verification technique, called abstraction logic (AL), that inherently combines
contextual refinement and separation logics such as Iris and VST, thereby
taking the advantages of both. Specifically, AL allows us to locally verify a
concrete module against an abstract module under separation-logic-style pre and
post conditions about external modules. AL are fully formalized in Coq and
provides a proof mode that supports a combination of simulation-style reasoning
using our own tactics and SL-style reasoning using IPM (Iris Proof Mode). Using
the proof mode, we verified various examples to demonstrate reasoning about
ownership (based on partial commutative monoids) and purity ($i.e.$,
termination with no system call), cyclic and higher-order reasoning about
mutual recursion and function pointers, and reusable and gradual verification
via intermediate abstractions. Also, the verification results are combined with
CompCert, so that we formally establish behavioral refinement from top-level
abstract programs, all the way down to their assembly code.
中文翻译:
抽象逻辑:上下文细化与分离逻辑的结合
上下文细化和分离逻辑是本质上非常不同的成功验证技术。首先,前者保证了具体程序和抽象程序之间的行为细化,而后者保证了具体程序在一定条件下(用前置条件和后置条件表示)的安全性。其次,前者在对模块进行局部推理时不允许对上下文进行任何假设,而后者允许丰富的假设。在本文中,我们提出了一种新的验证技术,称为抽象逻辑 (AL),它本质上结合了上下文细化和分离逻辑,例如 Iris 和 VST,从而利用了两者的优点。具体来说,AL 允许我们在关于外部模块的分离逻辑样式的前后条件下针对抽象模块在本地验证具体模块。AL 在 Coq 中完全形式化,并提供了一种证明模式,该模式支持使用我们自己的策略的模拟式推理和使用 IPM(虹膜证明模式)的 SL 式推理的组合。使用证明模式,我们验证了各种例子来演示关于所有权(基于部分可交换幺半群)和纯度($ie$,没有系统调用的终止)的推理,关于相互递归和函数指针的循环和高阶推理,以及可重用并通过中间抽象逐步验证。另外,验证结果结合CompCert,让我们从顶级抽象程序正式建立行为细化,
更新日期:2021-09-08
中文翻译:
抽象逻辑:上下文细化与分离逻辑的结合
上下文细化和分离逻辑是本质上非常不同的成功验证技术。首先,前者保证了具体程序和抽象程序之间的行为细化,而后者保证了具体程序在一定条件下(用前置条件和后置条件表示)的安全性。其次,前者在对模块进行局部推理时不允许对上下文进行任何假设,而后者允许丰富的假设。在本文中,我们提出了一种新的验证技术,称为抽象逻辑 (AL),它本质上结合了上下文细化和分离逻辑,例如 Iris 和 VST,从而利用了两者的优点。具体来说,AL 允许我们在关于外部模块的分离逻辑样式的前后条件下针对抽象模块在本地验证具体模块。AL 在 Coq 中完全形式化,并提供了一种证明模式,该模式支持使用我们自己的策略的模拟式推理和使用 IPM(虹膜证明模式)的 SL 式推理的组合。使用证明模式,我们验证了各种例子来演示关于所有权(基于部分可交换幺半群)和纯度($ie$,没有系统调用的终止)的推理,关于相互递归和函数指针的循环和高阶推理,以及可重用并通过中间抽象逐步验证。另外,验证结果结合CompCert,让我们从顶级抽象程序正式建立行为细化,