自然推理系统证明: ⊢ ( ∃ x ) ( C → P ( x ) ) ↔ ( C → ( ∃ x ) P ( x ) ) \vdash (\exists x)(C\to P(x))\leftrightarrow(C\to (\exists x)P(x)) ⊢(∃x)(C→P(x))↔(C→(∃x)P(x))
这道题卡了好久,记录一下。
思考过程
分两步:左推右和右推左,难度还是有差距的。
左推右很简单,先用左 ∃ \exists ∃,再用右 → \to →即可。
右推左,即 C → ( ∃ x ) P ( x ) ⊢ ( ∃ x ) ( C → P ( x ) ) C\to (\exists x)P(x)\vdash (\exists x)(C\to P(x)) C→(∃x)P(x)⊢(∃x)(C→P(x)),有两种选择,右 ∃ \exists ∃和右A,还是先尝试简单的右 ∃ \exists ∃:
经过右 ∃ \exists ∃和右 → \to →,发现左边只能推出 ( ∃ x ) P ( x ) (\exists x)P(x) (∃x)P(x),无法得到 P ( x ) P(x) P(x),看来又得用简单粗暴的右A了:
需要三个导出规则:
1.¬(A→B)⊢A∧¬B
2.(∀x)(¬P(x))⊢¬(∃x)P(x)
3.¬(∃x)P(x)⊢(∀x)(¬P(x))
需要证 ( C → ( ∃ x ) P ( x ) ) , ¬ ( ∃ x ) ( C → P ( x ) ) ⊢ ⊥ (C\to (\exists x)P(x)),\lnot (\exists x)(C\to P(x))\vdash \bot (C→(∃x)P(x)),¬(∃x)(C→P(x))⊢⊥
先用导出规则进行化简,再找矛盾: C → ( ∃ x ) P ( x ) , ¬ ( ∃ x ) ( C → P ( x ) ) ⊢ ( ∀ x ) ( C ∧ ¬ P ( x ) ) C\to (\exists x)P(x),\lnot (\exists x)(C\to P(x))\vdash (\forall x)(C\land \lnot P(x)) C→(∃x)P(x),¬(∃x)(C→P(x))⊢(∀x)(C∧¬P(x))
发现右边能推出 ( ∃ x ) P ( x ) (\exists x)P(x) (∃x)P(x),也能推出 ¬ P ( x ) \lnot P(x) ¬P(x)
这里是最关键的一步,需要对含量词的规则和导出规则比较熟
左边没有x的自由变元,所以右边可以随便加量词,能推出 ( ∀ x ) ¬ P ( x ) (\forall x)\lnot P(x) (∀x)¬P(x)
继而用导出规则推出 ¬ ( ∃ x ) P ( x ) \lnot(\exists x)P(x) ¬(∃x)P(x),这样可以推出矛盾,得证。
策略总结
做完了发现右A/ ¬ \lnot ¬还是挺有效的,最关键的是找矛盾,其实能找的也没几个,但需要尝试到底,有时候感觉找不到一对,就放弃了,其实就差一点,要静下心来一步一步倒推。
具体过程
1. C→P(x),C ⊢ C→P(x) ∈
2. C→P(x),C ⊢ C ∈
3. C→P(x),C ⊢ P(x) →- 1,2
4. C→P(x),C ⊢ (∃ x)P(x) ∃+ 3 (x/x)
5. C→P(x) ⊢ C→(∃ x)P(x) →+ 4
6. (∃ x)(C→P(x)) ⊢ C→(∃ x)P(x) 左∃+ 5
7. C→(∃ x)P(x),¬(∃ x)(C→P(x)) ⊢ ¬(∃ x)(C→P(x)) ∈
8. ¬(∃ x)(C→P(x)) ⊢ (∀ x)(¬(C→P(x))) 导出规则
9. ¬(∃ x)(C→P(x)) ⊢ ¬(C→P(x)) ∀- 8 (x/x)
10. ¬(C→P(x)) ⊢ C∧¬P(x) 导出规则
11. ⊢ ¬(C→P(x))→(C∧¬P(x)) →+ 10
12. ¬(∃ x)(C→P(x)) ⊢ ¬(C→P(x))→(C∧¬P(x)) ∈+ 11
13. ¬(∃ x)(C→P(x)) ⊢ C∧¬P(x) →- 9,12
14. ⊢ (¬(∃ x)(C→P(x)))→(C∧¬P(x)) →+ 13
15. C→(∃ x)P(x) ⊢ (¬(∃ x)(C→P(x)))→(C∧¬P(x)) ∈+ 14
16. C→(∃ x)P(x),¬(∃ x)(C→P(x)) ⊢ (¬(∃ x)(C→P(x)))→(C∧¬P(x)) ∈+ 15
17. C→(∃ x)P(x),¬(∃ x)(C→P(x)) ⊢ C∧¬P(x) →- 7,16
18. C→(∃ x)P(x),¬(∃ x)(C→P(x)) ⊢ C ∧- 17
19. C→(∃ x)P(x),¬(∃ x)(C→P(x)) ⊢ C→(∃ x)P(x) ∈
20. C→(∃ x)P(x),¬(∃ x)(C→P(x)) ⊢ (∃ x)P(x) →- 18,19
21. C→(∃ x)P(x),¬(∃ x)(C→P(x)) ⊢ ¬P(x) ∧- 17
22. C→(∃ x)P(x),¬(∃ x)(C→P(x)) ⊢ (∀ x)(¬P(x)) ∀- 21
23. (∀ x)(¬P(x)) ⊢ ¬(∃ x)P(x) 导出规则
24. ⊢ ((∀ x)(¬P(x)))→(¬(∃ x)P(x)) →+ 23
25. C→(∃ x)P(x) ⊢ ((∀ x)(¬P(x)))→(¬(∃ x)P(x)) ∈+ 24
26. C→(∃ x)P(x),¬(∃ x)(C→P(x)) ⊢ ((∀ x)(¬P(x)))→(¬(∃ x)P(x)) ∈+ 25
27. C→(∃ x)P(x),¬(∃ x)(C→P(x)) ⊢ ¬(∃ x)P(x) →- 22,26
28. C→(∃ x)P(x) ⊢ ¬(¬(∃ x)(C→P(x))) ¬+ 20,27
29. C→(∃ x)P(x) ⊢ (∃ x)(C→P(x)) ¬¬- 28
30. ⊢ ((∃ x)(C→P(x)))<→(C→(∃ x)P(x)) ↔+ 6,29