Loading AI tools
来自维基百科,自由的百科全书
Isabelle 是一个基于高阶逻辑(higher-order logic)的通用交互式定理证明器。它是一个 LCF(Logic for Computable Functions)风格的证明辅助工具,使用 Standard ML 语言实现。它拥有一个极小化的逻辑核心;这意味着使用它的证明和形式化验证具有较强的的可信度。
Isabelle 是通用的:它提供了一套元逻辑(相当于一个较弱版本的类型论),可用于编码诸多对象逻辑,如一阶逻辑、高阶逻辑、或ZF集合论。最常被用到的对象逻辑是 Isabelle/HOL;而其对集合论的形式化工作则使用了 Isabelle/ZF。Isabelle 的主要证明手段利用了高阶版本的归结原理(resolution),基于高阶的合一(unification)。
尽管 Isabelle 主要采取交互式的证明方式,它同时亦提供了若干高效的自动化推理工具,例如项重写引擎、tableaux 证明器、以及各种判定过程。借由 sledgehammer 界面,它还可以调用外部的 SMT 求解器(包括 CVC4)和其他归结式定理证明器(包括 E 和 SPASS)。
Isabelle 被用于形式化数学和计算机科学中的许多定理,诸如哥德尔完备性定理、哥德尔关于选择公理一致性的证明、素数定理、各种安全协议的正确性、程序语言语义的特性。这些定理形式化工作的维护通过形式化证明存档(Archive of Formal Proofs)进行;截至 2019 年它已包含逾 500 个条目,两百万行证明。[2]
Isabelle 定理证明器是开源软件,其源码在 BSD license 下授权发布。
“Isabelle”由其作者 Lawrence Paulson 命名;这名字取自于法国计算机科学家 Gérard Huet 的女儿。[3]
Isabelle 支持两种不同风格的的证明书写方式:过程式和声明式。 过程式风格的证明主要由一系列证明策略(tactics)或过程的依次运用组成;它能够较好地反映数学家思考证明的过程,但通常较难阅读,因为它无法直接体现每步推演的结果。 声明式风格的证明(由 Isabelle 内置的证明语言 Isar 支持)则与之相反,它以直接的方式描述了每一步确切的数学推演,因此较容易被阅读和人工检查。
在较新版本的 Isabelle 中,过程式风格的证明已不建议再使用。形式化证明存档(Archive of Formal Proofs)亦推荐使用声明式风格来书写证明。[4]
例如,下面是一个声明式风格的“2的算术平方根是无理数”的证明:
theorem sqrt2_not_rational: "sqrt (real 2) ∉ ℚ" proof let ?x = "sqrt (real 2)" assume "?x ∈ ℚ" then obtain m n :: nat where sqrt_rat: "¦?x¦ = real m / real n" and lowest_terms: "coprime m n" by (rule Rats_abs_nat_div_natE) hence "real (m^2) = ?x^2 * real (n^2)" by (auto simp add: power2_eq_square) hence eq: "m^2 = 2 * n^2" using of_nat_eq_iff power2_eq_square by fastforce hence "2 dvd m^2" by simp hence "2 dvd m" by simp have "2 dvd n" proof - from ‹2 dvd m› obtain k where "m = 2 * k" .. with eq have "2 * n^2 = 2^2 * k^2" by simp hence "2 dvd n^2" by simp thus "2 dvd n" by simp qed with ‹2 dvd m› have "2 dvd gcd m n" by (rule gcd_greatest) with lowest_terms have "2 dvd 1" by simp thus False using odd_one by blast qed
除数学证明以外,Isabelle 亦被广泛应用于计算机软件及硬件的形式化验证:
Isabelle 的网站上有一个使用 Isabelle 的研究项目列表[6]。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.