自动定理证明的哪种范式适合数学原理式形式化?


11

我拥有一本书,该书的灵感来自罗素(Russell)的数学原理(Principia Mathematica)和逻辑实证主义,试图通过确定公理并从中推导定理来形式化特定领域。简而言之,它试图为自己的领域做PM试图为数学做的事情。像PM一样,它是在自动定理证明(ATP)成为可能之前编写的。

我试图在现代ATP系统中表示这些公理,并试图推导定理,这些定理最初是作者(手动)推导的。我以前没有使用过ATP系统,并且有很多选择(HOL,Coq,Isabelle等),每种选择都有其长处,短处和预期的应用,因此很难确定哪种选项适合我的特定需求目的。

作者的形式主义与PM非常相似。存在类(集合?),类的类,等等,直到6个层次的层次。有一阶逻辑,可能还有更高阶的逻辑。考虑到与PM的联系,我最初研究了Metamath,因为其他人已经在MetaMath中证明了PM的几个定理。但是,Metamath当然是证明者,而不是ATP系统。

通过对各种ATP系统的描述,我看到了几个特征,例如Church类型理论的实现,构造类型理论,直觉类型理论,类型/非类型集理论,自然推论,λ演算类型,多态性,递归函数理论以及平等存在与否。简而言之,每个系统似乎实现了非常不同的语言,并且必须适合于形式化不同的事物。我认为现有的用于形式化数学的库与我的目的无关。

对于我在选择ATP时应寻求的特性方面的任何建议,或在阅读此问题后可能有的其他建议,将不胜感激。作为参考,这是本书的示例页面。不幸的是,像PM一样,它采用Peano-Russell表示法。

书中的页面

这本书-

“生物学中的公理方法”(1937年),JH Woodger,A。Tarski,WF Floyd

公理始于唯物论。例如,

xααxyxzαy

S=Dfx^α^{αPx:.(y):yPx..(z).zα.PyPzΛ}

再次注意,这是Peano-Russell表示法(Principia表示法)。

后来的公理具有生物学内容,例如,

7.4.2当孟德尔类的两个成员的配子成对地结合形成合子时,任何给定的对结合的概率都等于另一对。

据我了解,这是孟德尔遗传学的假设。

我省略了此符号,因为它的长度为三行,并且以先前定义的内容为基础。

一个定理的例子-

定理

这显然在孟德尔遗传学中进行了有意义的解释,我不理解这不是生物学的历史学家。在书中,它是手工推论的。

谢谢!


完全遵循本书是否具有历史意义,或者您可以仅提取本书的要旨(基本设置和公理)并将其理论形式化为可用的现代系统?
Andrej Bauer

@andrej:是的,我的目标是在现代系统中提取和确定要点。不必推断书中手工推导的每个定理。相反,从书中的公理推论出书中没有的定理是很酷的。
Atriya 2014年

5
在这种情况下,您应该理解文本,然后在看起来最适合您目的的证明助手和/或定理证明者那里进行阅读。
Andrej Bauer

Answers:


8

Mathematica原理很大程度上是对20世纪初数学逻辑中发现的各种悖论的回应。但是,经常被人们夸赞为“难以理解的杰作”的作品本身有些笨拙,并且已经建立了更现代的基础。要描述大多数数学,您有几种选择:类别理论是一种,类型理论作为lambda演算的扩展已在某些项目中流行,但最能理解和最基础的是集合论。

集合论有几种不同的表述。Zermelo Frankel具有选择公理的集合论是最正统的,被集合论爱好者称为。Tarski-Grothendiek集理论是另一种与相似的理论,其中包括Tarski关于大类推理的公理。这些对于验证很有趣,但是对于自动定理的证明则有些困难,因为替换的公理模式接受无限数量的公理,这些公理代表了实现的挑战。虽然这些基础对于证明验证系统是完全合理的,例如Mizar的Tarski-Grothendiek集合论和Metamath的ZFC ZFCZFC,对于一个实际的定理证明系统,最好进行有限公理化。

Von Neumann–Bernays–Gödel集理论或可能是最合适的基础,该理论接受有限公理化,因为它是一种既具有适当分类又具有集合本体的两类理论。此外,已经证明是的保守扩展,因此的任何定理都是的定理NBGNBGZFCNBGZFC。在我看来,该理论最适合自动推理的原因是它可以在一阶逻辑中表达,这意味着可以进行有效,完善和完整的证明演算,而有限公理化意味着可以与一阶解析一起使用,这为我们提供了整洁的结果:如果陈述是可以决定的,最终将找到证明。

命题逻辑的表现力不足,而高阶逻辑虽然更具表现力,却不接受有效,健全和完整的证明演算。具有集合论的一阶逻辑使您可以表示和映射高阶逻辑理论,因此对于基础而言,这是最理想的选择……除了可能出现不确定的陈述(由于Gödel)之外,这就是为什么具有足够数量级的一阶理论的原因通常被描述为半确定的。

Art Quaife在以下方面做了一些工作:基础数学理论的自动化发展,在那里他以子句形式在一阶逻辑中实现了,以便基于分辨率的定理证明者(Otter)和出色的解决方案参考可以使用它。此类工作的基础是Elliott Mendelson的《数学逻辑导论》。NBG

现在,现代证明助手通常不再关注Principia Mathematia范式的基础,而对于日常工作的定理证明更为有用,因此他们对高阶逻辑,SAT / SMT解决方案,类型理论以及其他方面的片段提供了一些支持。更加非正式和基础性较小的方法。但是,如果您想做一些类似Principia Mathematica的事情,那么具有有限公理化的一阶集理论的一阶分解定理证明者是理想的。

关于自动化定理如何从这些基础中发动攻击的一些示例,千个定理问题(TPTP)站点有很多问题,您会注意到,数论中的许多基础问题都建立在集理论。如果有时间,请在其网站上查看NUM006-1.p:哥德巴赫猜想。您可以尝试运行它,如果可以确定,最终将找到一个证明。NBG

鉴于书中的定理是用集合论的语言编写的,因此几乎肯定是定理。那本书中的遗传公理几乎可以肯定地表示为对集合理论谓词的定义,这与Peano算术在表示为谓词的定义非常相似。从那里开始,按照任何ATP的解决程序进行操作。选择要证明的陈述,将其取反,转换为Skolem正常形式,然后转换为子句形式,并遵循解决方案。当找到空子句时,您发现了一个矛盾,证明了这一说法。NBGNBG

如果您想尝试根据集合论定义理论,那么您要做的任务就是找到与集合论分开的关系谓词定义,这将使您能够根据集合论来进行谓词的构建。同样,这方面的一个例子是我们如何在集合论中定义Peano算术,它本身就没有数字,加法,乘法甚至相等的定义。作为对关系(如相等性)的一组理论定义的示例,我们可以根据隶属度来定义它,如下所示:

xy( z(z x z y) x = y)

有一点警告:这方面的学习曲线确实非常陡峭。如果您打算追求这一点,那么像我的经验一样,您可能会在解决完整问题之前已经找到了几年时间。在承担将其嵌入所有内容的基础语言这一艰巨任务之前,您可能希望从较不基础的方法研究该理论。毕竟,您不一定需要推理无数的基因混合。


1
非常感谢您提供详尽详尽的答案!几个问题:1. Wikipedia指出“对于大多数普通数学定理的证明,替换公理不是必需的。”并且它不是Z的原始公理之一(由F加上)。没有它,我的定理是否有可能得到证明,从而不需要NBG?当然,我想如果可能的话,没有自动定理证明器会允许使用{ZFC-替换公理模式}。
Atriya 2014年

2.鉴于一阶逻辑+集理论最适合基础,我认为出于我的目的,HOL / Isabelle / PVS / etc(所有高阶)都是过大的?而且,所有基于类型理论的理论(Coq等人)都不适合吗?因此,像Prover9 / Vampire / SNARK这样的游戏是否合适?我对SNARK已有一些经验。它可以通过解析以相等的方式处理多种一阶逻辑,但我不确定如何在其中表示集合论。
Atriya 2014年

1
自动定理证明者可以使用公理模式,但是这使实现变得困难。Prover9不支持它们。据我所知,HOL,Isabelle和Coq都支持一阶集理论,并且可能对您的项目非常适合。即使您可以在NBG中嵌入其他理论,也并非绝对必要。我们不必在NBG中嵌入Peano算术即可证明有关数字的事情……但这确实有助于学习和理解逻辑结构。
dezakin

之后,您可以始终根据成员谓词定义理论谓词,从而将您的理论嵌入到集合论中。我不会担心立即使您的项目成为绝对基础。以后可以将其卡入。
dezakin

看来,几乎所有证明者(甚至包括与Coq,HOL和Prover9不同的证明者)都可以用于我的项目。在这种情况下,什么是明智的决策策略?除了SNARK,我不熟悉其他所有内容。“理想”是在所提供的公理系统中发现新定理。
Atriya 2014年

8

几点:

  1. 据我所知,Principia Mathematica本质上是使用类型化的一阶逻辑对集合论进行形式化。因此,使用Prover 9或可能的ACL2等一阶自动定理证明来规范您的陈述将很诱人。但是,我在其中看到了几种集合理论构造(例如,),这些构造通常在一阶ATP中不能很好地发挥作用。,

  2. 正如安德烈(Andrej)所建议的那样,任何现代的交互式证明助手都肯定具有表达形式和证明您的陈述的能力。实际上,由于似乎存在一些包括算术语句的语句,因此使用像IsabelleCoqHOL这样的系统已经很明智了,这些系统已经具有广泛的理论来处理算术语句。我对现代的强调不是巧合:自Automath以来,可用性已取得了长足的进步,老实说,您可能会因为使用90年代以来未曾积极开发的任何东西而对自己造成损害(如果您能得到一个上班!)

  3. 最后,ITP和ATP具有颇具挑战性的学习曲线,您不应期望能够将这些定理输入到像编写证明那样的系统中。预期会有严重的挫败感和时间浪费,尤其是在最初的几个月(是,几个月)。在进入主要的形式化之前,您肯定首先需要完成一些教程。LATEX


谢谢!这是我一直在寻找的一般建议。将此答案标记为已接受。随着我的进步,我可能会遇到更具体的技术问题。
Atriya 2014年

集合论是为一阶逻辑建立的。您只需一个谓词就可以将所有数学简化为一阶理论:隶属关系。在这里,您可以构造并集,交集,子集,适当子集和其他关系的定义。Prover9完全合适。
dezakin 2014年

理论上?是。在实践中?如果使用集合论定义自然数,那么像Prover9这样的系统将无法证明最基本的语句,例如总排序。从本质上讲,类似于集合论的系统需要由ATP系统有效处理的许多特定启发式方法。N
科迪2014年

Prover9经常使用自然数的设定理论构造。检查TPTP中的数论问题和数论公理。他们将数论定义为对集合论的定义。ATP要求定理证明者的试探法只是在搜索空子句时从哪个子句中选择可用列表,而集合论并不是对此的任何特殊例外。其他理论在集合论中由关系谓词定义。
dezakin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.