https://blog.csdn.net/lengye7/article/details/89709244
命题逻辑 零阶逻辑 表达句子与句子间的关系
一阶对个体的(量词)修饰 对于所有的个体 三段论
“对于任意individual x和y, 如果x和y相等, 那么对于任意性质P, Px当且仅当Py. ” 这段话里面的“对于任意性质”
∀x,y (x=y → ∀P (Px<->Py))
二阶 对属性的(量词)修饰 对于任意属性
一阶二阶这类的词, 一是表达量化的程度, 二是表达逻辑系统多有表达能力.
我们一步步来, 首先是命题逻辑(很少部分人叫它作零阶逻辑). 在命题逻辑里, 每一个字母就代表一个命题, 所以命题逻辑只能表达句子之间的关系, 比如“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))