自动推理(一)
推理是制造推理的能力,自动推理与建立自动化此过程的计算系统。 虽然整体目标是机械化不同形式的推理,但该术语在很大程度上已经确定了数学和正式逻辑的有效演绎推理。 在这方面,自动推理类似于机械定理证明。 构建自动推理程序意味着向正式计数提供算法描述,使得它可以在计算机上实现,以便以有效的方式证明微积分的定理。 本练习的重要方面涉及定义程序所需的问题类,决定程序将使用哪种语言代表所提供的信息以及计划推断的新信息,指定程序将用于进行演绎推断的机制,并弄清楚如何有效地执行所有这些计算。 虽然基本的研究工作继续提供必要的理论框架,但是该领域已达到了研究人员正在使用自动推理计划,以便在数学和逻辑中攻击开放问题,为计算科学提供重要应用,解决工程问题,并找到新的问题方法在确切的哲学中。
1.简介
1.1问题域
1.2语言表示
2.扣除结石
2.1决议
2.2续集扣除
2.3自然扣除
2.4矩阵连接方法
2.5术语重写
2.6数学归纳
3.其他逻辑
3.1高阶逻辑
3.2非古典逻辑
4.应用程序
4.1逻辑编程
4.2 SAT溶剂
4.3扣除电脑代数
4.4硬件的正式验证
4.5软件的正式验证
4.6逻辑和哲学
4.7数学
4.8人工智能
结论
参考书目
学术工具
其他互联网资源
相关条目
1.简介
被呈现给自动推理计划的问题包括两个主要项目,即表示被问及被问及的特定问题的声明,称为问题的结论,以及表达对该计划的所有相关信息的陈述 - 问题的假设。 解决问题意味着通过在推理计划中嵌入扣除规则的系统应用,从给定的假设的结论。 当找到一个这样的证据时,问题解决过程结束,当程序能够检测到证明的不存在时,或者在简单地运行资源时。
1.1问题域
在自动推理计划设计中的第一个重要考虑因素是描绘计划需要解决问题域的问题类别。 域可以非常大,正如一阶逻辑的通用定理证报一样,或者更受限于Tarski的几何形状的专用定理箴言或模态逻辑K.典型的方法自动推理程序的设计是首先提供足够的逻辑功率(例如,一阶逻辑),然后将其范围进一步划分给由一组域公理定义的特定域的范围。 为了说明,EQP是一名公式逻辑的定理证明计划,用于解决罗宾斯代数(Mccune 1997)中的开放问题:是否是罗宾斯代数布尔? 为此,该程序被提供有定义罗宾斯代数的公理:
x + y = y + x(可交换)
(x + y)+ z = x +(y + z)(相关性)
- ( - (x + y)+ - (x + -y))= x(罗宾斯方程式)
然后,该程序旨在表明布尔代数的表征,它使用亨廷顿方程式,
- ( - x + y)+ - ( - x + -y)= x,
从公理中遵循。 我们应该谨然,此问题是非琐碎的,因为决定是否为布尔代数提供了基础,因此不可确定,即它不允许算法表示; 此外,问题是由罗宾斯,亨廷顿,塔斯基和他的许多学生袭击,没有成功。 关键步骤是建立所有罗宾斯代数满足
∃x∃y(x + y = x),
由于众所周知,该公式是罗宾斯代数的足够条件。 当通过此信息提供EQP时,该计划通过自动完成证明提供了宝贵的帮助。
专门的定理先驱通过限制其关注来绘制到域公理,而且从域名可以享受特定的定理证明技术,这可能是可以在推理计划本身内进行硬连线编码的事实,这可能导致更有效逻辑实现。 EQP在解决罗宾斯问题时的成功大部分都可以归因于其内置关联推理机制。
1.2语言表示
在建立自动推理方案中的第二重要考虑是决定(1)将如何向推理计划提供域名的问题; (2)他们将如何在计划内部在内部代表; 并且(3)解决方案如何找到已完成的证明 - 将显示回用户。 有几种形式主义可用于此,选择取决于问题领域和推理计划所使用的潜在扣除演示。 最常用的形式主义包括标准的一阶逻辑,键入的λ-微积分和氏子逻辑。 我们在这里占领了字幕逻辑,并假设读者熟悉一阶逻辑的雏形; 对于读取器可能想要检查教会1940的类型的λ-微积分。克劳伦逻辑是一阶逻辑的无量化变化,并且已经是自动推理社区中最广泛使用的符号。 某些定义有序:术语是常量,变量或其参数本身的函数。 例如,A,x,f(x)和h(c,f(z),y)是所有术语。 文字是原子公式,例如原子公式。 f(x),或原子配方的否定,例如原子配方。 ~r(x,f(一))。 如果一个是对另一个的否定,两个文字是互补的。 一个条款是一个(可能是空的)文字l1∨...∨ln的有限分布,其中没有文字在条款中似乎不止一次(即,条款可以作为文字集的替代地处理)。 地面术语,地面文字和地面条款没有变量。 空条款[]是没有文字的条款,因此,在任何解释下都是不可挑离的。 一些示例:~r(a,b)和f(a)∨~r(f(x),b)∨f(z)是条款的例子,但只有前者是地面。 一般思想是能够将问题的配方作为一组条款表达为一组条款,或者等效地作为连续正常形式(CNF)的公式,即作为条款的结合。
对于已经以标准逻辑符号表示的公式,有一个系统的两步步骤,用于将它们转化为结膜正常形式。 第一步包括将公式重新表达到prenex正常形式中的语义等效公式中,(θx1)...(θxn)α(x1,...,xn),由一系列量子(θx1)...(θxn)随后是一个称为矩阵的量化表达式α(x1,...,xn)。 转换中的第二步首先通过使用众所周知的逻辑等效命令将矩阵转换为联合正常形式,例如Demorangan的法律,分布,双否定等; 然后,根据某些规则,矩阵前面的矩阵前方的量子滴落。 在存在量化器的存在下,后一步并不总是保持等价性,并且需要引入其作用是“模拟”存在量化的变量的行为的Skolem函数。 例如,将Skolemizing进程应用于公式
∀x∃y∀z∃u∀v[r(x,y,v)∨~k(x,z,u,v)]
需要引入一个分别的一个地方和双位的Skolem函数,F和G,导致公式
∀x∀z∀v[r(x,f(x),v)∨~k(x,z,g(x,z),v)]
然后可以将通用量词除去以获得我们示例中的最终条款R(x,x,x,x,x,x,x,g(x,z),v)。 Skolemizing过程可能无法保持等同物,但保持可靠性,这足以基于条款的自动推理。
虽然字幕形式提供了更均匀和经济的符号 - 但没有量词,所有公式都是障碍 - 它具有一定的缺点。 当从标准逻辑符号转换为基本形式时,一个缺点是所得公式的大小的增加。 大小的增加伴随着认知复杂性的增加,使人类更加难以阅读用条款读取的证明。 另一个缺点是标准逻辑符号中配方的句法结构可用于指导证明的结构,但该信息完全损失在转换为子宫形式中。
2.扣除结石
在建立自动推理计划中的第三个重要考虑是选择该计划使用的实际扣除计算来执行其推论。 如前所述,选择是高度依赖于问题域的性质,并且有一个公平的选择范围:通用定理证明和解决问题(一阶逻辑,简单类型理论),程序验证(一阶逻辑),分布式和并发系统(模态和时间逻辑),程序规范(直觉逻辑),硬件验证(高阶逻辑),逻辑编程(角逻辑),约束满意度(命题逻辑逻辑),数学(高阶逻辑),计算形而上学(高阶模态逻辑)等。
扣除微积分由一组逻辑公理和用于从预先派生的公式中推导出新公式的扣除规则组成。 解决程序的问题域中的问题然后真正意味着建立特定公式α - 问题的结论 - 从由逻辑公理,域公理和问题假设组成的扩展集γ。 也就是说,程序需要确定γ是否需要α,γία。 当然,该计划如何建立这种语义事实取决于它实施的微积分。 一些程序可以采用非常直接的路线并尝试通过实际构造来自γ的逐步逐步证明αία。 如果成功的话,这表明γ衍生 - 证明-α,我们通过写入γία表示。 改造其他推理程序可以选择更加间接的方法,并尝试通过示出通过导出矛盾,⊥,从集合γ∪{〜〜}来表示γ∪{〜〜〜}的γία。 实现前一种方法的自动化系统包括自然扣除系统; 基于分辨率,序列扣除和矩阵连接方法的系统使用后一种方法。
健全性和完整性是两个(Metatheorate)的微积分属性,对自动扣除尤为重要。 声音指出,微积分规则是真实保留。 对于直接计算,这意味着如果γία则γία。 对于间接计算,声音意味着如果γ∪{〜〜}⊢⊥然后γ⊨α。 直接微积分的完整性表示,如果γία则γ⊢α。 对于间接计算,完整性属性在反馈方面表达,因为一个建立γία,通过表示存在γ的α而不是来自γ的α,而是来自γ∪{〜α}的γία。 因此,如果γία意味着γ∪{〜}⊢⊥,则间接微积分是驳实。 两个属性,声音是最理想的。 不完整的微积分表明存在在微积分内无法建立的存在关系。 对于自动推理程序,非正式地,有程序无法证明的真实陈述。 不完整可能是一个不幸的事情,但缺乏合理性是一个真正的问题情况,因为不合理的推理计划能够从完全真实信息中产生错误的结论。
重要的是要理解逻辑微积分与其在推理计划中的相应实施之间的差异。 微积分的实施总是涉及对微积分进行一些修改,并且这种结果在新的微积分中严格来说。 对原始微积分的最重要修改是其扣除规则的“机械化”,即制定规则的系统方式的规范。 在这样做的过程中,必须注意保留原始微积分的传言性质。
另外两种对自动扣除的重要性的重要性是可辨赖性和复杂性。 如果它承认算法表示,那就是可以判定的,即,如果存在任何给定的γ和α的算法,它可以在有限的时间内确定答案,“是”或“否”,问题“d是γία吗?” 微积分可能是不可澄清的,在这种情况下,需要确定实施哪个可判定的片段。 微积分的时间空间复杂性指定其算法表示的效率如何。 自动推理是更具挑战性,因为许多兴趣的计算并不可判定,并且具有较差的复杂性措施,迫使研究人员在演绎权效率与算法效率之间寻求权衡。
2.1决议
在用于实施推理计划的许多计算中,基于解决方案原则的诸多的最受欢迎。 分辨率在链条规则(Modus Ponens是一个特例)之后建模,基本上从p∨q和~q∨r中的一个可以推断出p∨r。 更正式地,让C-L用拆除的文字L表示条款C. 假设C1和C2分别是含有正面文字L1和负面文字~L2的地基条款,使得L1和~L2是互补的。 然后,地面分辨率的规则指出,由于解决C1和C2的结果,可以推断(C1-L1)∨(C2-~L2):
c1c2
(c1-的l1)∨(c2的-~l2)
Herbrand的定理(Herbrand 1930)向我们保证,可以通过使用地面分辨率来建立任何一组条款,地面,地面的不可靠性。 这是自动扣除的一个非常重要的结果,因为它告诉我们,如果任何无限的许多解释不满足集合γ,这一事实可以在最多的步骤中确定。 遗憾的是,使用Herbrand定理直接实施地面分辨率要求产生广大的地面术语,使得这种方法无可救药地低效。 通过概括地面决议规则对二元决议的概括并通过介绍统一的概念(Robinson 1965a)来有效地解决了这个问题。 统一允许分辨率证明是“提升”并进行更一般的水平; 只需要在要解决的那一刻实例化的条款。 此外,由实例化过程产生的条款不必是地面实例,并且仍可能包含变量。 二元分辨率和统一的引入被认为是自动推理领域最重要的发展之一。
统一
两个表达式或条款的统一 - 是一种替代,当应用于表达式时使它们平等。 例如,替换σ给出
σ:= {x←b,y←b,z←f(一个,b)}
是一个uniers for
r(x,f(一个,y))
和
r(b,z)
从应用于两种表达时,它使它们相等:
r(x,f(一个,y))σ= r(b,f(一个,b))
= r(b,z)σ
最普遍的Uniber(MGU)生成两个统一表达式共享的大多数情况。 在前面的示例中,替换{x←b,y←b,z←f(a,b)}是一个unber但不是mgu; 但是,{x←B,Z←F(A,Y)}是MGU。 请注意,统一尝试“匹配”两个表达式,而这一基本进程已成为大多数自动扣除计划的中央组成部分,基于分辨率和否则。 理论统一是统一机制的延伸,包括内置推理能力。 例如,子句R(g(a,b),x)和r(g(b,a),d)不统一,但它们是unifify,其中交流统一是统一,内置关联和换向规则,如g(a,b)= g(b,a)。 将推理能力转化为统一机制增加了电量,但以代价为:两个统一表达式的MGU的存在可能不是唯一的(实际上可能是无数的),并且统一过程一般来不变。
二进制分辨率
让C1和C2分别是两个包含正面文字L1和负面文字~L2的子句,使得L1和L2统一与MGUθ统一。 然后,
c1c2
(c1θ-l1θ)∨(c2θ-~l2θ)
通过二进制分辨率; 条款(C10-L1θ)∨(C2θ-~l2θ)称为C1和C2的二进制分辨率。
保理
如果在条款C中发生的两个或更多个文字共享MGUθ,则Cθ是C的一个因子。例如,在R(x,a)∨~kk(f(x),b)∨r(c,y)中,文字R(x,a)和r(c,Y)统一使用MGU {X←C,Y←A},因此,R(C,A)∨~k∨~k(f(c),b)是原始条款的一个因素。
分辨率原则
让C1和C2是两个条款。 然后,通过C1和C2分辨率获得的分辨率定义为:(a)C1和C2的二元分辨率; (b)C1的二元分辨率和C2的因子; (c)二进制分辨率为C1和C2; 或者,(d)具有C1系数的二元分辨率和C2的因子。
通过使用分辨率从γ∪{〜〜}从γ∪{〜}派生空子句[]来构建分辨率证明,更精确的反驳 如果γ∪{〜〜〜}不可履行以来,这将永远是可能的,因为重分辨率是驳斥完成的(罗宾逊1965A)。 作为一个例子,我们显示集合{∀x(p(x)∨q(x)),∀x(p(x)⊃r(x)),ξx(q(x)⊃r(x))},由γ表示,需要公式∃xr(x)。 第一步是找到γ∪{〜~∃xr(x)}的字体形式; 由S0表示的结果子句集在下面的驳斥中以步骤1到4所示。 通过使用级别饱和度方法构建良选:计算初始集的所有解析,S0,将它们添加到集合并重复该过程,直到派生空话。 (这产生了越来越大的组的序列:S0,S1,S2,......)我们施加的唯一约束是我们不超过一次解析同一两个条款。
s0 1 p(x)∨q(x)假设
2 ~p(x)∨r(x)假设
3 ~q(x)∨r(x)假设
4。~r(a)否定结论
S1。5。q(x)∨r(x)res 1 2
6。p(x)∨r(x)res 1 3
7。~p(a)res 2 4
8。~q(a)res 3 4
S2。9。q(a)res 1 7
10。p(a)res 1 8
11. r(x)res 2 6
12. r(x)res 3 5
13。q(a)res 4 5
14。p(a)res 4 6
15。r(a)res 5 8
16。r(a)res 6 7
S3。17。r(a)res 2 10
18。r(a)res 2 14
19。r(a)res 3 9
20。r(a)res 3 13
21。[] res 4 11
虽然解决方案证明是成功的派生[],但它有一些重要的缺点。 要从开始,驳回矛盾需要21个步骤,这是一个折射,[]。 这是由于实施的天真蛮力的性质。 这种方法不仅生成了太多的公式,而且有些是冗余的。 注意R(a)是如何派生六次的; 此外,R(x)具有比R(a)更多的“信息内容”,一个人应该保留前者并忽略后者。 与所有其他自动化扣除方法一样,分辨率必须按旨在提高扣除过程效率的策略补充。 上面的样本衍生具有21个步骤,但研究型问题具有数千个或数百个步骤的命令派生。
解决策略
自动推理计划中的扣除演示的成功实施需要整合搜索策略,以通过修剪不必要的扣除路径来减少搜索空间。 一些策略一旦出现在推导中,就会删除冗余条款或Tautologies。 另一种策略是通过称为归档的过程(Robinson 1965a)的过程在更一般的策略中去除更具体的条款。 然而,不受限制的归档不保留决议的正视完整性,因此需要限制其适用性(Loveland 1978)。 模型消除(Loveland 1969)可以通过表明在某些结构模型中显示出句子。 模型生成的主题是作为对定理证明的互补过程的关注。 该方法已成功使用自动推理程序,以显示公理集的独立性,并确定满足一些给定标准的离散数学结构的存在。
一些策略而不是删除冗余条款,而不是删除冗余条款。 支持策略(WOS,Carson&Robinson 1965)是这种最强大的策略之一。 SET S的子集T,其中S最初是γ∪{〜〜},被称为S IFF S-T的一组支持是满足的。 支持的解决方案决定了已解析的子句并非来自S-T。 支持背后的动机是,由于设定γ通常是满足的,因此可能明智地不能从互相反对γ中解析两个子句。 通过将多个分辨率步骤组合成单个推理步骤,通过将多个分辨率步骤结合到单个推理步骤中的高度解决方案(Robinson 1965b)减少了中间分辨率的数量。
独立共同发现,线性分辨率(Loveland 1970,Luckham 1970)始终针对最近派生的解决方案来解决一个条款。 这使扣除了一种简单的“线性”结构,这是直接实现的; 然而,线性分辨率保留了驳斥完整性。 使用线性分辨率,我们只能在上面的示例中派生空子句: