Skip to main content
QUICK REVIEW

[论文解读] Bringing Iris into the Verified Software Toolchain

William Mansky|arXiv (Cornell University)|Jul 14, 2022
Parallel Computing and Optimization Techniques被引用 4
一句话总结

本文将 Iris 并发分离逻辑中的高级特性集成到已验证软件工具链(VST)中,实现了对具有细粒度锁和 C11 原子操作的复杂并发 C 程序的正式验证。通过扩展 VST 以支持幽灵状态、全局不变式以及 Iris 证明模式,该系统在保持与 CompCert 验证编译管道兼容性的前提下,实现了更强的正确性保证。

ABSTRACT

The Verified Software Toolchain (VST) is a system for proving correctness of C programs using separation logic. By connecting to the verified compiler CompCert, it produces the strongest possible guarantees of correctness for real C code that we can compile and run. VST included concurrency from its inception, in the form of reasoning about lock invariants, but concurrent separation logic (CSL) has advanced by leaps and bounds since then. In this paper, we describe efforts to integrate advancements from Iris, a state-of-the-art mechanized CSL, into VST. Some features of Iris (ghost state and invariants) are re-implemented in VST from the ground up; others (Iris Proof Mode) are imported from the Iris development; still others (proof rules for atomic operations) are axiomatized, with the hope that they will be made foundational in future versions. The result is a system that can prove correctness of sophisticated concurrent programs implemented in C, with fine-grained locking and non-blocking atomic operations, that yields varying soundness guarantees depending on the features used.

研究动机与目标

  • 将现代并发分离逻辑(CSL)特性从 Iris 扩展到已验证软件工具链(VST),以支持对复杂并发 C 程序的验证。
  • 通过向 VST 的堆模型扩展幽灵状态,并重新实现核心构造,弥合 VST 传统分离逻辑与 Iris 基于幽灵状态的模型之间的基础差异。
  • 在 VST 中启用 Iris 证明模式(IPM),以实现对复杂不变式和原子操作的更可扩展、更模块化的推理。
  • 使用 Iris 的物理原子性和逻辑原子性规则,对 C11 原子操作进行公理化,为原子代码的验证编译提供路径。
  • 通过实现一个支持并发原子操作和客户端线性化证明的可线性化哈希表,展示扩展系统在实际应用中的可行性。

提出的方法

  • 扩展了 VST 的堆模型以包含幽灵状态,从而能够表示类似于 Iris 基础模型中的逻辑所有权和不变式。
  • 证明了 VST 的逻辑是 Iris 类型类中分离逻辑的一个实例,从而可直接复用 Iris 证明模式(IPM)进行 VST 证明,而无需修改 VST 的核心策略。
  • 使用 Iris 的物理原子性规则对 C11 原子操作进行公理化,使能够在 C 程序中推理顺序一致的原子读写操作。
  • 在 VST 规范中引入逻辑原子三元组(通过 ATOMIC 关键字),以捕捉线性化特性,并支持对并发数据结构的模块化验证。
  • 将 IPM 集成到 VST 证明脚本中,以在证明过程中管理幽灵状态和不变式操作,从而实现 IPM 与原生 VST 策略之间的无缝切换。
  • 对一个包含 2kLoC Coq 代码的并发哈希表实现进行了验证,其中包括原子操作以及使用幽灵历史记录的客户端线性化证明。

实验结果

研究问题

  • RQ1如何将基于幽灵状态和不变式的 Iris 基础模型适配到传统上将点向断言视为原语的 VST 框架中?
  • RQ2在不修改 VST 现有策略系统或 soundness 保证的前提下,Iris 证明模式在多大程度上可以被集成到 VST 中?
  • RQ3能否使用 Iris 的原子性规则在 VST 中可靠地公理化 C11 原子操作?这对验证编译有何影响?
  • RQ4如何利用逻辑原子三元组来验证 C 语言中的可线性化并发数据结构?幽灵状态和不变式在此过程中起到什么作用?
  • RQ5当前方法在汇编级别正确性方面存在哪些局限性?未来工作如何解决这些问题?

主要发现

  • 该集成成功地将幽灵状态和全局不变式从 Iris 扩展到 VST,使对并发 C 程序的模块化和可扩展推理成为可能。
  • Iris 证明模式成功导入 VST,使得复杂分离逻辑蕴含关系的证明更加结构化且易于维护。
  • 系统通过公理化的物理和逻辑原子性规则支持 C11 原子操作的验证,为弱内存模型的验证推理奠定了基础。
  • 成功完成了一个包含 2kLoC Coq 代码的可线性化哈希表的完整验证,包括原子操作以及使用幽灵历史记录的客户端线性化证明。
  • 扩展后的系统能够对具有强正确性保证的细粒度并发数据结构进行验证,尽管原子规则的完整基础验证仍是未来工作。
  • 该方法表明,Iris 的关键创新可被有效迁移到 VST 中,显著增强了其表达能力,同时保持与 CompCert 验证编译管道的兼容性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。