這里是離散數學第一篇學習筆記 qwq,也是我嘗試使用 Markdown 記課上筆記的開始,離散數學是一門研究離散量的科學,是數據結構、算法設計的基礎,這里不僅有有趣的邏輯與集合,還會有“超級好玩”的群論和圖論等待你去探索。就讓我們一起暢游這“魔法”的世界吧!
由於離散數學的知識較多,這里是數理邏輯部分的筆記 qwq。
本筆記采用在課上簡記,課后完善的模式,有可能因時間不夠停更,並且作者認為比較簡單的證明和定義會簡寫甚至略去,並且幾乎不會舉例子。同時還總是希望盡量不全部按照書上寫的定義而通過自己語言來敘述,雖然很多時候最后還是感覺自己表述的不清楚而寫的書上的定義。
本學科為 28 課時講課 + 4 課時實驗 (office 315)
似乎沒有找到可以顯示出課本上所印刷的 “不可兼析取” 符號的 LaTeX 公式,所以使用 \oplus
(即 \(\oplus\))來代替。
首先給出命題的概念:能表達判斷且有確切的真值的陳述句。命題的真值只有兩種即 True 和 False,但悖論這種自相矛盾的陳述句不是命題,因為它不可能有確切的真值。
我們可以根據命題的描述復雜程度將命題分為原子命題和復合命題,原子命題是一種不可分解為更簡單語句的陳述句,復合命題是由若干原子命題通過聯結詞構成的命題。
為了便於數學的符號化表示,我們需要對聯結詞進行明確規定並給出其符號表示,下面是一些基本的聯結詞:(按照優先級排序)
名稱 | 符號 | 意義 |
---|---|---|
否定 | \(\lnot\) | 取反 |
合取 | \(\and\) | 且 |
析取 | \(\or\) | 可兼或 |
條件 | \(\r\) | 若…則… |
雙條件(同或) | \(\lr\) | 當且僅當 |
對於條件句,我們總是遵循善意的推並,即當前件(前提)為假時,無論后件(結論)真值為何,我們總是認為條件句的真值為真。並且在條件句和雙條件句中,我們並不要求它們的前件與后件有實際的聯系。
有了以上的概念,我們就可以將現實生活中的一些可以被視為命題的陳述句翻譯為我們的數學語言了,下文給出了翻譯的大致方法:
-
找到原語句中包含的原子命題;
-
將原語句中的關聯詞翻譯成適當的邏輯聯結詞;
-
將其用數學的符號寫出。
值得注意的一點是,關聯詞 ”只有…才…“ 是條件句。A if B 為 \(B \r A\),A only if B 為 \(A \r B\),A if and only if B 為 \(A \lr B.\)
命題常量為表示確定命題的符號,命題變元為表示任意命題的符號,但其不是命題,原子變元為表示原子命題的命題變元,給命題變元指定值的操作叫做指派。
命題公式采用遞歸(下文中 1. 稱為基礎,2. 3. 稱為歸納,4. 稱為界限)的定義,規定為:
- 單個命題變元本身為命題公式;
- 如果 \(P\) 為合法的命題公式,則 \(\lnot P\) 也為合法的命題公式;
- 如果 \(P, Q\) 為合法的命題公式,則 \((P \and Q), (P \or Q), (P \r Q), (P \lr Q)\) 均為合法的命題公式。
- 當且僅當通過若干個命題變元和聯結詞通過法則 1. 2. 3. 進行有限次的拼接所形成的字符為命題公式。
對於一個命題公式中分量真值的各種指派所形成的各種組合所匯列成表,即為命題公式的真值表。
當給兩個命題公式任意一組真值指派,它們的真值始終相等,則兩個命題公式等價。我們如果想要證明兩個問題中,兩個命題公式是否等價,可以通過分別列出其真值表,而由 \(n\) 個命題變元所組成的命題有 \(2^n\) 種不同的真值指派,所以如果要依靠真值表證明,顯然過於繁瑣。我們可以通過一些法則來化簡它們,在下文的推理理論部分會整合此類公式,所以這里先不列出公式。
子公式為一個命題公式的一部分,且這一部分本身是一個合法的命題公式。如果一個命題公式的子公式被其等價的命題公式置換,置換后得到的命題公式與原命題公式等價。
如果一個命題公式,無論對其分量做什么指派,其真值永為真,則稱該命題公式為重言式(也稱永真式)。如果存在一種對其分量的指派使得命題公式真值可以為真,則稱命題公式為可滿足的。顯然重言式是特殊的可滿足式。如果一個命題公式不可滿足,則稱其為矛盾式(或永假式)。如果 \(A \and B\) 為矛盾式,則稱 \(A\) 與 \(B\) 是不相容的。
容易注意到,當且僅當 \(P \lr Q\) 為重言式時,有 \(P \Lr Q\)。
我們定義當 \(P \r Q\) 為重言式時,我們稱 \(P\) 蘊含 \(Q\),記作 \(P \R Q\)。注意 \(P \r Q\) 與 \(Q \r P\) 並不等價,通過真值表驗證,我們有:
其中對 \(P \r Q\) 來說,\(Q \r P\) 稱為其逆換式,\(\lnot P \r \lnot Q\) 稱為其反換式,\(\lnot Q \r \lnot P\) 稱為其逆反式。
如果要證 \(P \R Q\),只需證當 \(P\) 為 1 時,\(Q\) 的真值為 1,或者當 \(Q\) 為 0 時,\(P\) 的真值為 1。這兩種情況均可說明 \(P \R Q.\)
\(P \Lr Q\) 當且僅當 \(P \R Q\) 且 \(Q \R P.\)
下面介紹對偶和范式的概念,對偶是指在給定的命題公式中將 \(\and\) 換成 \(\or\),\(\or\) 換成 \(\and\),將 \(\mathbf{T}\) 換為 \(\mathbf{F}\),則改變后的命題公式和原公式互為對偶。命題公式 \(A\) 的對偶式記為 \(A^*\)。我們容易發現,如果 \(A\) 是由 \(n\) 個命題變元 \(P_1, P_2, \cdots, P_n\) 組成(記作 \(A(P_1, P_2, \cdots, P_n)\)),則有:
根據上述結論,我們有一個推論:若 \(A \Lr B\),則 \(A^* \Lr B^*\)。
合取范式是形如:
其中 \(A_i \, (1 \leq i \leq n)\) 為由命題變元或其否定所組成的析取式。
而析取范式的定義形式和合取范式類似,不再贅述。
容易發現與一個命題公式等價的析取范式有許多個,為了方便,我們希望找到一個較為規范的析取范式,使得每個命題公式只對應一個這樣規范化的析取范式。考慮到對於幾個等價的命題公式,它們的真值表一定是唯一的,所以我們就希望找到一種將真值表中的值 “翻譯” 成命題公式的方法,於是就有了小項。
小項即指 \(n\) 個命題變元的合取式,其中每個命題變元或其否定在式中恰好出現一次,且不與其否定同時出現。顯然對於 \(n\) 個命題變元的小項,其有以下性質:
- 一個小項的真值為真當且僅當命題變元的真值指派與小項中命題變元的出現形式一一對應;
這里的對應是指,例如對於 3 個命題變元,\(P, Q, R\),我們討論的小項為 \(P \and \lnot Q \and R\),則當且僅當將 \(P, R\) 指派為 1,\(Q\) 指派為 0,此時該小項的真值才為 1。也就是說對應關系是指將在小項中出現其本身的命題變元指派為 1,出現其否定的命題變元指派為 0。所以我們也可以使用二進制來表示小項,如上文的小項記作 \(m_{101}.\)
- 任意兩個不同小項的合取為矛盾式;
- 所有小項的析取為重言式;
- 小項的總數為 \(2^n\) 個。
主析取范式即為僅由小項的析取組成的命題公式,由小項的性質可知,其反映了命題公式的真值表。所以我們很容易得出,一個命題公式所有在真值表中為 \(\mathbf{T}\) 的指派所對應的小項組成的析取為該命題公式的主析取范式。我們同樣可以通過邏輯推理將命題公式轉化為主析取范式。
我們主要通過以下幾步利用邏輯推理將命題公式轉化為主析取范式:
- 求與命題公式等價的析取范式;
- 去除式中為矛盾式的子公式,合並相同的子公式;
- 使用同一律補項,結合律展開,使之變為小項的析取式,對小項去重后即得到主析取范式。
對於主析取范式,我們借助了小項的概念,而對於主合取范式,我們則要借助大項的概念。
大項即指 \(n\) 個命題變元的析取式,其中每個命題變元或其否定在式中恰好出現一次,且不與其否定同時出現。我們可以仿照小項的性質,發現大項的以下性質:
- 一個大項的真值為假當且僅當命題變元的真值指派與小項中命題變元的出現形式一一對應(對應形式與小項相反,如仍對於 3 個命題變元組成的一個大項 \(P \or \lnot Q \or R\),我們記為 \(M_{010}\));
- 任意兩個不同大項的析取為重言式;
- 所有大項的合取為矛盾式;
- 大項的總數為 \(2^n\) 個。
同樣我們也有:
主合取范式為僅由大項的合取組成的命題公式,由大項的性質可知,其反映了命題公式的真值表。所以我們很容易得出,一個命題公式所有在真值表中為 \(\mathbf{F}\) 的指派所對應的大項組成的合取為該命題公式的主合取范式。顯然我們可以也仿照求主析取范式的方法求主合取范式,方法不再贅述。
我們發現,若全集 \(U = \{0, 1, \cdots, 2^n - 1\}\),\(S\) 為一個命題公式主析取范式中所有小項的下標所組成的集合,則主析取范式與主合取范式的關系為,(這里 \(\sum\) 為析取,\(\prod\) 為合取):
有了前面的各種鋪墊,我們發現,我們當要通過一些已知的前提推理一些結論時,我們可以通過符號式的表達將結論推理出來。當然這里的推理僅是對命題中假設的真值和聯結詞的轉化。為了方便,我們常常將前提的真值設為真。
我們對有效結論給出一個符號化的定義:如果 \(A, C\) 兩個命題公式有 \(A \R C\),則稱 \(C\) 為 \(A\) 的有效結論,更普遍的如果 \(n\) 個命題公式 \(H_1, H_2, \cdots, H_n\) 滿足 \(\prod_{i = 1}^n H_i \R C\),則稱 \(C\) 為前提 \(H_1, H_2, \cdots, H_n\) 的有效結論。
我們判定有效結論的過程為論證的過程。我們會分別介紹幾種證法:
- 真值表法
直接將前提和結論中所有的命題變元列真值表,對應確定所有真值的可能性,看是否有 \(\prod_{i = 1}^n H_i \R C.\)
- 直接證法
直接證法使用推理規則使用已知的等價公式或蘊含公式推出結論,其中有兩個規則:
P 規則:前提在推導的過程中都可以引入推導過程。
T 規則:在推導過程中,如果有一個或多個公式與前提或已推導出的命題公式所蘊含或等價,則其可以引入推導過程。
我們在此列出一些常用的蘊含公式:
標號 | 內容 | 標號 | 內容 |
---|---|---|---|
$$I_1$$ | $$P \and Q \R P$$ | $$I_9$$ | $$P, Q \R P \and Q$$ |
$$I_2$$ | $$P \and Q \R Q$$ | $$I_{10}$$ | $$\lnot P, P \or Q \R Q$$ |
$$I_3$$ | $$P \R P \or Q$$ | $$I_{11}$$ | $$P, P \r Q \R Q$$ |
$$I_4$$ | $$Q \R P \or Q$$ | $$I_{12}$$ | $$\lnot Q, P \r Q \R \lnot P$$ |
$$I_5$$ | $$\lnot P \R P \r Q$$ | $$I_{13}$$ | $$P \r Q, Q \r R \R P \r R$$ |
$$I_6$$ | $$Q \R P \r Q$$ | $$I_{14}$$ | $$P \or Q, P \r R, Q \r R \R R$$ |
$$I_7$$ | $$\lnot (P \r Q) \R P$$ | $$I_{15}$$ | $$A \r B \R (A \or C) \r (B \or C)$$ |
$$I_8$$ | $$\lnot (P \r Q) \R \lnot Q$$ | $$I_{16}$$ | $$A \r B \R (A \and C) \r (B \and C)$$ |
一些常用的等價公式:
標號 | 內容 | 標號 | 內容 |
---|---|---|---|
$$E_1$$ | $$\lnot (\lnot P) \Lr P$$ | $$E_{12}$$ | $$R \or (P \and \lnot P) \Lr R$$ |
$$E_2$$ | $$P \and Q \Lr Q \and P$$ | $$E_{13}$$ | $$R \and (P \or \lnot P) \Lr R$$ |
$$E_3$$ | $$P \or Q \Lr Q \or P$$ | $$E_{14}$$ | $$R \or (P \or \lnot P) \Lr \mathbf{T}$$ |
$$E_4$$ | $$(P \and Q) \and R \Lr P \and (Q \and R)$$ | $$E_{15}$$ | $$R \and (P \and \lnot P) \Lr \mathbf{F}$$ |
$$E_5$$ | $$(P \or Q) \or R \Lr P \or (Q \or R)$$ | $$E_{16}$$ | $$P \r Q \Lr \lnot P \or Q$$ |
$$E_6$$ | $$P \and (Q \or R) \Lr (P \and Q) \or (P \and R)$$ | $$E_{17}$$ | $$\lnot (P \r Q) \Lr P \and \lnot Q$$ |
$$E_7$$ | $$P \or (Q \and R) \Lr (P \or Q) \and (P \or R)$$ | $$E_{18}$$ | $$P \r Q \Lr \lnot Q \r \lnot P$$ |
$$E_8$$ | $$\lnot (P \and Q) \Lr \lnot P \or \lnot Q$$ | $$E_{19}$$ | $$P \r (Q \r R) \Lr (P \and Q) \r R$$ |
$$E_9$$ | $$\lnot (P \or Q) \Lr \lnot P \or \lnot Q$$ | $$E_{20}$$ | $$P \lr Q \Lr (P \r Q) \and (Q \r P)$$ |
$$E_{10}$$ | $$P \or P \Lr P$$ | $$E_{21}$$ | $$P \lr Q \Lr (P \and Q) \or (\lnot P \and \lnot Q)$$ |
$$E_{11}$$ | $$P \and P \Lr P$$ | $$E_{22}$$ | $$\lnot (P \lr Q) \Lr P \lr \lnot Q$$ |
- 間接證法(反證法,CP 規則)
有時候我們通過直接證法證明命題過於困難,我們可以將這個問題通過某種方式轉化:
反證法,要證 \(\prod_{i = 1}^n H_i \R C\),設 \(S \Lr \prod_{i = 1}^n H_i\),則有 \(S \r C \Lr \lnot S \or C \Lr \mathbf{T}\),則 \(S \and \lnot C\) 為矛盾式,故只需證 \(\prod_{i = 1}^n H_i\) 和 \(\lnot C\) 不相容。
CP 規則, 如果要證 \(\prod_{i = 1}^n H_i \R (R \r C)\),設 \(S \Lr \prod_{i = 1}^n H_i\),則有 \(S \r (R \r C) \Lr (S \and R) \r C \Lr \mathbf{T}\),故只需證 \(\prod_{i = 1}^n H_i \and R \R C.\)
我們下面再介紹一些聯結詞:不可兼析取(異或),條件否定,與非,或非。
我們定義聯結詞不可兼析取(異或)記作 \(\oplus\),我們直接使用之前定義過的命題公式定義它:\(P \oplus Q \Lr (P \and \lnot Q) \or (\lnot P \and Q)\),根據其真值表,我們可以將其視為不進位的二進制加法。除定義之外,其還有以下性質:
我們定義聯結詞條件否定記作 \(\xr{c}\),與非記作 \(\u\),或非記作 \(\d\),我們仍然用之前的命題公式定義它們:
我們可以看到與非,或非的一些性質:
我們根據 \(P, Q\) 的真值表可能的真值情況(一共有 \(2^4 = 16\) 種),推斷出不需要新的聯結詞。
而由等價公式可知,一些聯結詞總是可以被另外一些聯結詞的公式等價替換。我們有時希望命題公式中出現聯結詞的種類盡可能少,但又不可以太少,以至於我們不能表達所有命題公式。所以我們給出最小聯結詞組的概念:即對於一個由聯結詞組成的集合,如果任意命題公式都可以等價轉化成只使用這個集合中聯結詞組成的命題公式,且這個集合的任意真子集不具有這個性質,那么就稱這個集合為最小聯結詞組。
至此,本部分的知識已經更新完畢,感覺這一章充滿了數學中邏輯的味道,終於明白了我們證明問題其實在描述什么。其中引出主析取范式的想法,即 “使用某種方法讓命題公式可以直接描述真值表” 的想法着實讓我眼前一亮。我個人比較喜歡證明和研究定義為何是良定義,大概也因為會時不時看到這種讓我感覺到精彩的思路。
數學真的可以被稱作是一門魔法,它就在我們身邊,卻又將看似不可能的東西聯系起來。我也要盡快學習,成為一個有一定資質的魔法師 qwq!醒醒,你是計算機專業的(逃