语义证明问“为什么每个赋值下都成立”,公理证明问“能否只靠规定的符号规则把结论写出来”。公理证明故意不看命题的具体含义。
形式系统的组成
一个形式系统包含:
- 初始符号;
- 公式形成规则;
- 公理或公理模式;
- 推理规则。
命题逻辑 Hilbert 系统只使用 ¬,→。其他联结词是缩写,例如
P∨Q:=¬P→Q,
P∧Q:=¬(P→¬Q).
三个公理模式和 MP
A1R→(Q→R),
A2(P→(Q→R))→((P→Q)→(P→R)),
A3(¬Q→¬R)→(R→Q).
P,Q,R 表示任意公式,所以每个模式代表无限多个公理实例。
分离规则 MP 是:
Q,Q→R⟹R.
什么叫从前提集的推演
公式序列
A1,A2,…,An
若每一项满足以下条件之一:
- 是公理实例;
- 属于前提集 Γ;
- 由前面两项通过 MP 得到;
并且 An=Q,就记
Γ⊢Q.
证据必须逐行可检查。把“显然”“同理”当成推理规则是不合格的。
完整证明示例
从
P,Q→(P→R)
证明 Q→R。
- P,前提;
- P→(Q→P),A1;
- Q→P,由 1、2 MP;
- Q→(P→R),前提;
-
(Q→(P→R))→((Q→P)→(Q→R)),
A2;
- (Q→P)→(Q→R),由 4、5 MP;
- Q→R,由 3、6 MP。
这份证明不需要知道 P,Q,R 各代表什么。
演绎定理
命题系统中
Γ∪{A}⊢B⟺Γ⊢A→B.
它把一个临时前提移进结论的蕴涵前件。
例如要证
⊢(P→(Q→R))→(Q→(P→R)),
可以临时把 P→(Q→R)、Q、P 当作前提,通过 MP 得到 R,再连续使用演绎定理把三个前提从后往前移入公式。
但考试若明确要求“只能用公理系统的公理和规则”,使用演绎定理可能被扣分;此时应展开成正式序列。
常用派生定理
这些公式在课件证明题中反复出现:
⊢Q→Q,
⊢(Q→R)→((P→Q)→(P→R)),
⊢(Q→R)→(¬R→¬Q),
⊢¬¬Q→Q,⊢Q→¬¬Q.
若题目允许引用已证定理,就应把复杂证明拆成这些模块。
例如从
R→¬Q,P→Q
证明 R→¬P:
- 由反置定理与 P→Q 得 ¬Q→¬P;
- 再与 R→¬Q 使用传递定理。
反证律与归谬律
若从 Γ∪{¬Q} 能同时推出 R 和 ¬R,则可推出 Q。若从 Γ∪{Q} 推出矛盾,则可推出 ¬Q。
这里“推出矛盾”仍要展示两个互相否定的公式怎样进入证明序列,不能只说“与常识矛盾”。
怎样检查一份公理证明
逐行问:
- 若说是 A1、A2、A3,能否给出本行对应的 P,Q,R?
- 若说由 MP 得到,前面是否真的同时出现 A 和 A→B?
- 是否偷用了未证明的等值式?
- 是否把语义符号 ⊨ 混进语法证明?
形式证明最怕“看着像对”。把证据写完整,机械检查反而比自然语言证明更稳。