Skip to main content
QUICK REVIEW

[论文解读] Formalizing the Soundness of the Encoding Methods of SAT-based Model Checking

Daisuke Ishii, Saito Fujii|arXiv (Cornell University)|Jun 24, 2020
Formal Methods in Verification参考文献 17被引用 2
一句话总结

本文使用 Coq 证明助手,正式验证了基于 SAT 的模型检测(SMC)编码方法——k-归纳法与 IC3/PDR 的正确性。作者提出了一种模块化、浅层嵌入的 SMC 方法规范,并通过形式化状态序列与路径的引理,证明了其正确性,为可靠 SMC 工具奠定了经验证的基础。

ABSTRACT

One of the effective model checking methods is to utilize the efficient decision procedure of SAT (or SMT) solvers. In a SAT-based model checking, a system and its property are encoded into a set of logic formulas and the safety is checked based on the satisfiability of the formulas. As the encoding methods are improved and crafted (e.g., k-induction and IC3/PDR), verifying their correctness becomes more important. This research aims at a formal verification of the SMC methods using the Coq proof assistant. Our contributions are twofold: (1) We specify the basic encoding methods, k-induction and (a simplified version of) IC3/PDR in Coq as a set of simple and modular encoding predicates. (2) We provide a formal proof of the soundness of the encoding methods based on our formalized lemmas on state sequences and paths.

研究动机与目标

  • 为应对现有 SMC 实现中编码方法可能存在缺陷的迫切需求,提出形式化验证的 SMC 工具。
  • 为关键的 SMC 编码技术提供形式化、机器可检查的正确性证明,确保编码公式能准确反映系统安全性。
  • 开发一种可重用、模块化的 Coq 规范,支持 SMC 方法的验证与原型实现。
  • 形式化状态序列与路径的基础性质,如路径拆分、移位与环检测,以支持对系统行为的推理。
  • 证明经典逻辑仅在最小范围内必要,仅识别出两个关键证明组件依赖排中律。

提出的方法

  • 通过 Coq 中的浅层嵌入方式指定 SMC 方法,将 k-归纳法与简化版 IC3/PDR 建模为参数化编码谓词。
  • 使用初始条件 I 和转移关系 T 定义状态转移系统,形式化路径表示 s[0..i] 与路径谓词 pathT。
  • 将安全性形式化为 ∀i, ∀s[0..i], I(s₀) → pathT(s[0..i]) → P(sᵢ),并通过 E•(I,T,P,k) 将其编码为命题公式。
  • 构建状态序列与路径的理论,包含路径拆分、长度操作与无环条件等引理,以支持正确性证明。
  • 通过路径长度与编码结构的归纳证明,利用重写与路径分解技术处理子目标。
  • 最小化对经典逻辑的依赖,仅将其实现于两个组件:(1) 前端公式转换,(2) 引理 1 中的反证法。

实验结果

研究问题

  • RQ1k-归纳法与 IC3/PDR 的编码方法能否在 Coq 中以模块化、可重用的方式形式化?
  • RQ2这些编码方法的正确性是否可仅通过构造性推理证明,且经典逻辑使用最少?
  • RQ3形式化验证 SMC 算法所需的状态序列与路径的基础引理有哪些?
  • RQ4该形式化规范能否作为可工作的原型 SMC 工具,证明其实际可行性?
  • RQ5证明 SMC 编码正确性所需的最小逻辑假设(如排中律)是什么?

主要发现

  • 作者成功在 Coq 中将 k-归纳法与简化版 IC3/PDR 形式化为模块化编码谓词,既支持规范描述,也可作为原型 SMC 工具执行。
  • 所有四种方法——前向、后向、k-归纳法与 IC3/PDR 的正确性均通过统一的状态序列与路径理论得以证明。
  • 形式化过程仅依赖经典逻辑的两个组件:前端公式转换与引理 1 中的反证法。
  • 所构建的路径理论包含路径拆分、通过 skipn 实现的移位,以及无环条件等引理,对处理复杂路径推理至关重要。
  • IC3/PDR 的证明相对简洁,得益于路径的隐式处理;而 k-归纳法则需要更多显式的路径操作与情形分析。
  • 整个规范与正确性证明已公开发布于 https://github.com/dsksh/coq-smc/,支持复用与扩展。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

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