- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题
Isabelle/HOL验证器的核心算法是什么?
我正在寻找计划元循环评估器级别的东西。
澄清
我只对 Verifier 感兴趣,而不是自动定理证明的策略。
语境
我想从头开始实现一个简单的证明验证器(纯粹是出于教育原因,而不是用于生产用途。)
我想了解 Isabelle/HOL 的核心 Verifier 算法。我不关心用于自动定理证明的策略/代码。
我怀疑核心验证器算法非常简单(而且优雅)。但是,我找不到它。
谢谢!
最佳答案
Isabelle 是证明检查器“LCF 家族”的成员,这意味着您有一个特殊的模块——推理内核——所有推理都在其中运行以产生抽象数据类型 thm
的值.这有点像操作系统内核处理系统调用。相对于内核实现的正确性,您可以通过这种方式生成的所有内容都是“构造正确的”。由于证明者的编程语言环境(标准 ML)具有非常强的静态类型正确性属性,推理内核的构造正确性会延续到证明助手实现的其余部分,这可能是非常巨大的。
所以原则上你有一个相对较小的“可信内核”部分和一个非常大的“应用程序用户空间”。特别是,Isabelle/HOL 的大部分内容实际上是 Isabelle 用户空间中大量的图书馆理论和附加工具(主要是 SML)的集合。
在 Isabelle 中,内核基础结构非常复杂,但与系统的其余部分相比仍然非常小。内核实际上分为“微内核”(the Thm
module)和“纳米内核”(the Context
module)。 Thm
生产 thm
Milner 的 LCF 方法意义上的值,以及 Context
照顾 theory
您产生的任何结果的证书,以及本地推理的证明上下文(特别是在 Isar 证明语言中)。
如果您想了解更多关于 LCF 式证明器的信息,我建议您也查看 HOL-Light这可能是 LCF 系列中最小的现实系统,在人们用它完成了大型应用的意义上是现实的。 HOL-Light 的一大优点是它的实现可以很容易理解,但是这种极简主义也有一些缺点:它并没有完全保护用户在它的 ML 环境中做无意义的事情,它是 OCaml 而不是 SML。由于各种技术原因,OCaml 默认情况下不如标准 ML 那样“安全”。
关于proof - Isabelle/HOL 中的 Verifier 核心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14703998/
我在 Isabelle/HOL 中有一些定义和定理,需要在 HOL 中使用这些相同的定义和定理。手动翻译代码当然是可能的,但很麻烦。有没有(半)自动执行这种翻译的程序? 如果由于某种原因这是不可能的,
我将从 Isabelle/HOL 开始,并完成发行版中包含的 prog-prove.pdf 教程。我被第 4.4.5 节“规则反转”难住了。本教程(本质上)给出了以下示例: theory Struct
我看过很多关于 Isabelle 的语法和证明策略的文档。然而,我对它的基础知之甚少。我有几个问题,如果有人能花时间回答,我将不胜感激: 为什么 Isabelle/HOL 不承认不终止的函数?许多其他
我注意到,在使用 Isabelle/HOL Isar 时,有几种方法可以处理通用量化。我正在尝试以适合本科生理解和重现的风格编写一些证明(这就是我使用 Isar 的原因!),我对如何以一种好的方式表达
我看到了构造 THE x. A在 Isabelle/HOL 标准库的源代码中。这个构造表示什么?好像和SOME x. A差不多. 最佳答案 THE是一个描述运算符,如 SOME ,但具有较弱的公理化。
我试图在 Isabelle/HOL 中证明这个引理。 引理“(0::nat) ≠ undefined” 但是挑剔的人找到了这个和它的否定的反例 引理“(0::nat) = undefined” 这怎么
根据我对 Isabelle 文件的扫描,Sledgehammer 工具仅适用于 Isabelle/HOL。我很好奇伊莎贝尔其他理论的自动化。例如: 伊莎贝尔/采埃孚 伊莎贝尔/FOL 他们是否支持:
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
我试图证明一个引理在某个部分有一个错误的假设。在 Coq 中,我曾经写过“一致”,它会摆脱目标。但是,我不确定如何在 Isabelle Isar 中进行。我试图证明关于我的 le 的引理功能: pri
考虑以下简单过程语言的 Isabelle/HOL 定义: typedecl channel datatype process = Put channel char process | Get "cha
HTTP2 如何解决线头阻塞 (HOL) 问题? 这个问题在http1.1中很常见,不过听说HTTP2已经修复了这个问题。有人可以解释 HTTP2 究竟是如何解决这个问题的吗? 最佳答案 HTTP 线
我有这个 C 代码: while(p->next) p = p->next; 我想证明不管list有多长,当这个循环结束时,p->next等于NULL,EIP指的是下一条指令在这个循环之后。 但是
问题 Isabelle/HOL验证器的核心算法是什么? 我正在寻找计划元循环评估器级别的东西。 澄清 我只对 Verifier 感兴趣,而不是自动定理证明的策略。 语境 我想从头开始实现一个简单的证明
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我正在阅读 "Concrete semantics with Isabelle/HOL"我对高阶逻辑非常感兴趣。我知道普通的一阶逻辑和一些模态逻辑,但我以前几乎没有接触过高阶逻辑及其元理论,所以我想填
我很难理解为什么下面的每个示例都有效或无效,更抽象地说,归纳法与战术 vs Isar 是如何相互作用的。我正在使用最新的 Isabelle/HOL (2016-1) 在 Windows 10 上使用
我需要在一篇论文中做一个演示,该论文在某些时候使用了 Isabelle/Isar 和 Isabelle/HOL。 我尝试在线研究 Isabelle/HOL 和 Isabelle/Isar,以便能够在一
在 Isabelle/HOL 中,我可以用 (SOME _. True) 表示任何类型的任意(但固定)值。有没有更简洁的表示法? 最佳答案 未定义 (我希望我可以只写上面的内容,但答案必须超过 9 个
我正在阅读 Isabelle 教程,并试图阐明我使用 primrec 和 fun 的概念。到目前为止我搜索过的内容,包括答案 here ;我知道 primrec 中的构造函数只能有一个方程,而 pri
我是一名优秀的程序员,十分优秀!