自动推理(三)

der(x×x)⇒。(x×der(x))+(der(x)×x)r4

⇒。(x×1)+(der(x)×x)通过R1

⇒。(x×1)+(1×x)通过R1

此时,由于任何规则(R1) - (R4)都不适用,因此无法进一步降低,并且重写过程结束。 获得的最终表达式称为正常形式,其存在激励以下问题:是否存在表达式,其减少过程在应用规则时(R1) - (R4)? 或者,更一般性:在一组重写规则下将始终停止,对于任何给定的表达式,在大约许多规则应用之后,将始终停止任何给定的表达式? 这一基本问题称为重写系统的终止问题,我们说明了系统(R1) - (R4)符合终止条件。

有可能在减少表达式时,可以以多种方式应用重写系统的一组规则。 实际上是系统(R1) - (R4)中的情况,其中在DER(x×x)的减少中,我们可以将R1施加到第二子表达式(x×der(x))+ der(x)×x),如下所示:

der(x×x)⇒。(x×der(x))+(der(x)×x)r4

⇒。(x×der(x))+(1×x)通过R1

⇒。(x×1)+(1×x)通过R1

在这种替代行动方案之后,减少终止于与之前情况相同的正常形式。 但是,这一事实不应被视为理所当然:如果只有在应用其规则的每种表达式的顺序中才能才能始终最终才能将其始终结束,因此才会被视为(全球)Confluitent。 可以表明(R1) - (R4)是融合的,因此,我们有权说:“计算表达的衍生物”(而不是简单地“衍生物)。 将更多规则添加到系统中,以使其更加实际可能具有不希望的后果。 例如,如果我们添加规则

u +0⇒u

(R1) - (R4)那么我们将能够进一步减少某些表达,而是以失去汇合的价格。 以下还原表明Der(x + 0)现在有两个正常形式:计算

der(x + 0)⇒。der(x)+ der(0)r3

⇒。1 + der(0)通过R1

给出一种正常形式,和

der(x + 0)⇒。(x)r5

⇒。1。通过R1

给另一个。 添加规则

德国(0)⇒0

将允许将1 + der(0)至1 + 0的进一步减少,然后,通过R5。尽管存在这种新规则的存在实际上可以增加替代路径的数量 - DER(x + 0)现在可以以四种可能的方式减少 - 它们最终以相同的正常形式最终增加这不是巧合,因为它可以表明(R6)实际恢复汇合。 这激励了另一个基本问题:在什么条件下,一个非汇益系统可以制成等效的汇合? Knuth-Bendix完成算法(Knuth&Bendix 1970)给出了这个问题的部分答案。

术语重写,如任何其他自动扣除方法,需要策略来指导其应用程序。 涟漪(Bundy,Stevens&Harmelen 1993,Basin&Walsh 1996)是一种启发式,其起源于归纳定理证明,这些原因在于使用注释选择性地限制重写过程。 SuperThion Calculus是一定的一阶逻辑的微积分,其结合了一阶分辨率和Knuth-Bendix排序平等的概念。 叠加是驳斥完整的(Bachmair&Ganzinger 1994)并且是在许多定理普罗瓦的核心,最重要的是E等公正定理箴言(Schulz 2004)和吸血鬼(Voronkov 1995)。 叠加已扩展到高阶逻辑(Bentkamp等人.2021)。

2.6数学归纳

数学诱导是数学与计算机科学的定理中的一个非常重要的技术。 在涉及递归定义或某种形式的重复的物体或结构方面所述的问题总是需要数学诱导它们的求解。 特别地,关于计算机系统的正确性需要感应和有效实现感应的自动推理程序的推理需要具有重要应用。

为了说明对数学诱导的需求,假设属性φ为真的零,也是如果数字的True,则其继承者则为True。 然后,通过我们的演绎系统,我们可以推断出任何给定的数字n,φ为真的,φ(n)。 但我们不能推断出所有数字,∀xφ(x)是真的; 此推断步骤需要数学归纳规则:

α(0)[α(n)-α(succ(n))]

∀xα(x)

换句话说,证明∀xα(x)证明α(0)是这种情况,并且从假设α(n)的假设中遵循α(succ(n))。 在推理系统中实施诱导提出了非常具有挑战性的搜索控制问题。 其中最重要的是能够确定在证明期间将应用感应的特定方式,即找到适当的感应模式。 相关问题包括选择适当的感应变量,并识别基础的所有可能的情况和归纳步骤。

Boyer-Moore Theorem Prover(Boyer&Moore 1979)一直是最成功的自动归纳定理证明的实施。 在格雷滕的精神中,博伊尔和摩尔对人们如何通过数学归纳来证明定理感兴趣。 他们的定理先驱写入功能编程语言LISP,这也是定理所代表的语言。 例如,为了表达添加的换向,用户将进入LISP表达式(等于(加x y)(加y x))。 系统中定义的一切都是功能术语,包括其基本“谓词”:t,f,等于x y和x y,而不是x,如果x y z等。通过重写具有递归定义的术语来进行的证明,最终会降低结论的陈述谓词。 Boyer-Moore定理箴言已被用来检查一些非常深刻的定理(Boyer,Kaufmann&Moore 1995)的证明。 Lemma缓存,问题陈述泛化和证明规划是在归纳定理证明的技术(Bundy,Harmelen&Hesketh 1991)。

ACL2(Kaufmann&Moore 1996)是Boyer-Moore先驱的继承人,并取代,旨在用于大型硬件和软件验证项目。 计算机硬件和软件的型号可以正式表示为由“状态”组成的“状态”,作为数学对象以及“转换”作为状态对象的函数或关系。 ACL2使用常见常见LISP的应用子集作为自然语言,以便表达这些概念以及逻辑上的模型及其属性的自然语言(Boyer&Moore 1997)。 ACL2支持用户在建立证据中,但其主要作用是防止逻辑错误。 在一个准则 - “黑匣子”时尚,“是ACL2的好用户,您不必了解定理证明书的工作原理。 您只需要了解如何与之交互“(Kaufmann&Moore 2024 [其他互联网资源]),但如果需要,用户可以轻松地命令ACL2以供电以供检查。 ACL2的作者分享了ACL2用户很少阅读成功证明,并且倾向于专注于失败的证据中的子站点; 然后,他们试图弄清楚如何证明这些目标并提供ACL2,并提供指导。 虽然ACL2已在很大程度上应用于微处理器设计的正式验证(请参阅第4.4节“硬件的正式验证),但ACL2已经发现许多我们在此处提及三个领域的许多应用:代数简而言之的标准化定理形式化(Lambán,Martín-Mateos,Rubio&Ruiz-Reina 2012),正式验证Buchberger算法计算GröbnerS的多项式理想(Medina-Buro,Palomo- Lozano&Ruiz-reina 2010),以及有限组理论的形式化,达到了Sylow定理的应用(Russinoff 2023)。

3.其他逻辑

3.1高阶逻辑

高阶逻辑与一阶逻辑的不同之处在于允许通过函数和谓词的量化和谓词。 声明“任何两个人以一种方式彼此相关”可以在高阶逻辑中以∀x∀y∃rr(x,y)合法地表达,但不是一阶逻辑。 高阶逻辑本质上比一阶逻辑更具表现力,并且对实际的数学推理更近。 例如,设置有限性的概念不能表示为一阶概念。 由于其丰富的表现力,它不应该令人惊讶的是,为高阶逻辑实施自动定理先驱比一阶逻辑更具挑战性。 这主要是因为统一在高阶逻辑中比在一阶案例中更复杂:统一的术语并不总是拥有最普遍的统一机,而高阶统一本身是不可判定的。 最后,鉴于高阶逻辑不完整,始终存在任何自动推理程序的证明完全遥不可及。

用于自动化一阶扣除的方法可以适应高阶逻辑。 TPS(Andrews等,1996,Andrews等,2006年)是一种用于高阶逻辑的定理证明系统,该系统使用教会的类型的λ-微积分作为其逻辑表示语言,并基于包含Huet的连接型扣除机制统一算法(Huet 1975)。 作为TPS的能力的样本,该程序自动证明了有限组的子集是有限的,所以选择的公理的几种配方中的等价物,并且克朗的定理,其中一套具有比成员更多的子集更多的子集。 该计划证明了后者通过断言,没有关于个人的职能到个人的功能,并通过对角线论证进行证明。 HOL(Gordon&Melham 1993)是另一种主要用作开发硬件和软件安全关键系统的援助的高级证明开发系统。 HOL是基于LCF方法的互动定理证明(Gordon,Milner&Wadsworth 1979),它建立在强类型的功能编程语言ML上。 HOL,如TPS,可以在自动和交互模式下运行。 欢迎后期模式的可用性,因为最有用的自动化推理系统可能是那些强调互动定理证明(Farmer,Guttman&Thayer 1993)的那些,并且可以用作在人类指导下运营的助手。 (哈里森2000)讨论了浮点算法的验证和在用户的指导下通过HOL光证明的非平凡数学特性。 Isabelle(Paulson 1994)是一种通用,高阶的框架,可用于消除Defuctive Systems的快速原型设计。 通过使用许多句法和演绎工具,可以在Isabelle的Metalogic内配制对象逻辑。 Isabelle还提供了一些现成的定理证明环境,包括Isabelle / Hol,Isabelle / ZF和Isabelle / BeL,可用作用户的应用程序和进一步发展的起点(Paulson 1990,Nipkow和Paulson 2002)。 Isabelle / ZF已被用于证明所选的公理的等效配方,顺序顺序原理的配方,以及关于基本算术的关键结果,对于任何无限主义的κ,κόκκκκ(Paulson&Grabczewski 1996)。

为了帮助证明在互动证明中产生的更高阶定理和放电目标,用户可以通过大锤(Paulson 2010)来询问Isabelle / Hol,以旨在结合互补功能的子系统调用外部一阶普通不同类型的自动推理系统,包括SMT求解器(参见SAT溶剂的部分; Blanchette等。2013)。 Leo-II(Benzmüller等,2015年)也是一项基于决议的自动定理箴言,用于高阶逻辑,已应用于各种问题,最重要的是在Gödel在上帝存在的本体论证的自动化中(见第4.6节逻辑和哲学)。 Leo-II已被Leo-III取代,这实现了一个高阶有序的发挥性积分,在多功能药物黑板架构内运行,用于并行证明搜索; 该架构允许独立运行使用Leo-III的本机证明演算的代理,以及以合作方式,用于外部,专业,第一和高阶定理普罗维尔和模型查找器的代理商(Benzmüller,Steen&Wisniewski 2017年,Steen和Benzmüller2021)。

3.2非古典逻辑

非古典逻辑(HAACK 1978),如模态逻辑,直觉逻辑,多价逻辑,自动血对逻辑,非单调推理,兼职和默认推理,相关逻辑,滞后逻辑,等等,越来越多地获得自动推理社区的注意力。 其中一个原因是将自动扣除技术扩展到新逻辑领域的自然希望。 另一个原因是需要将非古典逻辑机械化为试图为人工智能提供合适的基础。 第三个原因是渴望攻击组合太大的一些问题,以通过纸和铅笔处理。 实际上,自动非古典逻辑中的一些工作提供了在工作中自动推理程序的主要示例。 为了说明,Ackerman常量问题要求相关性逻辑R中的非等效公式的数量。实际上存在3,088个这样的公式(Slaney 1984),并且通过“将”它“在较低和上限之间”夹在中间“中找到该数量,一个涉及约束2040020元素模型的庞大宇宙的任务,寻找那些拒绝R的模型。如果没有自动推理计划的帮助,这一结果是不可能获得的。

有三种基本方法可以自动解决非古典逻辑中的问题(MCRobie 1991)。 当然,一种方法是尝试机械化非古典演绎结石。 另一个人已经简单地在一阶逻辑中提供了对问题的等效配方,并让经典的定理先词谚语处理它。 第三种方法是在分辨率或连接矩阵方法应用的一阶框架中制定非古典逻辑的语义。 (Pelletier等人2017)描述了一种自动推理系统,用于解析逻辑,其既是“间接”方法,翻译和真实价值方法,以证明其定理。

模态逻辑

模态逻辑在计算科学中找到广泛的用途作为知识和信仰逻辑,程序的逻辑以及分布式和并发系统的规范。 因此,在诸如K,K4,T,S4或S5之类的模态逻辑中自动推理的程序将具有重要的应用。 除S5外,这些逻辑是否共享了古典逻辑的一些重要的传言结果,例如剪切消除,因此可以为它们提供无切割的(模态)序列结石,以及自动化的技术。 连接方法(Andrews 1981,Bibel 1981)在帮助了解这些模态搜索结石引起的搜索空间中的冗余来源方面发挥了重要作用,并且不仅为模态逻辑提供了统一框架,还提供了一个统一框架直觉和古典逻辑也(Wallen 1990)。 目前努力自动化模态逻辑推理围绕上述翻译方法旋转,即将模态逻辑嵌入到经典逻辑中,然后使用现有的自动推理系统来证明前者的定理。 (Benzmüller&Paulson 2013)显示如何将量化的模态逻辑嵌入到简单类型理论中,证明了嵌入的声音和完整性,并用简单的实验说明了现有的高阶定理普通可用于自动化证据模态逻辑。 该方法也可以扩展到高阶模态逻辑(Benzmüller和Paleo 2015)。 事实上,经典高阶逻辑的嵌入可以用作普遍推理的手段(Benzmüller2019); 也就是说,嵌入提供了一种普遍的逻辑推理框架,该逻辑推理框架使用经典的高阶逻辑作为可以表示各种其他经典和非古典逻辑的Metalogic。 关于自由逻辑和类别理论的语义嵌入方法(Benzmüller和Scott 2020)提供了普遍性索赔的进一步证据。 嵌入产生许多对自动扣除的实际益处:普遍性,统一性,符号,推理的表现力,以及已知声音的现有功能强大自动定理的工具的准备好可用性。

直觉逻辑

有不同的方式,其中可以自动化直觉逻辑。 一个是直接实施Gentzen的搜索和自然扣数计算的直觉版本,LJ和NJ。 这种方法继承了这些结石所享有的更强的归一化结果,允许比其经典对应物更紧凑的机械化。 机械化直觉逻辑时的另一种方法是利用其与模态逻辑S4的语义相似性,并储存在S4的自动实现上。 自动化直觉逻辑具有软件开发中的应用,因为编写符合规范的程序,对应于在直觉逻辑中证明规范的问题(Martin-löf1982)。 自动证明施工过程的系统将在算法设计中具有重要应用,也具有建设性的数学。 NuPRL(Constably等,1986)是一种支持特定数学理论的计算机系统,即建设性类型理论,其目的是在证明开发过程中提供帮助。 重点是基于逻辑的工具,以支持编程和实施正式计算数学。 多年来,NuPRL项目的范围从“验证 - 课程”扩展到“系统 - 作为”。 类似的精神和基于咖喱霍华德同构,COQ系统将其在诱导结构微积分中的证据正式,一种λ-微积分,具有富含类型的类型,包括依赖类型(衔接和Hyet 1988,Co配套和Paulin-Mohring 1988)。 与NuPrl一样,CoQ旨在帮助从其正式规格开发数学证明以及计算机程序。

4.应用程序

4.1逻辑编程

逻辑编程,特别是语言prolog(colmerauer等,1973)所代表,可能是最重要,最广泛应用的自动定理证明。 在20世纪70年代初期,发现逻辑可以用作编程语言(KOWALSKI 1974)。 从其他传统形式的编程中区分逻辑编程是逻辑程序,为了解决问题,不要明确说明如何执行特定计算; 相反,逻辑计划陈述了问题所在,然后委托实际解决底层定理箴言的任务。 在Prolog中,定理先驱基于改进称为SLD分辨率的分辨率。 SLD分辨率是线性输入分辨率的变化,包括选择要解决的下一个文字的特殊规则; SLD分辨率还考虑了这一事实,在计算机的内存中,条款中的文字实际上是排序的,也就是说,它们形成了一个序列而不是集合。 Prolog计划包括规定已知事实和规则的条款。 例如,以下条款对飞行连接进行了一些断言:

航班(多伦多,伦敦)。

航班(伦敦,罗马)。

飞行(芝加哥,伦敦)。

飞行(x,y): - 飞行(x,z),飞行(z,y)。

该条款飞行(多伦多,伦敦)是一场飞行(X,Y): - 航班(X,Z),航班(Z,Y)是一项规则,按照约定作为反转条件(符号“: - ”表示“如果”;逗号意味着“和”;条款从大写开始是变量)。 前者在多伦多和伦敦之间存在航班联系; 后者陈述了城市x和y之间的飞行,如果对于一些城市z,x和z之间存在x和z之间的飞行,其中z和y之间的比喻程序中的子句是一种特殊类型的喇叭子句,精确的喇叭条件是一个正面的一个积极文字:事实是计划没有负面文字的条款,而规则至少有一个负面文字。 (请注意,在标准子句符号中,前一个示例中的程序规则将被写入飞行(x,y)∨~flight〜∨~flight〜∨~flight〜∨~flight~~flight(z,y)。)计划规则的具体形式是有效地表达表单的陈述:“如果这些条件结识这里共同满足,那么这个另一个事实将遵循”。 最后,一个目标是一个没有积极的文字的喇叭条款。 这一想法是,一旦写了Prolog程序Π,我们就可以尝试确定一个新的条款γ,目标是π,π⊨γ的目标 Prolog先驱通过试图从π∪{〜〜}达到矛盾来实现这一点。 我们应该谨然,单独的计划事实和规则不能产生矛盾; 目标必须进入该过程。 与输入分辨率一样,SLD分辨率不属于一阶逻辑,但它是针对Prolog程序的喇叭逻辑完成的。 基本的定理:如果π是prolog程序,并且γ是目标条款,然后是SLD分辨率(LLOYD 1984)的iffπ∪{〜〜〜}⊢[]。

(本章完)

相关推荐