一阶逻辑及其限制

d4993cc3b0249874f95ddee96fc1f415.png

一阶逻辑是使用于数学、哲学、语言学及计算机科学中的一种形式系统。 过去一百多年,一阶逻辑出现过许多种名称,包括:一阶断言演算、低级断言演算、量化理论或断言逻辑(一个较不精确的用词)。一阶逻辑和命题逻辑的不同之处在于,一阶逻辑有使用量化变量。一个一阶逻辑,若具有由一系列量化变量、一个以上有意义的断言字母及包含了有意义的断言字母的纯公理所组成的特定论域,即是一个一阶理论。 一阶逻辑和其他高阶逻辑不同之处在于,高阶逻辑的断言可以有断言或函数当做引数,且允许断言量词或函数量词的(同时或不同时)存在。在一阶逻辑中,断言通常和集合相关连。在有意义的高阶逻辑中,断言则会被解释为集合的集合。 存在许多对一阶逻辑是可靠(所有可证的叙述皆为真)且完备(所有为真的叙述皆可证)的演绎系统。虽然一阶逻辑的逻辑归结只是半可判定性的,但还是有许多用于一阶逻辑上的自动定理证明。一阶逻辑也匹配一些使其能通过证明论分析的元逻辑定理,如勒文海姆–斯科伦定理及紧致性定理。 一阶逻辑是数学基础中很重要的一部分,因为它是公理系统的标准形式逻辑。许多常见的公理系统,如一阶皮亚诺公理和包含策梅洛-弗兰克尔集合论的公理化集合论等,都可以形式化成一阶理论。然而,一阶定理并没有能力去完整描述及范畴性地建构如自然数或实数之类无限的概念。这些结构的公理系统可以由如二阶逻辑之类更强的逻辑来获取。

不像命题逻辑只处理简单的陈述命题,一阶逻辑还额外包含了断言和量化。

断言像是一个会传回真或伪的函数。考虑下列句子:“苏格拉底是哲学家”、“柏拉图是哲学家”。在命题逻辑里,上述两句被视为两个不相关的命题,简单标记为p及q。然而,在一阶逻辑里,上述两句可以使用断言以更相似的方法来表示。其断言为Phil(a),表示a是哲学家。因此,若a代表苏格拉底,则Phil(a)为第一个命题-p;若a代表柏拉图,则Phil(a)为第二个命题-q。一阶逻辑的一个关键要点在此可见:字符串“Phil”为一个语法实体,以当a为哲学家时陈述Phil(a)为真来赋与其语义。一个语义的赋与称为解释

一阶逻辑允许以使用变量的方法推论被许多组件共享的性质。例如,令Phil(a)表示a为哲学家,且令Schol(a)表示a为学者。则公式

表示若a为哲学家,则a为学者。符号被用来标记一个条件叙述。箭号的左边为假设,右边则为结论。此一公式的真值取决于标记成a的组件,及“Phil”和“Schol”的解释之上。

“对于每个a,若a为哲学家,则a为学者”之类形式的断言,需要同时使用变量及量化。再次,令Phil(a)表示a为哲学家,且令Schol(a)表示a为一学者,则一阶叙述

表示不论a代表什么,若a为哲学家,则a为学者。此处的(全称量化)代表宣称对“所有”a的选择,括弧内的叙述皆为真的想法。

为了表明,声称“如果是一个哲学家然后是一个学者”是假的,一会显示有一些人是不是一个学者的哲学家。这与存在量词可以表示反诉 :若想证明“若a为哲学家,则a为学者”此一宣称是错的,有些人会证明存在有些不是学者的哲学家。此一反论可以用存在量化来表示:

其中,

是否定算符:为真当且仅当为假;换句话说,当且仅当a不是学者。

是合取算符:表示a是哲学家且不是学者。

断言Phil(a)和Schol(a)都各只有一个参数。但一阶逻辑其实也可以表示具有一个以上参数的断言。例如,“存在一些人可以在任何时间被愚弄”可表示成

这里,Person(x)解释为x是人,Time(y)为y是某段时间,且Canfool(x,y)则为(人)x可在(时)y被愚弄。清楚地说,上述叙述表示至少存在一个人可以在任何时间被愚弄,这比“在任何时间,至少存在一个人可以被愚弄”的叙述要强。后者并不意味着,被愚弄的人在任何时间时上总是要是同一位。

量化的范围是由可以用来满足量化的对象所组成的集合(在本节中的一些非正式的例子里,量化的范围并没有被指定)。除了指定Person和Time等断言符号的意义,解释也必须指定一个非空集合,称为论域,做为量化的范围。因此,之类形式的叙述在一特定解释下称之为真,若在可用来赋予断言中符号Phil意义的解释所指定的论域里存在着对象。


一阶逻辑可分成两个主要的部分:语法决定哪些符号的组合是一阶逻辑内的合法表示式,而语义则决定这些表示式之前的意思。

词汇表

和英语之类的自然语言不同,一阶逻辑的语言是完全角式的,因为可以机械式地判断一个给定的表示式是否合法。存在两种合法的表示式:“项”(直观上代表对象)和“公式”(直观上代表可真或伪的断言)。一阶逻辑的项与公式是一串符号,这些符号一起形成了这个语言的词汇表。如同所有的形式语言一般,符号本身的性质不在形式逻辑讨论的范围之内;它们通常只被当成字母及标点符号。

一般会将词汇表中的符号分成“逻辑符号”(总有相同的意思)及“非逻辑符号”(意思依解释不同而变动)。例如,逻辑符号总是解释成“且”,而绝不会解释成“或”。另一方面,一个非逻辑断言符号,如Phil(x),可以解释成“x是哲学家”、“x的个名为Philip 的人”或任何其他的1元断言,单看其解释为何。

逻辑符号

词汇表中存在若干个逻辑符号,虽然会因作者而异,但通常包括:

量化符号及

逻辑联结词:且、或、条件、双条件及否定。偶尔还会包括一些其他的逻辑联结词。某些作家会使用或Cpq来表示,用或Epq来表示,特别是文中被拿去做其他用途之时。更多地,也有用来表示,用来表示,用(~)、Np或Fpq来表示,用||或Apq来表示,以及用&或Kpq来表示,尤其是这些符号因技术上的原因无法输入时。

括号、方括号及其他标点符号。此类符号的选择依文章不同而有所不同。

无限集的变量,通常标记为英文字母末端的小写字母x、y、z、…,也常会使用下标来区别不同的变量:x0、x1、x2、…。

一个等式符号= 。详见下面的“等式”一节。

需注意,并不是所有的符号都需要,只要有量化符号的其中一个、否定及且、变量、括号及等式就足够了。还存在许多定义了额外逻辑符号的变体:

有时也会包括真值常数,用T、Vpq或来表示“真”,并用F、Opq或来表示“假”。若没有此类零参数的逻辑算符,这两个常数就只能用量化来表示。

有时也会包括额外的逻辑联结词,如谢费尔竖线、NAND及异或。

非逻辑符号

非逻辑符号用来表示论域上的断言(关系)、函数及常数。以前标准上会对所有不同的用途使用相同的无限集的非逻辑符号,而最近则会根据应用的不同而使用不同的非逻辑符号。因此变得需要枚举出使用于一特定应用中的所有非逻辑符号。其选择是经由标识来形成的。

传统的做法是对所有的应用都只有单一个无限集的非逻辑符号。因此,根据传统的做法只会存在一种一阶逻辑的语言。这种做法现在依然很常见,尤其是在哲学方面的书籍。

对每个整数n ≥ 0,皆存在一组n元断言符号。因为这些断言符号表示n个元素间的关系,因此也称为关系符号。对每个参数量n,皆能有无限多个断言符号:#:Pn0, Pn1, Pn2, Pn3,…

对每个整数n ≥ 0,皆存在无限多个n元函数符号:

fn0, fn1, fn2, fn3,…

在当代的数理逻辑里,标识会因应用的不同而不同。数学里的典型标识,在群里为{1, ×},或只为{×};在有序域里为{0, 1, +, ×, <}。并没有限制非逻辑符号的数量,标识可以是空的、有限、无限,甚至是不可数的。例如,在勒文海姆–斯科伦定理的证明之中即会出现不可数的标识。

根据最近的做法,每个非逻辑符号皆为下列两种类型的其中一种。

具有0个或0个以上参数的断言符号(或关系符号)。通常标记为大写字母P、Q、R、…。

0参数的关系可以视同为命题变量。例如可以代表任何叙述的P。

令P(x)为具有1个参数的断言变量,其中一个可能的解释为“x是个人”。

令Q(x,y)为具有2个参数的由词变量,其中一些可能的解释有“x大于y”或“x是y的父亲”。

具有0个或0个以上参数的函数符号。标常标记为小写字母f、g、h、…。

举例来说,f(x)可以解释成“x的父亲”;在算术里,可代表“-x”;在集合论里,可代表“x的幂集”。g(x,y)在算术里可代表“x+y”;在集合论里,可代表“x和y的并集”。

0参数的函数符号也称为常数符号,常标记成英文字母前端的字母a、b、c、…。a可代表“苏格拉底”;在算术里,可代表0;在集合论里,可代表空集。

一阶逻辑的限制

所有数学概念都有它的强项和弱点;下面列出一阶逻辑的一些问题。

难于表达if-then-else

带有等式的FOL不包含或允许定义if-then-else断言或函数if(c,a,b),这里的c是表达为公式的条件,而a和b是要么都是项要么都是公式,并且它的结果是a如果c为真,或者b如果它为假。问题在于FOL中,断言和函数二者只接受(“非布尔类型”)项作为参数,而条件的明确表达是(“布尔类型”)公式。这是不幸的,因为很多数学函数是依据if-then-else而方便的表达的,而if-then-else是描述大多数计算机程序的基础。

在数学上,有可能重定义匹配公式算子的新函数的完备集合,但是这是非常笨拙的。断言if(c,a,b)如果重写为就可以在FOL中表达,但是如果条件c是复杂的这就是笨拙的。很多人扩展FOL增加特殊情况断言叫做“if(条件,a, b)”(这里a和b是公式)和/或函数“ite(条件,a, b)”(这里的a和b是项),它们都接受一个公式作为条件,并且等于a如果条件为真,或b如果条件为假。这些扩展使FOL易于用于某些问题,并使某类自动定理证明更容易。其他人进一步扩展FOL使得函数和断言可以在任何位置接受项和公式二者。

类型(种类)

除了在公式(“布尔类型”)和项(“非布尔类型”)之间的区别之外,FOL不包括类型(种类)到自身的概念中。某些人争辩说缺乏类型是巨大优点,而很多其他人发觉了定义和使用类型(种类)的优点,比如帮助拒绝某些错误或不想要的规定。想要指示类型的那些人必须使用在FOL中可获得的符号来提供这种信息。这么做使得这种表达更加复杂,并也容易导致错误。

231256b6337614118e247492fe594da3.png

fad82fec6608fd3120dab0a0a1deb552.png

难于刻画有限性或可数性

从Löwenheim–Skolem定理得出在一阶逻辑中不可能刻画有限性或可数性。例如,在一阶逻辑中你不能断言实数的集合的上确界性质,它声称实数的所有有界的、非空集合都有上确界;这就需要二阶逻辑了。

图可及性不能表达

很多情况可以被建模为节点和有向连接(边)的图。例如,效验很多系统要求展示不能从“好”状态触及到“坏”状态,而状态的相互连接经常可以建模为图。但是,可以证明这种可及性不能用断言逻辑完全表达。换句话说,没有断言逻辑公式f,带有u和v作为它的唯一自由变量,而R作为它唯一的(2元)断言符号,使得f在一个有向图中成立,如果在这个图中存在从关联于u的节点到关联于v的节点的路径。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值