Agda命题逻辑(2) 演绎定理
交流Q群: 893531731
目录: Everything.html
本文源码: Deduction.lagda.md
高亮渲染: Deduction.html
如果你在知乎看到本文: 知乎对Agda语法高亮的支持非常有限, 建议跳转到以上网站阅读
{-# OPTIONS --without-K --safe #-} module Deduction where open import Hilbert open import Data.Sum using (_⊎_; inj₁; inj₂) open import Relation.Binary.PropositionalEquality using (_≡_; refl)
上一篇讲到, 虽然 \mathfrak{S}_0 系统内的证明繁杂, 但我们仍然采用 \mathfrak{S}_0, 原因是其元定理的证明相对简单. 本节讲的演绎定理就是一个例子. 演绎定理是命题逻辑的重要元定理, 它建立了可证关系 _⊢_
与系统内的蕴涵 _⊃_
的联系. 我们先证一些引理.
[引理5.1] \mathfrak{S}_0 的三条逻辑公理有以下相应的演绎推理.
逻辑公理 | 相应演绎推理 |
---|---|
ψ ⊃ φ ⊃ ψ | T ⊢ ψ → T ⊢ φ ⊃ ψ |
(φ ⊃ ψ ⊃ ρ) ⊃ (φ ⊃ ψ) ⊃ (φ ⊃ ρ) | T ⊢ φ ⊃ (ψ ⊃ ρ) → T ⊢ φ ⊃ ψ → T ⊢ φ ⊃ ρ |
(~ φ ⊃ ~ ψ) ⊃ ψ ⊃ φ | T ⊢ ~ φ ⊃ ~ ψ → T ⊢ ψ ⊃ φ |
证明: 这些都是 MP
的特例, 因为 MP
建立了 →
与 ⊃
最一般的联系. ∎
MP-Ax1 : ∀ {T φ ψ} → T ⊢ ψ → T ⊢ φ ⊃ ψ MP-Ax1 T⊢ψ = MP T⊢ψ (Ax1 _ _) MP-Ax2 : ∀ {T φ ψ ρ} → T ⊢ φ ⊃ (ψ ⊃ ρ) → T ⊢ φ ⊃ ψ → T ⊢ φ ⊃ ρ MP-Ax2 T⊢φψρ T⊢φψ = MP T⊢φψ (MP T⊢φψρ (Ax2 _ _ _)) MP-Ax3 : ∀ {T φ ψ} → T ⊢ ~ φ ⊃ ~ ψ → T ⊢ ψ ⊃ φ MP-Ax3 T⊢~φ⊃~ψ = MP T⊢~φ⊃~ψ (Ax3 _ _)
不单以上三条, 实际上所有内定理都可以转换成演绎推理的形式. 我们后面将时不时地采用这种形式, 因为它可以在某种程度上简化系统内定理的证明.
[引理5.2] 如果理论 T
中能证明 ψ
, 那么 T
的任意扩张 T + φ
也能证明 ψ
.
证明: 用归纳法. Ax1
~ Ax3
以及 Ax
的情况都是显然的. MP
的情况, 存在 ρ
使得 T ⊢ ρ
且 T ⊢ ρ ⊃ ψ
. 由归纳假设有 T + φ ⊢ ρ
且 T + φ ⊢ ρ ⊃ ψ
, 由 MP
即有 T + φ ⊢ ψ
. ∎
extending : ∀ {T φ ψ} → T ⊢ ψ → T + φ ⊢ ψ extending (Ax1 _ _) = Ax1 _ _ extending (Ax2 _ _ _) = Ax2 _ _ _ extending (Ax3 _ _) = Ax3 _ _ extending (Ax _ ψ∈T) = Ax _ (inj₁ ψ∈T) extending (MP T⊢ρ T⊢ρ⊃ψ) = MP (extending T⊢ρ) (extending T⊢ρ⊃ψ)
[定理5.3 (演绎定理)] 对任意理论 T
和公式 φ
和 ψ
, 以下两者等价.
- T + φ ⊢ ψ
- T ⊢ φ ⊃ ψ
证明: 先证(2)到(1). 由 _⊢_
的定义有 T + φ ⊢ φ
. 由前提 T ⊢ φ ⊃ ψ
和引理5.2有 T + φ ⊢ φ ⊃ ψ
. 由 MP
即得 T + φ ⊢ ψ
.
deduction← : ∀ {T φ ψ} → T ⊢ φ ⊃ ψ → T + φ ⊢ ψ deduction← T⊢φ⊃ψ = MP (Ax _ (inj₂ refl)) (extending T⊢φ⊃ψ)
再证(1)到(2). 讨论 T + φ ⊢ ψ
成立的情况. 当 ψ
是形如 Ax1
的公式时, 用 MP-Ax1
抛掉前件 φ
, 只需证 T ⊢ ψ
, 由 Ax1
得证. 当 ψ
形如 Ax2
, Ax3
或非逻辑公理的公式时同理. 当 ψ
等于 φ
时, 由 ⊢φ⊃φ
得证. 当 T + φ ⊢ ψ
由 MP
得到时, 存在 ρ
使得 T + φ ⊢ ρ
且 T + φ ⊢ ρ ⊃ ψ
. 由归纳假设有 T ⊢ φ ⊃ ρ
和 T ⊢ φ ⊃ ρ ⊃ ψ
. 由 MP-Ax2
即得 T ⊢ φ ⊃ ψ
. ∎
deduction : ∀ {T φ ψ} → T + φ ⊢ ψ → T ⊢ φ ⊃ ψ deduction (Ax1 _ _) = MP-Ax1 (Ax1 _ _) deduction (Ax2 _ _ _) = MP-Ax1 (Ax2 _ _ _) deduction (Ax3 _ _) = MP-Ax1 (Ax3 _ _) deduction (Ax _ (inj₁ ψ∈T)) = MP-Ax1 (Ax _ ψ∈T) deduction (Ax _ (inj₂ refl)) = ⊢φ⊃φ _ deduction (MP T+φ⊢ρ T+φ⊢ρ⊃ψ) = MP-Ax2 (deduction T+φ⊢ρ⊃ψ) (deduction T+φ⊢ρ)
以下都是一些用演绎定理简化内定理证明的例子. 这部分不是重点, 我们只讲第一个的证明, 对于其他部分读者可以挑感兴趣的自己琢磨, 或者直接跳过.
[引理5.4 (交换前件)] (φ ⊃ ψ ⊃ ρ) ⊃ ψ ⊃ φ ⊃ ρ
证明: 用三次演绎定理, 归结为证明 { φ ⊃ ψ ⊃ ρ, ψ, φ } ⊢ ρ
. 由 MP
和公理 ψ
, 只需证 { φ ⊃ ψ ⊃ ρ, ψ, φ } ⊢ ψ ⊃ ρ
. 再次用 MP
, 由公理 φ
和 φ ⊃ ψ ⊃ ρ
得证. ∎
swap-premise : ∀ {T} φ ψ ρ → T ⊢ (φ ⊃ ψ ⊃ ρ) ⊃ ψ ⊃ φ ⊃ ρ swap-premise φ ψ ρ = deduction (deduction (deduction {φ⊃ψ⊃ρ,ψ,φ}⊢ρ)) where {φ⊃ψ⊃ρ,ψ,φ}⊢ρ = MP (Ax ψ (inj₁ (inj₂ refl))) {φ⊃ψ⊃ρ,ψ,φ}⊢ψ⊃ρ where {φ⊃ψ⊃ρ,ψ,φ}⊢ψ⊃ρ = MP (Ax φ (inj₂ refl)) (Ax (φ ⊃ ψ ⊃ ρ) (inj₁ (inj₁ (inj₂ refl))))
[引理5.5 (三段论)] (φ ⊃ ψ) ⊃ (ψ ⊃ ρ) ⊃ φ ⊃ ρ
syllogism : ∀ {T} φ ψ ρ → T ⊢ (φ ⊃ ψ) ⊃ (ψ ⊃ ρ) ⊃ φ ⊃ ρ syllogism φ ψ ρ = deduction (deduction (deduction {φ⊃ψ,ψ⊃ρ,φ}⊢ρ)) where {φ⊃ψ,ψ⊃ρ,φ}⊢ρ = MP {φ⊃ψ,ψ⊃ρ,φ}⊢ψ (Ax (ψ ⊃ ρ) (inj₁ (inj₂ refl))) where {φ⊃ψ,ψ⊃ρ,φ}⊢ψ = MP (Ax φ (inj₂ refl)) (Ax (φ ⊃ ψ) (inj₁ (inj₁ (inj₂ refl)))) MP-syllogism : ∀ {T φ ψ ρ} → T ⊢ φ ⊃ ψ → T ⊢ ψ ⊃ ρ → T ⊢ φ ⊃ ρ MP-syllogism T⊢φ⊃ψ T⊢ψ⊃ρ = MP T⊢ψ⊃ρ (MP T⊢φ⊃ψ (syllogism _ _ _))
[引理5.6 (爆炸律)] ~ φ ⊃ φ ⊃ ψ.
explosion : ∀ {T} φ ψ → T ⊢ ~ φ ⊃ φ ⊃ ψ explosion φ ψ = deduction (MP-Ax3 (MP-Ax1 (Ax (~ φ) (inj₂ refl))))
[引理5.7 (双重否定消去)] ~ ~ φ ⊃ φ
DN : ∀ {T} φ → T ⊢ ~ ~ φ ⊃ φ DN φ = deduction (MP (⊢φ⊃φ φ) (MP-Ax3 (deduction← (explosion _ _))))
[引理5.8 (双重否定引入)] φ ⊃ ~ ~ φ
DN← : ∀ {T} φ → T ⊢ φ ⊃ ~ ~ φ DN← φ = MP-Ax3 (DN (~ φ))
[引理5.9 (逆否命题)] (φ ⊃ ψ) ⊃ ~ ψ ⊃ ~ φ
这是 Ax3
的反向.
contraposition : ∀ {T} φ ψ → T ⊢ (φ ⊃ ψ) ⊃ ~ ψ ⊃ ~ φ contraposition φ ψ = deduction (MP-Ax3 (MP-syllogism {φ⊃ψ}⊢~~φ⊃ψ (DN← ψ))) where {φ⊃ψ}⊢~~φ⊃ψ = MP-syllogism (DN φ) (Ax (φ ⊃ ψ) (inj₂ refl)) MP-contraposition : ∀ {T φ ψ} → T ⊢ φ ⊃ ψ → T ⊢ ~ ψ ⊃ ~ φ MP-contraposition T⊢φ⊃ψ = MP T⊢φ⊃ψ (contraposition _ _)
[引理5.10] (φ ⊃ ~ φ) ⊃ ~ φ
用该命题和爆炸律取代 Ax3
将得到直觉主义逻辑.
⊢[φ⊃~φ]⊃~φ : ∀ {T} φ → T ⊢ (φ ⊃ ~ φ) ⊃ ~ φ ⊢[φ⊃~φ]⊃~φ φ = deduction (MP (⊢φ⊃φ φ) {φ⊃~φ}⊢[φ⊃φ]⊃~φ) where {φ⊃~φ}⊢[φ⊃φ]⊃~φ = MP-Ax3 (MP-syllogism (DN φ) {φ⊃~φ}⊢φ⊃~φ⊃φ) where {φ⊃~φ}⊢φ⊃~φ⊃φ = MP-Ax2 (MP-syllogism (deduction← (⊢φ⊃φ _)) (explosion _ _)) (⊢φ⊃φ φ)
[引理5.11 (反证法)] T + ~ φ ⊢ φ → T ⊢ φ
contradiction : ∀ {T φ} → T + ~ φ ⊢ φ → T ⊢ φ contradiction {T} {φ} T+~φ⊢φ = MP (MP (deduction (MP T+~φ⊢φ (DN← φ))) (⊢[φ⊃~φ]⊃~φ (~ φ))) (DN φ)
[引理5.12] (~ φ ⊃ φ) ⊃ φ
⊢[~φ⊃φ]⊃φ : ∀ {T} φ → T ⊢ (~ φ ⊃ φ) ⊃ φ ⊢[~φ⊃φ]⊃φ φ = deduction (contradiction (MP (Ax (~ φ) (inj₂ refl)) (Ax (~ φ ⊃ φ) (inj₁ (inj₂ refl)))))
[引理5.13] (φ ⊃ ψ) ⊃ (~ φ ⊃ ψ) ⊃ ψ
⊢[φ⊃ψ]⊃[~φ⊃ψ]⊃ψ : ∀ {T} φ ψ → T ⊢ (φ ⊃ ψ) ⊃ (~ φ ⊃ ψ) ⊃ ψ ⊢[φ⊃ψ]⊃[~φ⊃ψ]⊃ψ {T} φ ψ = deduction (deduction ( contradiction (MP helper (Ax (~ φ ⊃ ψ) (inj₁ (inj₂ refl)))))) where helper : T + (φ ⊃ ψ) + (~ φ ⊃ ψ) + ~ ψ ⊢ ~ φ helper = deduction← (MP-contraposition (Ax (φ ⊃ ψ) (inj₁ (inj₂ refl))))
[引理5.14 (皮尔士定律)] ((φ ⊃ ψ) ⊃ φ) ⊃ φ
皮尔士定律是表述中没有使用 ~_
但必须要 Ax3
才能证明的代表性命题.
Peirce : ∀ {T} φ ψ → T ⊢ ((φ ⊃ ψ) ⊃ φ) ⊃ φ Peirce φ ψ = deduction (contradiction (MP (deduction← (explosion φ ψ)) (Ax ((φ ⊃ ψ) ⊃ φ) (inj₁ (inj₂ refl)))))