一阶逻辑与二阶逻辑的区别【整理】
(2018-02-07 15:50:49)
标签:
逻辑学命题逻辑谓词逻辑逻辑推理人工智能 |
分类: 人工智能与机器人 |
链接: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. 这个量化就叫做二阶量化.
集合论上来说, 一阶量化个体, 二阶量化包含个体的集合, 三阶量化包含包含个体的集合的集合, 等等等等如此类推
加载中…