【问题标题】:Core of Verifier in Isabelle/HOLIsabelle/HOL 中的 Verifier 核心
【发布时间】:2013-02-05 09:24:15
【问题描述】:

问题

Isabelle/HOL验证器的核心算法是什么?

我正在寻找方案元循环评估器级别的东西。

澄清

我只对 Verifier 感兴趣,而不是自动定理证明的策略。

上下文

我想从头开始实现一个简单的证明验证器(纯粹出于教育原因,而不是用于生产用途。)

我想了解 Isabelle/HOL 的核心 Verifier 算法。我不关心用于自动定理证明的策略/代码。

我怀疑核心 Verifier 算法非常简单(而且优雅)。但是,我找不到它。

谢谢!

【问题讨论】:

    标签: proof isabelle


    【解决方案1】:

    Isabelle 是“LCF 家族”证明检查器的成员,这意味着您有一个特殊的模块——推理内核——在其中运行所有推理以生成抽象数据类型 thm 的值。这有点像操作系统内核处理系统调用。相对于内核实现的正确性,您可以通过这种方式生成的所有内容都是“构造正确的”。由于证明者(Standard ML)的编程语言环境具有非常强的静态类型正确性属性,推理内核的构造正确性会延续到证明助手实现的其余部分,这可能非常巨大。

    所以原则上你有一个相对较小的“受信任的内核”部分和一个非常大的“应用程序用户空间”。特别是,Isabelle/HOL 的大部分内容实际上是 Isabelle 用户空间中大量的图书馆理论和附加工具(主要是 SML)的集合。

    在 Isabelle 中,内核基础结构非常复杂,但与系统的其他部分相比仍然非常小。内核实际上分层为“微内核”(the Thm module)和“纳米内核”(the Context module)。 Thm 产生 Milner 的 LCF 方法意义上的 thm 值,Context 负责为您产生的任何结果提供 theory 证书,以及本地推理的证明上下文(尤其是在 Isar 证明语言中) .

    如果你想了解更多关于 LCF 风格的证明者,我建议你也看看HOL-Light,它可能是 LCF 系列中最小的现实系统,在人们用它完成大型应用的意义上是现实的。 HOL-Light 最大的优点是它的实现可以很容易理解,但是这种极简主义也有一些缺点:它并没有完全保护用户在它的 ML 环境中做无意义的事情,它是 OCaml 而不是 SML。由于各种技术原因,OCaml 默认情况下不如标准 ML “安全”。

    【讨论】:

    【解决方案2】:

    如果你解压 Isabelle 源,例如

    http://isabelle.in.tum.de/dist/Isabelle2013_linux.tar.gz

    您将在

    中找到核心定义

    src/Pure/thm.ML

    而且,您已经有这样一个项目要处理:

    http://www.proof-technologies.com/holzero/

    后来补充:另一个更严肃的项目是

    https://team.inria.fr/parsifal/proofcert/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      相关资源
      最近更新 更多