最近看卓里奇数学分析里有句话:「若 A 不真,则 A→B 总是真的」,这种蕴含关系我无法理解。本人逻辑基础仅限高中,希望各路大神用尽量简单通俗的语言解释一下 ⊙ω⊙

问题修改:把引起歧义的符号改为了→(蕴含)


有一记者问一农民:「如果你有一百亩地,你可以捐给国家吗?」

农民回答:「可以!

又问:「如果你有一百万,你愿意捐给国家吗?」农民回答:「我愿意!

三问:「如果你有一头牛,你愿意捐给国家吗?」农民回答:「我不愿意!

记者疑惑:「为什么你愿意捐一百亩土地给国家,捐一百万给国家?为什么你一头牛不愿意捐呢?」农民窘困:「因为我真的有一头牛!

引用来源:https://zhidao.baidu.com/question/1964161714803374220.html?from=singlemessageisappinstalled=0


先上结论:在经典主义逻辑框架下,把 [公式] 理解成 "if p then q" ,或者」如果 p,那么 q「 (对很多人来说)是反直觉的。

所以题主觉得不好理解,非常正常。原因是经典逻辑并不严格对应于人的自然思维。符号逻辑系统有千千万种,不止书上教的那一种,还有 Relevance Logic 等一堆非经典的符号逻辑系统试图在填补这个鸿沟。下面主要谈谈两种不同的逻辑系统,经典逻辑与直觉主义逻辑,怎么对应于普通人的思维模式。

在经典主义逻辑框架下, [公式] 被称为「实质蕴含」,这句话「不应该」被解释成自然语言中的」如果 p, 则 q「,而是应该解释成」如果 p 为真,那么 q 也为真「。因为 "p" 和 "q" 可以完全不相干。实质蕴含最让初学者糊涂的地方是,如果 p 为假时, [公式] 居然必然为真。不要小看这点区别,这会引起很多的「反直觉」结论:

反直觉命题一: [公式]

这个在经典主义框架下是永真的,这个可以被误读成:世界上的所有东西都是相互关联的。

反直觉命题二: Pierces Law [公式]

这个在经典主义框架下也是永真的,解释下试试看,如果一个蕴含式能蕴含它的前件,那么它的前件 p 就为真。请用「如果……,那么……」解释下试试看?

继续,反直觉命题三:著名的 Drinkers Paradox,饮酒者悖论 [公式]

「如果一个酒吧里面存在一个饮酒者,」那么「 酒吧里面所有的人都在饮酒。」这句话是不是很荒唐?我们之所以认为荒唐,正是因为我们把蕴含符号「错误解读」成为了」如果……,那么……「。

在经典主义框架下, [公式] 等价于 [公式] ,可以解读为「要么条件 p 为假,要么结论 q 为真」,实际上也还是在解释「实质蕴含」。

但另一方面,如果熟悉了经典逻辑,慢慢你会觉得「实质蕴含」其实也不难理解,这时候大脑就能够比较熟练地切换各种推理模式。大逻辑学家罗素就认为「实质蕴含」非常自然,很本质。

经典主义逻辑看似比较好入门,因为一阶命题经典逻辑能很好地对应到「真值表」,于是很多人不由自主地过度依赖真值表来理解命题,而忽略了「推理」。这一点也让很多人混淆「语言」和「元语言」的关联和区别,我在另一篇回复中提到了这个问题。但是,经典主义逻辑中有很多的坑,从而导致在推理过程中,会遇到一些难以理解的问题。

其实「直觉主义逻辑」才是更符合直觉的逻辑,但是由于其涉及了关于排中律,反证法的一些讨论,并且其语义模型不是真值表,入门门槛也比较高。但是直觉主义逻辑的推理过程是非常容易理解的,比如 [公式] 表示 "p 蕴含 q"(我用符号 [公式] 表示直觉主义逻辑中的蕴含符号,以区分 [公式] ),可以理解成,」如果给一个 p 命题的证明,那么输出一个 q 命题的证明「。那么如果 "p" 不为真呢?在直觉主义逻辑框架中,虽然 」p「 不真,但是仍然不能通过这个陈述来得到 p 命题的构造性证明,那么仍然不能得到 q 命题的证明。这里的蕴含式 [公式] 更贴近我们自然语言中的「如果……,那么……」。

熟悉函数式语言编程的朋友,可以很自然地把 [公式] 看成是函数类型,比如 [公式] 。这也就是比较新的编程语言逐步引入蕴含符号的原因。直觉主义逻辑符号很好地对应编程推理。而经典主义逻辑概念虽然也能对应到编程,但是往往都是和不容易理解的控制流操作符相关,比如 call/cc,setjmp/longjmp 等。

直觉主义依赖构造性而非「真值表」,一个命题不再对应于真假,而是对应于它的构造性证明。 [公式] 表示 「p不存在构造性证明」,但是这并不意味著 p 为假,也有可能 p 只是「不可证」。那么反证法就在直觉主义逻辑框架中就不再成立了。反证法符合直觉么?不好说……

在直觉主义逻辑框架下,除了反证法( [公式] )不成立,逆否命题不再等价于原命题( [公式] 成立,但反向不成立),这个符合直觉的吗?看你怎么理解,从计算和构造的角度看,非常符合直觉。 [公式] ,但是反过来是成立的,即 [公式] 。 阵亡的还不止这些,还有德莫根律,还有 "不是所有的人都不抽烟" 不能直觉蕴含 "存在一个人抽烟",等等,也包括上面提到的三个反直觉结论,在直觉主义框架中是不可证的。

我个人平时在思考过程中,绝大多数时间用直觉主义逻辑来推理,当遇到复杂一点的命题,会采用「自然演绎」(Natural Deduction)的规则进行心算,推理过程就像「编写程序」一样,非常自然。如果用到反证法,则会将反证法作为公理引入。但是如果让我采用真值表的话,即使借助纸笔演算,也要多花费几倍的时间来理解。推荐大家采用自然演绎的方法进行思考。


考虑把「空集是一切集合的子集」这个观点整合到子集的定义中。


A useful way to understand the truth value of a conditional statement is to think of an obligation or a contract. For example, the pledge many politicians make when running for office is

"If I am elected, then I will lower taxes."

If the politician is elected, voters would expect this politician to lower taxes. Furthermore, if the politician is not elected, then voters will not have any expectation that this person will lower taxes, although the person may have sufficient influence to cause those in power to lower taxes. It is only when the politician is elected but does not lower taxes that voters can say that the politician has broken the campaign pledge. This last scenario corresponds to the case when [公式] is true but [公式] is false in [公式] .[1]

参考

  1. ^Kenneth H. Rosen, Discrete Mathematics and Its Applications


A?B 的意思不是:B is true because A is true。

而是:if A is true, then B is also true. 若A是真的,那么B也是真的。

把这个符号的真正含义搞明白了,就没那么困难了。

只要B是真的,A?B就是真的。

致这里绕不出来的同学:若B真,那么B在任何情况下都真。「任何情况」就包含了「if A is true」这种特定的情况。所以这种情况下,B真。所以「if A is true, then B is also true」真

如果A,B都是真的,A?B也是真的。

如果A,B都是假的,A?B也是真的。

它的真值表是这样的,这个就是定义来的。

「A?B」这个命题是假的唯一一个情况是:A is true and B is false。A是真的同时B不真。

除此之外所有的情况,A?B 都是真的。这里面就包括A不真B真,和A不真B不真,也即是A不真的所有情况。


推荐阅读:
相关文章