逻辑学简要介绍
Brief Introduction to Logic
由于教程内容用到众多逻辑学知识点,虽然读者可能不一定是计算机专业或数学系专业的学生,或相关的从业人员,但是为了确保读者能够衔接合适的内容,我打算在教程里插入逻辑学的相关内容方便读者阅读和查阅。
不过这里,我只会给各位介绍本教程会用到的一些常见的逻辑学知识点,并不会完整介绍逻辑学的全部内容,不然就本末倒置了不是。
逻辑学常见术语
先来说说逻辑学的术语或概念。
命题(Proposition)
首先,我们把一个可以判断对错的句子称为一个命题(Proposition)。这里所说的“可判断对错”,并不是说他有严格的正确或错误的倾向性,或者可以论证他的对错,而是说他从字面含义上,要回应/回答这个说法,一般用的是对或错、是或否、真或假这种只有两种对立面情况的词语就可以回应的句子。
比如说,“我有一部小米 15 的手机”。这个句子就是一个命题,因为它只会有“是”或“否”两种状态来回应这个句子。再比如“如果今天我起床之前感冒还没好,我就请假不去上班了”,也是一个命题。
那么,什么不是命题呢?其他的句子。比如说“今天的外卖好吃吗?”就不是命题。首先,它是一个疑问句,其次疑问句的回应对与错并不是用来判断说法的对错的,而是回答这句话的结果的。
再比如说,“我这结婚这事情八字还没一撇呢”也不是命题。这种句子甚至都不是用于回应对错的。
这便是命题的基本概念。可以看出,命题要能表述出对错判断的那个意味,与此同时还只能是一个陈述句。疑问句、祈使句、感叹句全都不是命题。
另外,我们把最基础的、无法继续被拆分的命题称为原子命题(Atomic Proposition)。比如“我有一部小米 15 手机”就是原子命题,因为它没办法继续拆成小的命题了;但是“如果今天我起床之前感冒还没好,我就不去上班了”就不属于原子命题。因为它其实暗含了两个小的命题“今天我起床之前感冒还没好”和“我不去上班”,他们单独拆解出来虽然没有啥意义,但是因为他俩拆出来是可以满足命题的基本定义的,所以带有“如果……则……”的说法的都不属于原子命题。
布尔值(Boolean)
逻辑学经常使用对/错这种说法。在严谨的学科范畴里,对和错一般称为真(True)和假(False)。如果我们把他类比于数字里整数、小数视为同样的表达,也用来衡量数据表示一个量的话,那么真假我们会称为是一个布尔值(Boolean Value,简称 Boolean 或 Bool)。就是说,整数集合包含 0、1、-3 这些,小数包含 0.3 啊、自然常数 e 啊这些。那么相应地,布尔值的集合就只有 true 和 false 两个值。
前提(Premise)和结论(Conclusion)
当命题较为复杂时,我们会常用“如果……,则……”之类的表述来承接条件和结论两部分。我们把前面“如果……”的条件部分称为前提(Premise),而后面的“则……”的部分称为结论(Conclusion)。
这种命题是一种特殊的命题,它具有严格的推论过程,我们后面描述的内容也多以这种结构化的命题出现。
一般的命题,如“地是湿的”,并不能完整表达一些我们严格要说明的内容;但是如果搭配了前提和结论两部分,那么句子就会比较饱满:“如果下雨,地就会被打湿”。这也是我们比较常见的命题类型。
不过要注意的是,这种带有前提和结论的命题类型,前提不一定非得只有一个,可以有多个同时作为条件;也可以使用逻辑的“而且”、“但是”、“或者”搭配形成复杂的结构。
逻辑学符号
针对于前文,我们会用到两部分的符号:命题的表示,以及构造复杂命题用到的连接符号。
命题符号
逻辑符号
我们使用如下的一些符号来联立多个命题:
举个例子。“如果你回家的路上看到了水果店开着,就买一个西瓜”。这个命题拆解成原子命题后有四个部分构成:
于是,这四部分用上述符号表示出来是这样的:
有人问,这回家和在路上不是一起发生的吗?这还用得着拆成两部分?其实是必要的。因为你回家确实是在路上,但是你在路上不一定暗示你是往家的方向前进。他俩描述的内容从命题的角度来说并不是同一个,只是恰好在这个例子里是包含关系罢了。
推导符号
那么我们假设我们把上面的说法稍加改良。一旦有上面“让他回家路上买西瓜”作为先决条件的话,那么假设他真的带了西瓜回家,我们就可以得到水果店开着的结论。这个可以记作
其中逗号分隔不同的命题,表示罗列,也可以理解为数学上的联立式子。当然,一般也可换行写:
等价式子
根据前面列举的内容,我们知道符号都是怎么写了。下面我们来看看一些常见的等价式。
分配律
交换律
结合律
排中律和矛盾律
双重否定律
德摩根律
双条件分解
蕴含转化
其中部分公式比较难以理解,我们暂且不表。我们先回到命题上来。
命题的等价性
在逻辑学里,我们对命题(尤其是描述为“如果……则……”的命题)有严格的真假性等价判断。不过这里我们要介绍四种命题说法。
多数时候,逆命题、否命题和逆否命题我们都不是很关心。但是在数独技巧里,我们有时会需要灵活运用这些命题的转换,以便帮助我们理解有些复杂的逻辑。
我们拿一个例子来说明这四个命题。比如说“如果我感冒了,我就会流鼻涕”。下面我们将这个命题转换为这四个命题的说法:
原命题:如果我感冒了,我就会流鼻涕;
逆命题:如果我流鼻涕了,我就感冒了;
否命题:如果我不感冒,我就不会流鼻涕;
逆否命题:如果我不流鼻涕了,我就不感冒了。
在逻辑学里,只有互为逆否的命题的真假性才等价。什么意思呢?简单来说就是,原命题和逆否命题同真假性,逆命题和否命题同真假性。
显然,逆命题和否命题也没看出来有什么问题。但是实际上,这两个说法的真假性和原命题其实没有关系。原命题阐述的是感冒和流鼻涕的关系;但流鼻涕就一定是感冒引起的吗?鼻炎有时候也会造成流鼻涕的问题。所以严格来说,逆命题这个说法并不成立。当然,否命题也是如此:我不感冒,万一有鼻炎呢,不也流鼻涕吗。
说实话,我们最常在生活中因为逆命题和否命题的理解问题造成判断失误的情况。我们一定要时刻记清楚“只有互为逆否的命题才是等价的”这一点。
一些问题
下面我们针对于前面的内容列举一些你可能会有的问题。
问题 1:逻辑蕴含怎么还有真假性的?
所以四个组合里只有第二种明确不符合题意。那么我们尝试把这个三个式子联立起来,即
我们使用前面学到的公式进行化简:
这样我们就有了最后的这个结果。
问题 2:为什么互为逆否命题等价?
这一点我们可以尝试使用前文蕴含转化的方式来证明得到。我们将四种命题从蕴含的箭头改为逻辑或运算:
最后更新于