一阶逻辑与二阶逻辑的区别【转】

作者:ZS Chen
链接:https://www.zhihu.com/question/22915503/answer/151477106
 

一阶二阶这类的词, 一是表达量化的程度, 二是表达逻辑系统多有表达能力.
我们一步步来, 首先是命题逻辑(很少部分人叫它作零阶逻辑). 在命题逻辑里, 每一个字母就代表一个命题, 所以命题逻辑只能表达句子之间的关系, 比如“p&q”, “if p then q”等等的真值如何从p和q的真值中计算出来.
一阶逻辑则引入了两个量词, 即universal quantifier(倒A)和existential quantifier(倒E), 并且加入了一阶谓词和individual variables和individual constants. 这些导致一阶逻辑可以量化individuals in the domain. 比如经典的三段论就可以被一阶逻辑表达:
For all x, Hx->Mx
Hs
----
Ms
其中for all x就是量化了所有individuals, 即domain里的任意一对象, 用individual variable x来表示. Hx则是表示x属于H(Human)这个谓词的extension, Mx表示x属于M(Mortal)的extension. s则是individual constant, 代表苏格拉底. 然后通过Universal Instantiation和Modus Ponens推出结论Ms(Socrates is mortal). 这里要提到一个集合论的逻辑基础, 如果逻辑学的基础是集合论的话, 那么individuals就是最小的个体对象, 一阶谓词则是包含个体的集. 那么For all x, Hx->Mx则可以“翻译”成: 对于任意个体x, 如果x属于H这个集, 那么x就属于M这个集.
但注意, 我们的量词在这里只能表达“对于任意一个individual x”, 然而这个量词的表达能力是有限的. 比如说Leibniz Law: “对于任意individual x和y, 如果x和y相等, 那么对于任意性质P, Px当且仅当Py. ” 这段话里面的“对于任意性质”, 用一阶逻辑是表达不出来的. 因为一阶逻辑只能量化个体, 而性质却是包含个体的集, 所以我们要引入二阶variable, 才能量化性质, 从而表达“对于任意包含个体的集合”. 这句话用二阶逻辑写出来会是这样:
∀x,y (x=y → ∀P (Px<->Py))

注意看第二个量词, 量化的不是个体x或y, 而是性质P. 这个量化就叫做二阶量化.

集合论上来说, 一阶量化个体, 二阶量化包含个体的集合, 三阶量化包含包含个体的集合的集合, 等等等等如此类推

下面在介绍一下形式系统:

逻辑数学中,一个形式系统(英语:Formal system)是由两个部分组成的,一个形式语言加上一个推理规则或转换规则的集合。一个形式系统也许是纯粹抽象地制定出来,只是为了研究其自身。另一方面,也可能是为了描述真实现象或客观现实的领域而设计的。

形式系统(Formal System),包含字母、字的集合及由关系组成的有限集合。例如:集合论、布林代数、欧几里得平面几何及贝克式正规形式(Backus Normal Form)都是形式系统。 [1] 

常用的形式系统有:语言、数理规则和逻辑。其中由于数学的研究对象是形式系统中唯一天生的逻辑自洽系统,因此数学也被一些人称为:形式科学。而语言大类中,部分为逻辑自洽的形式系统,如计算编程用的各类程序语言等。 [1] 

在数学领域里,形式证明是形式系统的产物,由一些公理与演绎规则组成。定理便是形式证明可能的最后一行结论。这几个步骤总和起来便是数学界通称的形式主义大卫·希尔伯特创立元数学以作为讨论形式系统的学科。任何用于讨论形式系统的语言称为元语言。元语言也许像普通语言一样自然,或它可能部分形式化,但它通常比起受检验系统的形式语言来得较不正规化。此形式语言称为对象语言,意指问题议论的对象。

某些理论学家将形式主义粗略视为形式系统的同义词,但此词也同时指称特定风格的符号,例如保罗·狄拉克狄拉克符号

猜你喜欢

转载自blog.csdn.net/pilifeng1/article/details/85036619