谓词演算的推理理论-易错
存在示例规则的运用
存在示例规则的形式如下:
∃xA(x) => A(c)
该式成立的条件是:
- c 为(使A为真)特定的个体常量
- c 不在 A(x) 中出现
- A(x) 中除 x 外没有其它自由出现的个体变元
前两个条件很容易理解,但是最后一个不好理解,也容易忽略和出错,考虑下面的推理过程:
- ∀x∃y(x<y) --------------------- P
- ∃y(z<y)---------------------------US,(1)
- z<c--------------------------------ES,(2)
- ∀x(x<c)--------------------------UG,(3)
- ∃y∀x(x<y)-----------------------EG,(4)
问题出在第(3)步,第(2)步得到的谓词公式内虽然 y 是被约束的,但仍含有自由变元 z 。不符合条件 3 。此外,该题目证明蕴含关系:
∀x∃y(x<y) => ∃y∀x(x<y)
本身就不成立。
关于自由变元
例题:由前提组“ㄱ∃x( P(x) ∧ㄱQ(x) ), ∀x( R(x) →ㄱQ(x) )” 推出结论 “∀x( R(x) →ㄱP(x) )” 。
过程如下:
- ㄱ∃x( P(x) ∧ㄱQ(x) )-----------------------P
- ∀xㄱ( P(x) ∧ㄱQ(x) )----------------------T,(1),E28
- ㄱ( P(y) ∧ㄱQ(y) )--------------------------US,(2)
- P(y) →Q(y)-----------------------------------T,(3),E17
- ∀x( R(x) →ㄱQ(x) )------------------------P
- R(y) →ㄱQ(y) )------------------------------US,(5)
- ㄱQ(y)→ㄱP(y)------------------------------T,(4),E18
- R(y)→ㄱP(y)---------------------------------T,(6),(7),I13
- ∀x( R(x) →ㄱP(x) )-------------------------UG,(8)
乍得一看,感觉做得很对,不过这道题目的步骤十分完美。但是我产生了一个疑问:第 4 步和第 6 步为何自由变元都用 y 来表示?自由变元之间不是没有关系的吗?
想了想,得到答案:题干前提组中的两个谓词公式的论域是相同的。那么相同的论域中的自由变元也当然相同。
自由变元因不被约束而被称为"自由变元",因此,论域中的自由变元都是在整个论域中自由变化。假定我们第 4 步仍用 y 表示自由变元,第 6 步用 z 表示;我们可以发现,y、z 都在同一个论域中自由变化,两者找不出什么不同。因而我们把两者都写成 y 也可以。