arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2407.20002cs.PL
收藏

翻译式分离逻辑验证器的形式化基础(扩展版)

Formal Foundations for Translational Separation Logic Verifiers (extended version)

Thibault Dardinier, Michael Sammler, Gaurav Parthasarathy, Alexander J. Summers, Peter Müller

AI总结:

本文提出了一个用于推理翻译式分离逻辑验证器的形式化框架,通过带有天使非确定性的通用核心中间验证语言连接符号执行与验证条件生成后端,简化前端翻译的正确性证明,并在 Isabelle/HOL 中完整形式化了相关语义与证明。

摘要:

程序验证工具通常被实现为将输入程序翻译为中间验证语言(IVL)的前端,例如 Boogie、GIL、Viper 或 Why3。生成的 IVL 程序随后使用现有的后端验证器进行验证。此类翻译式验证器的正确性证明需要将输入程序和验证逻辑与 IVL 的语义联系起来,而 IVL 的语义又需要与后端验证器中实现的验证逻辑相连接。由于输入和输出程序及逻辑之间存在巨大的语义鸿沟,执行此类证明极具挑战性,对于分离逻辑等复杂的验证逻辑尤为如此。本文提出了一个用于推理翻译式分离逻辑验证器的形式化框架。其核心是一个通用的核心 IVL,它捕获了不同分离逻辑的本质。我们定义了其操作语义,并将其形式化地连接到两个不同的后端验证器,它们分别使用符号执行和验证条件生成。至关重要的是,该语义使用天使非确定性,以支持在后端验证器中应用不同的证明搜索算法和启发式方法。核心 IVL 的公理语义简化了对前端翻译的推理,它在与操作语义的等价证明中一劳永逸地执行关键的证明步骤,而不是针对每个具体的前端翻译执行。我们通过用 Viper 的元素实例化核心 IVL,并将其连接到两个 Viper 后端以及一个并发分离逻辑前端,展示了我们形式化框架的实用性。我们所有的技术成果都已在 Isabelle/HOL 中形式化,包括核心 IVL 及其语义、Viper 子集的两个后端的语义以及所有证明。

英文摘要:

Program verification tools are often implemented as front-end translations of an input program into an intermediate verification language (IVL) such as Boogie, GIL, Viper, or Why3. The resulting IVL program is then verified using an existing back-end verifier. A soundness proof for such a translational verifier needs to relate the input program and verification logic to the semantics of the IVL, which in turn needs to be connected with the verification logic implemented in the back-end verifiers. Performing such proofs is challenging due to the large semantic gap between the input and output programs and logics, especially for complex verification logics such as separation logic. This paper presents a formal framework for reasoning about translational separation logic verifiers. At its center is a generic core IVL that captures the essence of different separation logics. We define its operational semantics and formally connect it to two different back-end verifiers, which use symbolic execution and verification condition generation, resp. Crucially, this semantics uses angelic non-determinism to enable the application of different proof search algorithms and heuristics in the back-end verifiers. An axiomatic semantics for the core IVL simplifies reasoning about the front-end translation by performing essential proof steps once and for all in the equivalence proof with the operational semantics rather than for each concrete front-end translation. We illustrate the usefulness of our formal framework by instantiating our core IVL with elements of Viper and connecting it to two Viper back-ends as well as a front-end for concurrent separation logic. All our technical results have been formalized in Isabelle/HOL, including the core IVL and its semantics, the semantics of two back-ends for a subset of Viper, and all proofs.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑