A or B = B or A证明(自然推论)

A or B = B or A proof (natural deduction)

这个问题感觉应该比我做的更简单所以我的最终问题是:有没有更简单的方法来做这个?在逻辑上我们知道

A v B = B v A

但在自然演绎中,我们使用 v-Introductions、RAA 等来证明这些等价性。在做一道练习题的过程中,我遇到了要证明这个交换律属性,却发现出乎意料的困难。在我看来,证明将像这样开始:

1. A v B            given
2.     ¬(B v A)     assume
3.     ¬B ^ ¬A      2, deMorgan's
4.     ¬A           3, ^-elimination
5.     ¬B           3, ^-elimination
6.     ¬A ^ ¬B      4, 5, ^-I
7.     ¬(A v B)     6, deMorgan's
?. B v A            2, 7 RAA

现在我们发现自己处于必须证明 deMorgan 的位置。 A v B = B v A 没有更简单的证明吗?

您可以创建真实的表格并进行比较

 A    | B     | A v B
true  | true  | true
true  | false | true
false | true  | true
false | false | false


 A    | B     | B v A
true  | true  | true
true  | false | true
false | true  | true
false | false | false

表相同,表达式相同。

如果不为您解决整个问题,请尝试以下方法:

Assume A
Prove that A => (BvA)
Assume B
Prove that B => (BvA)
So (AvB) => (BvA)     [That's v-intro, at least it is in Lemon's system which you appear to be using]

You've been given AvB. So modus ponens gives you BvA.

以下证明使用了 Klement 的证明检查器。可以在 forallx 文本中找到其他信息。两者的链接如下。

析取介绍 (∨I) 允许以不同的顺序重建析取。

最后一行使用析取消除 (∨E) 引用析取本身(第 1 行),第一个析取子证明(第 2-3 行)达到所需结果,第二个析取子证明(第 2 行)完成证明4-5) 达到预期结果。


参考资料

Kevin Klement 的 JavaScript/PHP Fitch 风格的自然演绎证明编辑器和检查器 http://proofs.openlogicproject.org/

P. D. Magnus、Tim Button 以及 J. Robert Loftis 的补充,由 Aaron Thomas-Bolduc、Richard Zach、forallx Calgary Remix 重新混合和修订:形式逻辑简介,2018 年冬季。http://forallx.openlogicproject.org/