Proof Isabelle/HOL中验证器的核心 问题:

Proof Isabelle/HOL中验证器的核心 问题:,proof,isabelle,Proof,Isabelle,Isabelle/HOL验证器的核心算法是什么 我正在寻找一个方案元循环评估器级别的东西 澄清 我只对验证器感兴趣,而不是自动定理证明的策略 上下文 我想从头开始实现一个简单的证明验证器(纯粹出于教育原因,而不是生产使用) 我想了解Isabelle/HOL的核心验证器算法。我不在乎用于自动定理证明的策略/代码 我怀疑核心验证器算法非常简单(而且优雅)。然而,我找不到它 谢谢 如果您解除Isabelle源的锁定,例如 您将在中找到核心定义 src/Pure/thm.ML 而且,你已经有了这样一个

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

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

澄清 我只对验证器感兴趣,而不是自动定理证明的策略

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

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

我怀疑核心验证器算法非常简单(而且优雅)。然而,我找不到它


谢谢

如果您解除Isabelle源的锁定,例如

您将在中找到核心定义

src/Pure/thm.ML

而且,你已经有了这样一个项目想要解决:

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


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

因此,原则上,您有一个相对较小的“可信内核”部分和一个非常大的“应用程序用户空间”。特别是,大多数Isabelle/HOL实际上是Isabelle用户区的一个图书馆理论和附加工具(主要是SML)的大集合

在Isabelle中,内核基础设施相当复杂,但与系统的其他部分相比仍然非常小。内核实际上分为“微内核”(micro-kernel)和“纳米内核”(nano-kernel)
Thm
产生Milner LCF方法意义上的
Thm
值,
Context
负责为您产生的任何结果提供
理论
证书,以及用于局部推理的证明上下文(特别是在Isar证明语言中)


如果您想了解更多关于LCF样式验证程序的信息,我建议您也看看哪一个可能是LCF系列中最小的真实系统,因为人们已经用它完成了大型应用程序。HOL-Light的最大优点是它的实现很容易理解,但这种极简主义也有一些缺点:它不能完全保护用户在其ML环境(即OCaml而不是SML)中执行无意义操作。由于各种技术原因,OCaml在默认情况下不如标准ML“安全”。

如果您想了解有关HOL Light的更多信息,请查看使用和代码。