Skip to main content
QUICK REVIEW

[论文解读] Formal Proofs of Tarjan's Algorithm in Why3, Coq, and Isabelle

Ran Chen, Cyril Cohen|arXiv (Cornell University)|Oct 29, 2018
Logic, programming, and type systems参考文献 8被引用 4
一句话总结

本文使用三种不同的证明助手——Why3、Coq 和 Isabelle/HOL——对寻找有向图强连通分量的 Tarjan 算法进行了形式化正确性证明。作者以函数式、抽象的层次实现该算法,使用有限集合、栈和映射,确保线性时间复杂度,并在所有三个系统中统一证明其正确性,同时突出展示了各工具在表达能力、自动化程度和验证风格上的差异,证明了对复杂图算法进行跨工具形式化验证的可行性。

ABSTRACT

Comparing provers on a formalization of the same problem is always a valuable exercise. In this paper, we present the formal proof of correctness of a non-trivial algorithm from graph theory that was carried out in three proof assistants: Why3, Coq, and Isabelle.

研究动机与目标

  • 使用三种不同的证明助手对 Tarjan 算法的强连通分量查找过程进行形式化验证。
  • 比较 Why3、Coq 和 Isabelle/HOL 在非平凡算法上的表达能力、自动化程度与验证工作流。
  • 实现一种统一、抽象且可读性强的形式化,同时保持算法的线性时间复杂度。
  • 评估在异构证明系统之间形式化复杂图算法所面临的挑战与优势。
  • 为未来跨工具比较提供基础,并为该算法的指令式实现提供形式化验证支持。

提出的方法

  • 以函数式风格使用有限集合、栈和映射实现算法,抽象出低级数据结构。
  • 采用基于核心不变量的证明策略,所有三个系统均依赖相同的逻辑论证。
  • 通过相互递归的函数 dfs1 和 dfs 实现深度优先遍历、栈管理与连通分量检测。
  • 关键辅助函数包括 add_stack_incr(入栈并分配序列号)、split(从栈中弹出直到某个顶点)以及 set_infty(将顶点标记为非活跃状态)。
  • 证明结构分别采用归纳谓词(Why3)、依赖类型与高阶逻辑(Coq),以及 Isar 配合自动化(Isabelle/HOL)。
  • 终止性通过在 Isabelle 中使用良基关系与 domintros 处理,Coq 使用显式上界,Why3 依赖自动定理证明器检查。

实验结果

研究问题

  • RQ1Why3、Coq 和 Isabelle/HOL 的设计选择与表达能力如何影响 Tarjan 算法形式化证明的结构与可维护性?
  • RQ2在基础逻辑不同的三种证明助手之间,能否复用相同的逻辑论证?
  • RQ3在形式化复杂图算法时,自动化、可读性与验证稳定性之间存在哪些权衡?
  • RQ4自动化程度的有无如何影响形式化证明的开发与调试?
  • RQ5单一抽象形式化能否作为多个证明系统中形式化验证的共同基础?

主要发现

  • 该形式化证明在所有三个系统——Why3、Coq 和 Isabelle/HOL——中成功实现,使用相同的算法抽象与核心逻辑。
  • Why3 实现了最高程度的自动化,依赖外部 SMT 和超逻辑推理证明器,但需精心编写规格以确保可信的证明检查。
  • Coq 的依赖类型支持了高度表达且简洁的形式化,但证明过程需要更多手动干预与专业知识。
  • Isabelle/HOL 在表达能力与自动化之间取得良好平衡,Sledgehammer 显著辅助了证明发现,Isar 提供了人类可读的证明结构。
  • Isabelle/HOL 中的证明比原始 Why3 版本缩短了 50%,表明其可读性与可维护性得到提升。
  • 各系统处理终止性的方式不同:Coq 使用显式上界,Isabelle 使用良基关系,Why3 依赖可信证明器检查,且所有方法均经过形式化验证。

更好的研究,从现在开始

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

无需绑定信用卡

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