離散數學 - 知識點
離散數學作為 CS 的基礎課,卻並不是其它專業的基礎課。在進行計算機相關課程的學習時,如果沒有離散數學的基礎,會碰到一些理論上的困難。
參考:
《離散數學(第 2 版)》屈婉玲,耿素雲,張立昂,高等教育出版社。
1 命題邏輯的基本概念
1.1 命題與聯結詞
- 非真即假的陳述句稱作命題
陳述句是陳述一個事實或者說話人看法的句型。陳述句分為肯定的陳述句和否定的陳述句,簡稱肯定句和否定句。(摘自百度百科-陳述句)
- 作為命題的陳述句所表達的判斷結果稱作命題的真值,真值只能取兩個值:真或假。真值為真的命題稱為真命題,真值為假的命題稱為假命題。
- 不能被分解為更簡單的命題稱作簡單命題或原子命題。由簡單命題通過聯結詞聯結而成的命題,稱作復合命題。
命題的非真即假是指命題要么為真,要么為假,而不是可能為真,可能為假。
對於陳述:2 是偶數。該陳述一定為真,因此是命題。
對於陳述:X 是偶數,其中 X 是正整數。該陳述不一定為真,因此不是命題。
對於陳述:我正在說假話。如果命題為真,則根據命題可以推斷出命題為假;反之亦然。
-
如果一個命題能由真推出假,由假推出真,也即這個命題既不能為真,也不能為假,則稱為悖論。悖論不是命題。
-
定義 1.1
設 \(p\) 為命題,復合命題“非 \(p\)”(或 “\(p\) 的否定”)稱作 \(p\) 的否定式,記作 \(\lnot p\) 。\(\lnot\) 稱作否定聯結詞。規定 \(\lnot p\) 為真當且僅當 \(p\) 為假。 -
定義 1.2
設 \(p\), \(q\) 為兩個命題,復合命題“\(p\) 並且 \(q\)”(或 “\(p\) 與 \(q\) ”)稱為 \(p\) 與 \(q\) 的合取式,記作 \(p\land q\) 。\(\land\) 稱作合取聯結詞。規定 \(p\land q\) 為真當且僅當 \(p\) 與 \(q\) 同時為真。 -
定義 1.3
設 \(p\), \(q\) 為兩個命題,復合命題“\(p\) 或 \(q\)”稱作 \(q\) 與 \(q\) 的析取式,記作 \(p\lor q\)。\(\lor\) 稱作析取聯結詞。規定 \(p\lor q\) 當且僅當 \(p\) 與 \(q\) 同時為假。 -
定義 1.4
設 \(p\), \(q\) 為兩個命題,復合命題“如果 \(p\) ,則 \(q\)” 稱為 \(p\) 與 \(q\) 的蘊涵式,記作 \(p\to q\) ,並稱 \(p\) 是蘊含式的前件,\(q\) 為蘊涵式的后件。\(\to\) 稱作蘊涵聯結詞。並規定 \(p\to q\) 為假當且僅當 \(p\) 為真 \(q\) 為假。
蘊含式是一個命題,因此是一個非真即假的陳述句。蘊含式僅說明陳述句具有蘊涵結構。
注意蘊涵關系里,\(p\) 和 \(q\) 不需要有邏輯上的聯系。
若 \(p\) 為真,\(q\) 為真,則 \(p\to q\) 為真。例如:如果太陽從東邊升起,則 1 等於 1。
若 \(p\) 為真,\(q\) 為假,則 \(p\to q\) 為假,例如:如果太陽從東邊升起,則 1 等於 2。
若 \(p\) 為假,則 \(p\to q\) 為真。這是因為假設的命題不為真,則推導的命題也就無法驗證。例如:如果太陽從西邊升起,則 1 等於 2。因為假設不成立,因此也就無法驗證假設的推導是否成立。
\(p\to q\) 語義上是 \(p\) 蘊涵 \(q\) ,也即 \(q\) 是 \(p\) 的必要條件。
蘊涵關系(\(p\to q\))的幾種表述形式:
- 若 \(p\) ,則 \(q\) 。
- 只要 \(p\) ,則 \(q\) 。
- \(p\) ,僅當 \(q\) 。
- 除非 \(q\) ,才有 \(p\) 。
- 除非 \(q\) ,否則 \(p\) 不發生。
- 只有 \(q\) ,才有 \(p\) 。
- 定義 1.5
設 \(p\), \(q\) 為兩個命題,復合命題“ \(p\) 當且僅當 \(q\)” 稱作 \(p\) 與 \(q\) 的等價式,記作 \(p \leftrightarrow q\) ,\(\leftrightarrow\) 稱作等價聯結詞。規定 \(p\leftrightarrow q\) 為真當且僅當 \(p\) 與 \(q\) 同時為真或同時為假。
命題符號化的例子
- 吳穎既用功又聰明
\(p\):吳穎用功
\(q\):吳穎聰明
\(p\land q\)- 張輝雖然聰明,但不用功
\(p\):張輝聰明
\(q\):張輝用功
\(p\land \lnot q\)- 張曉靜是江西人或安徽人
\(p\):張曉靜是江西人
\(q\):張曉靜是安徽人
\(p\lor q\)- 張靜初只能挑選 202 房間或 203 房間
\(p\):張靜初挑選 202 房間
\(q\):張靜初挑選 203 房間
注意互斥性,因此為 \((p\lor \lnot q)\lor (\lnot p\land q)\)- 如果 \(3+3=6\) ,則雪是白色的
\(p\):\(3+3=6\)
\(q\):\(雪是白色的\)
\(p\to q\),\(p\) 的真值為真,\(q\) 的真值為真,\(p\to q\) 的真值為真。- 只要 \(a\) 能被 \(4\) 整除,則 \(a\) 一定能被 \(2\) 整除
- \(a\) 能被 \(4\) 整除,僅當 \(a\) 能被 \(2\) 整除
- 只有 \(a\) 能被 \(2\) 整除,\(a\) 才能被 \(4\) 整除
\(p\):\(a\) 能被 \(4\) 整除
\(q\):\(a\) 能被 \(2\) 整除
\(p\to q\)
\(p\) 和 \(q\) 都不具有確定的值,但是 \(p\to q\) 本身為真。- \(\sqrt{3}\) 是無理數當且僅當加拿大位於亞洲
\(p\):\(\sqrt{3}\) 是無理數
\(q\):加拿大位於亞洲
\(p\leftrightarrow q\)
\(p\) 的真值為 1,\(q\) 的真值為 0,\(p\leftrightarrow q\) 的真值為 0。
1.2 命題公式及其賦值(命題形式及真值表)
本節解決問題:
- 是不是所有符號串都是命題?
- 符號串的真假值如何判斷?
-
簡單命題是命題邏輯中最基本的研究單位,其真值是確定的,又稱為命題常項,或命題常元。取值 1 (真)或 0 (假)的變元稱作命題變項,或命題變元。
-
將命題變項用聯結詞和圓括號按照一定的邏輯關系聯結起來的符號串稱作合式公式。
-
定義 1.6
(1)單個命題變項是合式公式,並稱為原子命題公式。
(2)若 \(A\) 是合式公式,則 \((\lnot A)\) 是合式公式。
(3)若 \(A\), \(B\) 是合式公式,則 \((A\land B)\), \((A \lor B)\), \((A\to B)\), $ (A\leftrightarrow B)$ 是合式公式。
(4)有限次地應用(1)~(3)形成的符號串是合式公式。
注意:嚴格來講,命題公式都是有括號的,只是可以把不影響運算次序的括號省略。
這是一種歸納定義的定義方法。 -
命題形式的 BNF(Bacus Normal Form):
\(\alpha ::= p | (\lnot \alpha) | (\alpha\lor \beta) | (\alpha\land \beta) | (\alpha\rightarrow\beta) | (\alpha\leftrightarrow\beta)\)
::= 理解為“定義為”。 -
合式公式也稱作命題公式或命題形式,簡稱為公式。
-
設 \(A\) 為合式公式,\(B\) 是 \(A\) 的一部分,若 \(B\) 也是合式公式,則稱 \(B\) 為 \(A\) 的子公式。
-
對象語言是用來描述研究對象的語言,元語言是用來描述對象語言的語言。
-
定義 1.7
(1)若公式 \(A\) 是單個的命題變項,則稱 \(A\) 為 \(0\) 層公式。
(2)稱 \(A\) 是 \(n+1(n \ge 0)\) 層公式是指下面的情況之一。
(a)\(A=\lnot B\),\(B\) 是 \(n\) 層公式;
(b)\(A=B\land C\),其中 \(B\), \(C\) 分別為 \(i\) 和 \(j\) 層公式,且 \(n=max(i,j)\);
(c)\(A=B\lor C\), \(A=B\to C\), \(A=B\leftrightarrow C\),其中 \(B\), \(C\) 的層次分別同(b)。
(3)若公式 \(A\) 的層次為 \(k\),則稱 \(A\) 是 \(k\) 層公式。
公式的層數:
單目聯結詞使公式層數增 1。
雙目聯結詞使公式層數在兩個參與與運算的公式的最高層數基礎上增 1。
-
命題形式的值由命題形式中的命題變元的值完全確定。
-
定義 1.8
設 \(p_1, p_2, ..., p_n\) 是出現在公式 \(A\) 中的全部命題變項,給 \(p_1, p_2, ..., p_n\) 各指定一個真值,稱為對 \(A\) 的一個賦值或解釋或指派。若指定的一組值使 \(A\) 為 1,則稱這組值為 \(A\) 的成真賦值(成真指派);若使 \(A\) 為 0,則稱這組值為 \(A\) 的成假賦值(成假指派)。
含 \(n(n \ge 1)\) 個命題變項的公式共有 \(2^n\) 個不同的賦值。
- 定義 1.9
將命題公式 \(A\) 在所有賦值下取值情況列成表,稱作 \(A\) 的真值表。
構造真值表的具體步驟:
(1)找出公式中所含的全體命題變項 \(p_1, p_2, ..., p_n\) ,列出 \(2^n\) 個賦值。賦值從 \(00...0\) 開始,然后按二進制加法加 1 ,依次寫出每個賦值,直到 \(11...1\) 為止。
(2)按照從低到高的順序寫出公式的各個層次。
(3)對應各個賦值計算出各層次的真值,直到最后計算出公式的真值。
例:求 \(\lnot p\) 的真值表。
\(p\) \(\lnot p\) 0 1 1 0
例:求 \(p\to q\) 的真值表。
\(p\) \(q\) \(p \to q\) 0 0 1 0 1 1 1 0 0 1 1 1
例:求 \(p \leftrightarrow q\) 的真值表。
\(p\) \(q\) \(p\leftrightarrow q\) 0 0 1 0 1 0 1 0 0 1 1 1
-
如果兩個公式 \(A\) ,\(B\) 的真值表對所有賦值最后一列都相同,即最后結果都相同,則稱這兩個真值表相同。
-
定義 1.10
設 \(A\) 為任一命題公式。
(1)若 \(A\) 在它的各種賦值下取值均為真,則稱 \(A\) 為重言式或永真式。
(2)若 \(A\) 在它的各種賦值下取值均為假,則稱 \(A\) 為矛盾式或永假式。
(3)若 \(A\) 不是矛盾式,則稱 \(A\) 為可滿足式。
若真值表的全為 1,則為永真式,若全為 0,則為永假式,若有 1,則為可滿足式。
擴展:布爾邏輯的可滿足問題(SAT 問題)是歷史上第一個被證明的 NPC 問題,居七個“千禧年”數學難題之首。
- 設公式 \(A, B\) 共含有命題變項 \(p_1,p_2,...,p_n\) ,而 \(A\) 或 \(B\) 不全含這些命題變項,例如,\(A\) 中不含 \(p_{i},p_{i+1},...,p_n,i\ge 2\) ,稱這些命題變項為 \(A\) 的啞元。
2 命題邏輯等值演算
2.1 等值式
- 定義 2.1
設 \(A,B\) 是兩個命題公式,若 \(A,B\) 構成的等價式 \(A\leftrightarrow B\) 為重言式,則稱 \(A\) 與 \(B\) 是等值的,記作 \(A\Leftrightarrow B\) 。
注:
\(\Leftrightarrow\) 是元語言符號,而 \(\leftrightarrow\) 是對象語言符號。
對命題常項(陳述句)而言,等價是陳述句的陳述形式。對命題變項而言,等價是命題變項或其組合(合式公式)之間的聯系。等值是針對兩個命題公式(也即合式公式)而言,表示兩個公式在任何情況下(所含的命題變項的所有取值組合)都具有相同的值。
若 \(A\) 和 \(B\) 等值,則 \(A, B\) 等價為真。
- 設 \(A\) 是一個命題公式,含有命題變項 \(p_1,p_2,...,p_n\) ,又設 \(A_1,A_2,...,A_n\) 是任意的命題公式。對每一個 \(i(i=1,2,...,n)\) ,把 \(p_i\) 在 \(A\) 中的所有出現都替換成 \(A_i\) ,所得到的新命題公式記作 \(B\) 。那么,如果 \(A\) 是重言式,則 \(B\) 也是重言式。將重言式中的任意命題變項替換成任意公式后得到的公式也是重言式,稱前后兩個公式為等值式模式。
常用的 16 組等值式模式
- 雙重否定律
\(A\Leftrightarrow \lnot\lnot A\)
證明:
\(p\) \(\lnot p\) \(\lnot \lnot p\) 0 1 0 1 0 1
- 冪等律
\(A\Leftrightarrow A\land A\)
\(A\Leftrightarrow A\lor A\)
證明:
\(p\) \(p\land p\) \(p\lor p\) 0 0 0 1 1 1
交換律
\(A\lor B\Leftrightarrow B\lor A\)
\(A\land B\Leftrightarrow B\land A\)
證明:顯然。結合律
\((A\land B)\land C\Leftrightarrow A\land (B\land C)\)
\((A\lor B)\lor C\Leftrightarrow A\lor(B \lor C)\)
證明:略。分配律
\(A\lor(B \land C)\Leftrightarrow (A\lor B)\land (A\lor C)\)
\(A\land(B\lor C)\Leftrightarrow (A\land B)\lor (A\land C)\)
證明:略。補充:
\((A\land B)\lor (C\land D)\Leftrightarrow\)
\((A\lor C)\land (A\lor D)\land (B\lor C)\land (B\lor D)\)
\((A\lor B)\land (C\lor D)\Leftrightarrow\)
\((A\land C)\lor (A\land D)\lor (B\land C)\lor (B\land D)\)
- 德摩根律
\(\lnot (A\lor B)\Leftrightarrow \lnot A\land \lnot B\)
\(\lnot (A\land B)\Leftrightarrow \lnot A\lor \lnot B\)
證明:
只證一個。
\(p\) \(q\) \(p\lor q\) \(\lnot(p\lor q)\) \(\lnot p\) \(\lnot q\) \(\lnot p \land \lnot q\) 0 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0
- 吸收律
\(A\lor (A\land B)\Leftrightarrow A\)
\(A\land(A\lor B)\Leftrightarrow A\)
\(p\) \(q\) \(p\land q\) \(p\lor(p\land q)\) 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1
零律
\(A\lor 1\Leftrightarrow 1\)
\(A\land 0 \Leftrightarrow 0\)同一律
\(A\lor 0\Leftrightarrow A\)
\(A\land 1\Leftrightarrow A\)排中律
\(A\lor \lnot A\Leftrightarrow 1\)矛盾律
\(A\land \lnot A\Leftrightarrow 0\)蘊涵等值式
\(A\to B\Leftrightarrow \lnot A\lor B\)
證明:
\(p\) \(q\) \(\lnot p\) \(p\to q\) \(\lnot p\lor q\) 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1
- 等價等值式
\(A\leftrightarrow B\Leftrightarrow(A\to B)\land(B\to A)\)
\(p\) \(q\) \(p\to q\) \(q\to p\) \((p\to q)\land (q\to p)\) \(p\leftrightarrow q\) 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 1 1 1
- 假言易位
\(A\to B\to \lnot B \to \lnot A\)
\(p\) \(q\) \(p\to q\) \(\lnot p\) \(\lnot q\) \(\lnot q\to \lnot p\) 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 1
- 等價否定等值式
\(A\leftrightarrow B\Leftrightarrow \lnot A\leftrightarrow \lnot B\)
\(p\) \(q\) \(\lnot p\) \(\lnot q\) \(p\leftrightarrow q\) \(\lnot p\leftrightarrow \lnot q\) 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1
- 歸謬論
\((A\to B)\land(A\to\lnot B)\Leftrightarrow \lnot A\)
\(p\) \(q\) \(\lnot p\) \(\lnot q\) \(p\to q\) \(p\to \lnot q\) \((p\to q)\land (p\to \lnot q)\) 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0
可以觀察,等值關系和集合關系具有一致性。
否定聯結詞對應集合關系的補集。
合取聯結詞對應集合關系的交集。
析取聯結詞對應集合關系的合集。
- 將公式代入等值式模式即可得到一個具體的等值式,稱為等值式模式的代入實例。
- 由已知的等值式推演出另外一些等值式的過程稱作等值演算。
- 置換規則設 \(\Phi(A)\) 是含公式 \(A\) 的命題公式,\(\Phi(B)\) 是用公式 \(B\) 置換 \(\Phi(A)\) 中 \(A\) 的所有出現后得到的命題公式。若 \(B\Leftrightarrow A\) ,則 \(\Phi(A)\Leftrightarrow \Phi(B)\) 。
2.2 析取范式與合取范式
- 定義 2.2
命題變項及其否定統稱作文字。僅由有限個文字構成的析取式稱作簡單析取式。僅由有限個文字構成的合取式稱作簡單合取式。
文字如:\(p,\lnot q\)
簡單析取式如:\(p\lor q,\)
簡單合取式如:\(p\land q\)
-
定理 2.1
(1)一個簡單析取式是重言式當且僅當它同時含某個命題變項及它的否定式。
(2)一個簡單合取式是矛盾式當且僅當它同時含某個命題變項及它的否定式。 -
定義 2.3
由有限個簡單合取式的析取構成的命題公式稱作析取范式。由有限個簡單析取式的合取構成的命題公式稱作合取范式。析取范式與合取范式統稱作范式。
范式分為析取范式和合取范式。以析取范式為例,析取范式由簡單析取式構成,簡單析取式由文字的析取式構成,文字只能是命題變項或者其否定。
析取范式如 \(p\lor (\lnot p\land q)\lor (p\land q)\)
合取范式如 \(p\land (p\lor q)\land (p\lor \lnot q)\)
-
定理 2.2
(1)一個析取范式是矛盾式當且僅當它的每個簡單合取式都是矛盾式。
(2)一個合取范式是重言式當且僅當它的每個簡單析取式都是重言式。 -
定理 2.3
范式存在定理
任一命題都存在與之等值的析取范式與合取范式。
求給定公式范式的步驟為:
消去聯結詞 \(\to\), \(\leftrightarrow\) 。
\(A\to B\Leftrightarrow \lnot A\lor B\)
\(A\leftrightarrow B\Leftrightarrow (A\to B)\land (B\to A)\)用雙重否定律消去雙重否定符,用德摩根律內移否定符。
\(\lnot\lnot A\Leftrightarrow A\)
\(\lnot(A\lor B)\Leftrightarrow \lnot A\land \lnot B\)
\(\lnot(A\land B)\Leftrightarrow \lnot A\lor \lnot B\)使用分配律。
\(A\lor (B\land C)\Leftrightarrow (A\lor B)\land (A\lor C)\)
\(A\land (B\lor C)\Leftrightarrow (A\land B)\lor (A\land C)\)
例:求 \((p\to q)\leftrightarrow r\) 的析取范式和合取范式。
合取范式:
\((p\to q)\leftrightarrow r\) \(\Leftrightarrow\)
\((\lnot p\lor q)\leftrightarrow r\) \(\Leftrightarrow\)
\(((\lnot p\lor q) \to r)\land(r\to (\lnot p\lor q))\) \(\Leftrightarrow\)
\((\lnot r \lor (\lnot p\lor q))\land (\lnot (\lnot p\lor q)\lor r)\) \(\Leftrightarrow\)
\((\lnot r \lor \lnot p \lor q)\land ((p\land \lnot q)\lor r)\) \(\Leftrightarrow\)
\((\lnot r \lor \lnot p\lor q)\land (p\lor r)\land (\lnot q\lor r)\)
析取范式:
應用分配律時調整分配方式,即可。
\((\lnot r \lor \lnot p \lor q)\land ((p\land \lnot q)\lor r)\) \(\Leftrightarrow\)
\((\lnot r\land p\land \lnot q)\lor (\lnot r\land r)\lor (\lnot p\land p\land \lnot q)\lor (\lnot p\land r)\lor (q\land p\land \lnot q)\lor (q\land r)\Leftrightarrow\)
\((\lnot r\land p\land \lnot q)\lor (\lnot p\land r)\lor (q\land r)\)
- 定理 2.4
在含有 \(n\) 個命題變項的簡單合取式(簡單析取式)中,若每個命題變項和它的否定式恰好出現一個且僅出現一次,而且命題變項或它的否定式按照下標從小到大或按照字典順序排列,稱這樣的簡單合取式(簡單析取式)為極小項(極大項)。
兩個命題變項的極小項與極大項
極小項 成真賦值 名稱 \(\lnot p\land \lnot q\) 0 0
\(m_0\) \(\lnot p\land q\) 0 1
\(m_1\) \(p\land \lnot q\) 1 0
\(m_2\) \(p\land q\) 1 1
\(m_3\)
極大項 成假賦值 名稱 \(p\lor q\) 0 0
\(M_0\) \(p\lor \lnot q\) 0 1
\(M_1\) \(\lnot p\lor q\) 1 0
\(M_2\) \(\lnot p\lor \lnot q\) 1 1
\(M_3\)
-
定理 2.4
設 \(m_i\) 與 \(M_i\) 是命題變項含 \(p_1,p_2,...,p_n\) 的極小項和極大項,則 \(\lnot m_i\Leftrightarrow M_i\), \(\lnot M_i\Leftrightarrow m_i\) 。 -
定義 2.5
所有簡單合取式(簡單析取式)都是極小項(極大項)的析取范式(合取范式)稱為主析取范式(主合取范式)。
主析取范式由簡單合取式組成;主合取范式由簡單析取式組成。
例:求 \((p\to q) \leftrightarrow r\) 的主析取范式和主合取范式。
已有析取范式為 \((\lnot r\land p\land \lnot q)\lor (\lnot p\land r)\lor (q\land r)\) , 合取范式為 \((\lnot r \lor \lnot p\lor q)\land (p\lor r)\land (\lnot q\lor r)\) 。\(p\land \lnot q\land \lnot r\) \(\Leftrightarrow\)
\(m_4\)\((\lnot p \land r)\) $\Leftrightarrow $
\(\lnot p\land r\land (q\lor \lnot q)\)
\((\lnot p\land r\land q)\lor (\lnot p\land r\land \lnot q)\)
\(m_3 \lor m_1\)\(q\land r\)
\((p\lor \lnot p)\land q\land r\)
\((p\land q\land r)\lor (\lnot p\land q\land r)\)
\(m_7\lor m_3\)
故主析取范式為 \(m_1\lor m_3\lor m_4 \lor m_7\) 。\(p\lor r\) \(\Leftrightarrow\)
\(p\lor (q \land \lnot q)\lor r\) \(\Leftrightarrow\)
\((p\lor q\lor r)\land (p\lor \lnot q\lor r)\) \(\Leftrightarrow\)
\(M_0\land M_2\)\(\lnot q\lor r\) \(\Leftrightarrow\)
\((p\land \lnot p)\lor \lnot q\lor r\) \(\Leftrightarrow\)
\((p\lor \lnot q\lor r)\land (\lnot p\lor \lnot q\lor r)\)
\(M_2\lor M_6\)\(\lnot r\lor \lnot p\lor q\)
\(M_5\)即主合取式為 \(M_0\land M_2\land M_5 \land M_6\) 。
例:求命題公式 \(p\to q\) 的主析取范式與主合取范式。
\(p\to q\) \(\Leftrightarrow\)
\(\lnot p\lor q\) \(\Leftrightarrow\)
\(M_2\)
\(\Leftrightarrow\)
\((\lnot p\land (q\lor \lnot q))\lor ((p\lor \lnot p)\land q)\) \(\Leftrightarrow\)
\((\lnot p\land q)\lor (\lnot p\lor \lnot q)\lor (p\land q)\lor (\lnot p\land q)\) \(\Leftrightarrow\)
\(m_0\lor m_1\lor m_3\)
擴展
析取范式和合取范式的變換
\(p\lor q\) \(\Leftrightarrow\)
\(M_0\) \(\Leftrightarrow\)
\((p\land (q\lor \lnot q))\lor ((p\lor \lnot p)\land q)\) \(\Leftrightarrow\)
\((p\land q)\lor (p\land \lnot q)\lor (p\land q)\lor (\lnot p\land q)\) \(\Leftrightarrow\)
\(m_1 \lor m_2 \lor m_3\)\(p\land q\) \(\Leftrightarrow\)
\(m_3\) \(\Leftrightarrow\)
\((p\lor (q\land \lnot q))\land ((p\land \lnot p)\lor q)\) \(\Leftrightarrow\)
\((p\lor q)\land (p\land \lnot q)\land (p\lor q)\land (\lnot p\lor q)\) \(\Leftrightarrow\)
\(M_0 \land M_1 \land M_2\)
-
定理 2.5
任何命題公式都存在與之等值的主析取范式和主合取范式,並且是唯一的。 -
主析取范式、主合取范式的應用
- 求公式的成真賦值與成假賦值
例如,主析取范式的簡單析取式的下標的二進制形式即為成真賦值;主合取范式的簡單合取式的下標的二進制形式即為成假賦值。 - 判斷公式的類型
如判斷公式是否為重言式、矛盾式;是否為可滿足式。
如果析取式存在 \(2^n\) 個簡單析取式,則為重言式(永真式),如果不存在(為空,0),則為矛盾式;存在簡單析取式,則為可滿足式。
如果合取式存在 \(2^n\) 個簡單合取式,則為矛盾式(永假式),如果不存在(為空,0),則為重言式;簡單合取式的數量小於 \(2^n\) 個,則為可滿足式。 - 判斷兩個公式是否等值
寫出兩個公式的主析取范式或者主合取范式,如果一致,則等值;否則不等值。
- 求公式的成真賦值與成假賦值
例
判斷 \(p\) 與 \((p\land q)\lor (p\land \lnot q)\) 是否等值。
第二個公式是主析取式,為 \(m_2 \lor m_3\)
2.3 聯結詞的完備集
-
引導問題:
- 為什么只考慮五個聯結詞?
- 這五個聯結詞能否表示所有聯結詞?
- 這五個聯結詞是否有多余的?
- 什么是聯結詞?
- 什么是一些聯結詞表示了一個聯結詞?
- 什么是聯結詞的“多余”?
- 為什么只考慮五個聯結詞?
-
聯結詞確定了復合命題的構造方式,復合命題建立了真假值對應方式。
-
定義 2.6
稱 \(F:\{0,1\}^n\to \{0,1\}\) 為 \(n\) 元真值函數。
這里是集合論中的寫法,\(A^n=\{<a_1,a_2,...,a_n>|a_i\in A, 1\le i\le n\}\),因此如果 \(A=\{0,1\}\) ,則為 \(\{0,1\}^n=\{<a_1,a_2,...,a_n>|a_i\in\{0,1\},1\le i\le n\}\)
\(n\) 元真值函數的定義域和值域
定義域:由 \(0,1\) 組成的長為 \(n\) 的符號串的全體,即 \(\{0..00,0..01,...,1...11\}\)
值域:\(0\) 和 \(1\),即 \(\{0,1\}\)
對 \(n\) 元真值函數,其自變量共有 \(2^n\) 種,\(2^n\) 種自變量對應 \(2^{(2^n)}\) 種值域取值(每一個自變量組合對應因變量兩個取值)。
例如,\(1\) 元真值函數總共有 \(2^{(2^1)}=4\) 個。
\(p\) \(F_0^{(1)}\) \(F_1^{(1)}\) \(F_2^{(1)}\) \(F_3^{(1)}\) 0 0 0 1 1 1 0 1 0 1
\(p\) \(q\) \(F_0^{(2)}\) \(F_1^{(2)}\) \(F_2^{(2)}\) \(F_3^{(2)}\) ... 0 0 0 0 0 0 ... 0 1 0 0 0 0 ... 1 0 0 0 1 1 ... 1 1 0 1 0 1 ...
-
一個聯結詞確定一個真值函數,一個命題形式也確定一個真值函數。
-
一個真值函數與一個主析取范式或合取范式唯一等值。
\(F_0^{(2)}\) 表示取值總為 \(0\) ,即矛盾式。
\(F_1^{(2)}\) 表示 \(m_3\) (全為真時為真)。
\(F_3^{(2)}\) 表示 \(m_2\lor m_3\) 。
-
定義 2.7
設 \(S\) 是一個聯結詞集合,如果任何 \(n(n\ge 1)\) 元真值函數都可以由僅含 \(S\) 中的聯結詞構成的公式表示,則稱 \(S\) 是聯結詞完備集。 -
定理 2.6
\(S=\{\lnot,\land,\lor\}\) 是聯結詞完備集。
證明:因為任意一個真值函數都與唯一的一個主析取范式等值,而主析取范式中只用到了 \(\lnot\)、\(\land\)、\(\lor\) ,因此 \(S=\{\lnot,\land,\lor\}\) 是聯結詞完備集。
-
定理 2.6 推論
以下聯結詞集都是聯結詞完備集。
(1)\(S_1=\{\lnot,\land,\lor,\to\}\)
(2)\(S_2=\{\lnot,\land,\lor,\to,\leftrightarrow\}\)
(3)\(S_3=\{\lnot,\land\}\)
(4)\(S_4=\{\lnot,\lor\}\)
(5)\(S_5=\{\lnot,\to\}\) -
定義 2.8
設 \(p,q\) 是兩個命題,復合命題“ \(p\) 與 \(q\) 的否定式”稱作 \(p,q\) 的與非式,記作 \(p \uarr q\) 。即 \(p\uarr q\Leftrightarrow \lnot(p\land q)\) 。符號 \(\uarr\) 稱作與非聯結詞。
復合命題“ \(p\) 或 \(q\) 的否定式”稱作 \(p,q\) 的或非式,記作 \(p\darr q\) 。即 \(p\darr q\Leftrightarrow \lnot(p\lor q)\) 。符號 \(\darr\) 稱作或非聯結詞。 -
定理 2.7
\(\{\uarr\}, \{\darr\}\) 都是聯結詞完備集。
\(\lnot p\) \(\Leftrightarrow\)
\(\lnot(p\land p)\) \(\Leftrightarrow\)
\(p\uarr p\)\(p\land q\) \(\Leftrightarrow\)
\(\lnot (p\uarr q)\) \(\Leftrightarrow\)
\((p\uarr q)\uarr (p\uarr q)\)\(p\lor q\) \(\Leftrightarrow\)
\(\lnot\lnot(p\lor q)\) \(\Leftrightarrow\)
\(\lnot(\lnot p\land\lnot q)\) \(\Leftrightarrow\)
\(\lnot p\uarr\lnot q\) \(\Leftrightarrow\)
\((p\uarr p)\uarr (q\uarr q)\)\(\lnot p\) \(\Leftrightarrow\)
\(\lnot (p\lor p)\) \(\Leftrightarrow\)
\(p\darr p\)\(p\land q\) \(\Leftrightarrow\)
\(\lnot(\lnot p\lor \lnot q)\) \(\Leftrightarrow\)
\(\lnot p\darr \lnot q\) \(\Leftrightarrow\)
\((p\darr p)\darr (q\darr q)\)\(p\lor q\) \(\Leftrightarrow\)
\(\lnot (p\darr q)\) \(\Leftrightarrow\)
\((p\darr q)\darr (p\darr q)\)
2.4 可滿足性問題與消解法
- 消解法是真值表、主析取范式或主合取范式之外的一種解決可滿足性問題的方法。
- 稱不含任何文字的簡單析取式為空簡單析取式,記作 \(\lambda\) 。規定空簡單析取式是不可滿足的。
空簡單析取式不可滿足是根據消解法規定的。
\(p\land \lnot p\) 消解為空(不含任何文字的析取式),而消解前為不可滿足的,因此空簡單析取式也是不可滿足的(也可以從不含任何文字的析取式是不可滿足的角度理解)。
-
設 \(l\) 是一個文字,記 \(l^c=\begin{cases}\lnot p, &若 l=p\\ p, &若 l=\lnot p\end{cases}\) 稱作文字 \(l\) 的補。
-
定義 2.9
設 \(C_1,C_2\) 是兩個簡單析取式,\(C_1\) 含文字 \(l\) ,\(C_2\) 含 \(l^c\) 。從 \(C_1\) 中刪去 \(l\) ,從 \(C_2\) 中刪去 \(l^c\) ,然后再將所得到的結果析取成一個簡單析取式,稱這樣得到的簡單析取式為 \(C_1,C_2\) 的(以 \(l\) 和 \(l^c\) 為消解文字的) 消解式或消解結果,記為 \(Res(C_1,C_2)\) 。即設 \(C_1=C_1'\lor l, C_2=C_2'\lor l^c, Res(C_1,C_2)=C_1'\lor C_2'\) 。
消解是針對析取式而言的。
-
根據定義 2.9 由 \(C_1,C_2\) 得到 \(Res(C_1,C_2)\) 的規則稱作消解規則。
-
如果 \(C_1,C_2\) 可對多對文字消解,則其消解結果都是等值的。
簡單證明
不妨記 \(C_1=A\lor l_1 \lor l_2 \lor ... \lor l_n\),\(C_2=B \lor \lnot l_1\lor \lnot l_2\lor ... \lor \lnot l_n\) ,\(A,B\) 是不可消解的任意文字,即最多有 \(n\) 對文字可以消解。消去 1 對文字之后,由於剩余的可消解的文字對一定有 \(l_i\lor \lnot l_i\) 的形式(或者消解結果就只有一個),則一定為永真式,也即所有的消解結果的值相同。
舉例
\(C_1=p\lor q \lor r\),\(C_2=\lnot p\lor \lnot q\),則消去 \(p\) ,為 \(D_1=q\lor r \lor \lnot q\),消去 \(q\) ,則為 \(D_2=p\lor r\lor \lnot p\),\(D_1,D_2\) 都是永真式。
- 定理 2.8
\(C_1\land C_2\approx Res(C_1,C_2)\) 。
符號 \(\approx\) 表示兩端的公式具有相同的可滿足性,即
若 \(C_1\land C_2\) 可滿足,則 \(Res(C_1,C_2)\) 可滿足;
若 \(Res(C_1, C_2)\) 可滿足,則 \(C_1\land C_2\) 可滿足;
簡單證明
若 \(C_1\land C_2\) 可滿足,則 \(C_1\) 和 \(C_2\) 均可滿足,消解過程中,如果消解沒有引起不滿足條件改變,則消解之后仍可滿足,如果消解引起不滿足條件改變(滿足的文字被消解),假設為 \(C_1\) ,則對 \(C_2\) ,根據消解的規則(消解的是補),一定不引起滿足條件改變,因此消解結果也一定可滿足。
若 \(Res(C_1,C_2)\) 可滿足,則若記 \(Res(C_1,C_2)=A_1\lor A_2\) ,\(A_1, A_2\) 至少有一個可滿足,不妨設 \(A_1\) 可滿足,再不妨記 \(C_1=A_1\lor l\) ,\(C_2=A_2\lor l^c\) ,則有 \(C_1\) 可滿足,此時只要取 \(l^c\) 可滿足即可。也即 \(C_1\land C_2\) 一定可滿足。
舉例:假設消解結果為 \(p\lor \lnot p\) ,則消解前的析取式可以為 \(p\lor \lnot q\),\(\lnot p\lor q\) ,顯然,如果消解結果可以滿足,則消解前的析取式一定也可以滿足(因為按析取關系增加了一個可滿足文字)。
可滿足性相同,但是不一定等值。
這個定理說明,如果兩個公式都是可滿足的,則它們的消解結果一定也是可滿足的。如果消解結果是可滿足的,則消解前的兩個公式也一定是可滿足的。
- 定義 2.10
設 \(S\) 是一個合取范式,\(C_1,C_2,...,C_n\) 是一個簡單析取式序列。如果對每一個 \(i(1\le i\le n)\) ,\(C_i\) 是 \(S\) 中的一個簡單析取式或者 \(C_i\) 是它之前的某兩個簡單析取式 \(C_j,C_k(1\le j < k < i)\) 的消解結果,則稱此序列是由 \(S\) 導出 \(C_n\) 的消解序列。當 \(C_n=\lambda\) 時,稱此序列是 \(S\) 的一個否證。
例如,\(p\land \lnot p\) 消解為 \(\lambda\) ,即不可滿足。
-
定義 2.10 推論
如果合取范式 \(S\) 有否證,則 \(S\) 不是可滿足的。 -
引理 2.9
設 \(S\) 含有簡單析取式 \(l\) ,從 \(S\) 中刪去所有包含 \(l\) 的簡單析取式,再從剩下的簡單析取式中刪去 \(l^c\) ,把這樣得到的合取范式記作 \(S'\) ,則 \(S\approx S'\) 。 -
定理 2.10
消解的完全性。
如果合取范式 \(S\) 是不可滿足的,則 \(S\) 有否證。 -
定理 2.10 推論
合取范式 \(S\) 是不可滿足的當且僅當它有否證。
消解算法
輸入:合式公式 \(A\) 。
輸出:若 \(A\) 是可滿足的,則回答“yes”;否則回答“no”。
- 求 \(A\) 的合取范式 \(S\)
- 令 \(S_0\) 和 \(S_2\) 為不含任何元素的集合,\(S_1\) 為 \(S\) 的所有簡單析取式組成的集合
- 對 \(S_0\) 中的每一個簡單析取式 \(C_1\) 與 \(S_1\) 中的每一個簡單析取式 \(C_2\)
- \(~~\)如果 \(C_1,C_2\) 可以消解,則
- \(~~~~\)計算 \(C=Res(C_1,C_2)\)
- \(~~~~\)如果 \(C=\lambda\) ,則
- \(~~~~~~\)輸出 “no”,計算結束
- \(~~~~\)如果\(S_0\)與\(S_1\)都不包含\(C\),則
- \(~~~~~~\)把 \(C\) 加入 \(S_2\)
- 對 \(S_1\) 中的每一對子句 \(C_1,C_2\)
- \(~~\)如果 \(C_1,C_2\) 可以消解,則
- \(~~~~\)計算 \(C=Res(C_1,C_2)\)
- \(~~~~\)如果 \(C=\lambda\),則
- \(~~~~~~\)輸出“no”,計算結束
- \(~~~~\)如果 \(S_0\) 與 \(S_1\) 都不包含 \(C\),則
- \(~~~~~~\)把 \(C\) 加入 \(S_2\)
- 如果 \(S_2\) 中沒有任何元素,則
- \(~~\)輸出“yes”,計算結束
- 否則把 \(S_1\) 加入 \(S_0\),令 \(S_1\) 等於 \(S_2\) ,清空 \(S_2\),返回 3
3 命題邏輯的推理理論
3.1 推理的形式結構
-
推理是指從前提出發推出結論的思維過程,前提是已知的命題公式集合,結論是從前提出發應用推理規則推出的命題公式。
-
定義 3.1
設 \(A_1,A_2,...,A_k\) 和 \(B\) 都是命題公式,若對於 \(A_1,A_2,...,A_k\) 和 \(B\) 中出現的命題變項的任意一組賦值,或者 \(A_1\land A_2\land ...\land A_k\) 為假,或者當 \(A_1\land A_2 \land ... \land A_k\) 為真時 \(B\) 也為真,則稱由前提 \(A_1,A_2,...,A_k\) 推出結論 \(B\) 的推理是有效的或正確的,並稱 \(B\) 為有效的結論。
推理錯誤當且僅當 \(A_1\land A_2\land ... \land A_n\) 為假,\(B\) 為真。
對於一個正確的推理,如果前提正確,則結論一定正確,如果前提錯誤,則結論可能正確,也可能錯誤。
推理的定義是命題公式的集合之間的關系。
-
設前提為集合 \(\Gamma\) ,將由 \(\Gamma\) 推出 \(B\) 的推理記為 \(\Gamma \vdash B\) 。若推理是正確的,則記為 \(\Gamma \vDash B\) ,否則記為 \(\Gamma \nvDash B\) 。這里稱 \(\Gamma \vdash B\) 或 \(\{A_1,A_2,...,A_k\}\vdash B\) 為推理的形式結構。
-
定理 3.1
命題公式 \(A_1,A_2,...,A_k\) 推出 \(B\) 的推理正確當且僅當 \(A_1\land A_2\land ... \land A_k\to B\) 為重言式。
充分性。\(A_1\land A_2\land ... \land A_k\to B\) 為重言式,則對任意賦值,該式為真,即不會出現前真后假的情況,因此符合推理正確的定義。
必要性。若推理正確,則必沒有前真后假的情況,因此也即對任意賦值,相應的蘊含式必為真,也即蘊含式為永真式。
- 根據定理 3.1 ,也即 \(\{A_1,A_2,...,A_k\}\vDash B\) 等價於 \(A_1\land A_2\land ... \land A_k \Rightarrow B\) ,這里 \(\Rightarrow\) 為元語言符號,表示蘊含式為重言式。
判斷推理是否正確,也即判斷對應的蘊含式是否為永真式,相應有真值表法、等值演算法、主析取范式法。
例
判斷下面的推理是否正確。
(1)下午馬芳或去看電影或去游泳,她沒去看電影,所以,她去游泳了。
分析:
定義命題:
\(p\):下午馬芳去看電影;
\(q\):下午馬芳去游泳;
將推理符號化,為
前提:\(((p\land \lnot q)\lor (\lnot p\land q))\land \lnot p\)
結論:\(q\)
推理的形式結構為
\(E=(((p\land \lnot q)\lor (\lnot p\land q))\land \lnot p)\to q\)
判斷該式是否為重言式,可以用等值演算法,即
\(E\Leftrightarrow (\lnot p\land q)\to q\) \(\Leftrightarrow\)
\(\lnot (\lnot p\land q)\lor q\) \(\Leftrightarrow\)
\(p\lor \lnot q\lor q\) \(\Leftrightarrow\)
\(1\)
也即推理正確。(2)若下午氣溫超過 \(30\) 攝氏度,則王小燕必去游泳,若她去游泳,她就不去看電影了。所以,若王小燕沒去看電影,下午氣溫必超過了 \(30\) 攝氏度。
分析:定義命題:
\(p\):下午氣溫超過 30 攝氏度;
\(q\):王小燕去游泳;
\(r\):王小燕去看電影;
推理符號化為:
前提:\((p\to q)\land (q \to \lnot r)\)
結論:\((\lnot r\to p)\)
推理的形式化結構為
\(E=((p\to q)\land (q \to \lnot r))\to (\lnot r\to p)\)
使用等值演算,即
$E\Leftrightarrow $
\(((\lnot p\lor q)\land (\lnot q \lor \lnot r))\to (r\lor p)\) \(\Leftrightarrow\)
\(\lnot ((\lnot p\lor q)\land (\lnot q \lor \lnot r))\lor (r\lor p)\) \(\Leftrightarrow\)
\((\lnot (\lnot p\lor q)\lor \lnot (\lnot q\lor \lnot r))\lor (r\lor p)\) \(\Leftrightarrow\)
\(((p\land \lnot q)\lor (q\land r))\lor (r\lor p)\) \(\Leftrightarrow\)
\((p\land \lnot q)\lor (q\land r)\lor r\lor p\) \(\Leftrightarrow\)
\(p\lor r\)
此時,已經可以判斷不是重言式(\(p=0\land r=0\))。
推理定律
序號 推理定律 名字 1 \(A\Rightarrow (A\lor B)\) 附加律 2 \((A\land B)\Rightarrow A\) 化簡律 3 \((A\to B)\land A\Rightarrow B\) 假言推理 4 \((A\to B)\land \lnot B\Rightarrow \lnot A\) 拒取式 5 \((A\lor B)\land \lnot B\Rightarrow A\) 析取三段論 6 \((A\to B)\land (B\to C)\Rightarrow A\to C\) 假言三段論 7 \((A\Leftrightarrow B)\land (B\Leftrightarrow C)\Rightarrow A\Leftrightarrow C\) 等價三段論 8 \((A\to B)\land (C\to D)\land (A\lor C)\Rightarrow (B\lor D)\) 構造性二難 8.1 \((A\to B)\land (\lnot A\to B)\Rightarrow B\) 構造性二難(特殊形式) 9 \((A\to B)\land (C\to D)\land (\lnot B\lor \lnot D)\Rightarrow (\lnot A\lor \lnot C)\) 破壞性二難
證明示例:
對 \((A\lor B)\land \lnot B\Rightarrow A\) ,替換為 \((p\lor q)\land \lnot q\to p\) 永真,
記為 \(E\Leftrightarrow\)
\(\lnot ((p\lor q)\land \lnot q)\lor p\) \(\Leftrightarrow\)
\((\lnot p\land \lnot q)\lor q\lor p\) \(\Leftrightarrow\)
\((\lnot p\lor q)\lor p\) \(\Leftrightarrow\)
\(1\)
即永真成立。
3.2 自然推理系統 \(P\)
-
證明是一個描述推理過程的命題公式序列,其中的每個公式或者是已知前提,或者是由前面的公式應用推理規則得到的結論(中間結論或推理中的結論)。
-
定理 3.2
一個形式系統 \(I\) 由下面 \(4\) 個部分組成。
(1)非空的字母表 \(A(I)\) 。
(2)\(A(I)\) 中符號構造的合式公式集 \(E(I)\) 。
(3)\(E(I)\) 中一些特殊的公式組成的公理集 \(A_X(I)\) 。
(4)推理規則集 \(R(I)\) 。
將 \(I\) 記為 \(4\) 元組 \(<A(I),E(I),A_X(I),R(I)>\) 。其中 \(<A(I),E(I)>\) 是 \(I\) 的形式語言系統,而 \(<A_X(I),R(I)>\) 為 \(I\) 的形式演算系統。 -
形式系統一般分為兩類,分別是自然推理系統和公理推理系統。自然推理系統的特點是從任意給定的前提出發,應用系統中的推理規則進行推理演算,最后得到的命題公式是推理的結論(不一定是重言式)。公理推理系統的特點是只能從若干給定的公理出發,應用系統中的推理規則進行推理演算,得到的結論是系統中的重言式,稱為系統中的定理。
-
定理 3.3
自然推理系統 \(P\) 的定義如下:- 字母表
(1)命題變項符號:\(p,q,r,...,p_i,q_i,r_i,...\)
(2)聯結詞符號:\(\lnot ,\land,\lor,\to,\leftrightarrow\)
(3)括號與逗號:\() ( ,\) - 合式公式
參考定義 1.6 (單個命題變項以及有限次聯結)。 - 推理規則
(1)前提引入規則:在證明的任何步驟都可以引入前提;
(2)結論引入規則:在證明的任何步驟所得到的結論都可以作為后繼證明的前提;
(3)置換規則:在證明的任何步驟,命題公式中的子公式都可以用等值的公式置換,得到公式序列中的又一個公式;
(4)根據 9 條推理定律以及結論引入規則,可以相應導出 9 條推理規則。
- 字母表
-
設前提 \(A_1,A_2,...,A_k\) ,結論 \(B\) 和公式序列 \(C_1,C_2,...,C_l\) ,如果每一個 \(i\) ,\(C_i\) 是某個 \(A_j\) ,或者可由序列中前面的公式應用推理規則得到,並且 \(C_l=B\) ,則稱公式序列 \(C_1,C_2,...,C_l\) 是由 \(A_1,A_2,...,A_k\) 推出 \(B\) 的一個證明。
附加前提證明法
\((A_1\land A_2\land ...\land A_k)\to (A\to B)\) \(\Leftrightarrow\)
\((A_1\land A_2\land ...\land A_k\land A)\to B\)
也即如果結論是蘊含式,則可以將結論中的蘊含式的前件也作為推理的前提。
證明:
\((A_1\land A_2\land ...\land A_k)\to (A\to B)\) \(\Leftrightarrow\)
\(\lnot (A_1\land A_2\land ...\land A_k)\lor (\lnot A\lor B)\) \(\Leftrightarrow\)
\((A_1\land A_2\land ...\land A_k\land A)\to B\)
歸謬法
\((A_1\land A_2\land ... \land A_k)\to B\) \(\Leftrightarrow\)
\((A_1\land A_2\land ...\land A_k\land \lnot B)\) 為矛盾式。
也即如果將結論的反面作為前提進行推理能得到矛盾式,則推理正確。
證明:
\((A_1\land A_2\land ... \land A_k)\to B\) \(\Leftrightarrow\)
\(\lnot (A_1\land A_2\land ... \land A_k)\lor B\) \(\Leftrightarrow\)
\(\lnot (A_1\land A_2\land ... \land A_k \land \lnot B)\)
如果 \(\lnot (A_1\land A_2\land ... \land A_k \land \lnot B)\) 為矛盾式,則原式為永真式。
3.3 消解證明法
- 消解證明法:
根據歸謬法,將結論的反面和前提化為合取范式,然后通過消解規則,如果消解出空,則為矛盾式,相應的推理就得到證明。
4 一階邏輯基本概念
- 命題邏輯具有一定的局限性,甚至無法判斷一些常見的簡單推理。為了命題邏輯的這種局限性,需要引入量詞,以期達到表達出個體與總體之間的內在聯系和數量關系,這就是一階邏輯所研究的內容。一階邏輯也稱作一階謂詞邏輯或謂詞邏輯。
4.1 一階命題符號化
- 個體詞、謂詞和量詞是一階邏輯命題符號化的 3 個基本要素。
一階邏輯命題舉例:所有偶數都是整數。“所有···都···”是量詞,“偶數”是個體詞,“是整數”是謂詞。
- 個體詞是指所研究對象中可以獨立存在的具體的或抽象的客體。
- 將表示具體或特定的客體的個體詞稱作個體常項,一般用小寫英文字母 \(a,b,c\) 表示。將表示抽象或泛指的個體詞稱作個體變項,常用 \(x,y,z\) 表示。稱個體變項的取值范圍為個體域(或論域)。
對陳述 “\(\sqrt{2}\) 是偶數”。其中,\(\sqrt{2}\) 是個體常項,“是偶數”是謂詞常項。
對陳述 “\(x\) 是偶數”。其中,\(x\) 是個體變項。對於 \(x\) ,可以規定個體域為“所有整數”。
- 有一個特殊的個體域,它是由宇宙間一切事物組成的,稱作全總個體域。
- 謂詞是用來刻畫個體詞性質及個體詞之間相互關系的詞,常用 \(F,G,H\) 等表示。
- 表示具體性質或關系的謂詞稱作謂詞常項,表示抽象的或泛指的性質或關系的謂詞稱作謂詞變項。
“所有偶數和整數都滿足關系 \(L\) ”,其中“滿足關系 \(L\)” 是謂詞變項。
- 一般地,含 \(n(n\ge 1)\) 個個體變項 \(x_1,x_2,...,x_n\) 的謂詞 \(P\) 稱作 \(n\) 元謂詞。記作 \(P(x_1,x_2,...,x_n)\) 。當 \(n=1\) 時,表示 \(x_1\) 具有性質 \(P\) ,當 \(n> 1\) 時,表示 \(x_1,x_2,...,x_n\) 具有關系 \(P\) 。
陳述“\(x\) 是偶數”,只有一個個體變項,即表示 \(x\) 具有一項性質,是偶數。
陳述“\(x\) 比 \(y\) 大”,有兩個個體變項,即表示 \(x,y\) 滿足一個關系,\(x\) 比 \(y\) 大。
- \(n\) 元謂詞的定義域是個體域,值域是 \(\{0,1\}\) 。
- 將不帶個體變項的謂詞稱作 \(0\) 元謂詞。當為謂詞常項時,\(0\) 元謂詞為命題。
例
將命題用 \(0\) 元謂詞符號化
只有 \(2\) 是素數,\(4\) 才是素數。
析:
設 \(1\) 元謂詞 \(F(x)\):\(x\) 是素數,命題可以符號化為
\(F(4)\to F(2)\)
- 表示個體常項或變項之間數量關系的詞稱作量詞。量詞有全稱量詞和存在量詞兩種。
- 全稱量詞用符號 \(\forall\) 表示,\(\forall x\) 表示個體域里的所有個體 \(x\) ,其中個體域是事先約定的。
全稱量詞的描述示例:
“一切的”,
“所有的”,
“每一個”,
“任意的”,
“凡”,
“都”
全稱量詞符號示例:
\(\forall xF(x)\) 表示個體域里所有 \(x\) 具有性質 \(F\) ;
\(\forall x\forall yG(x,y)\) 表示個體域里所有個體 \(x,y\) 都有關系 \(G\) 。
- 存在量詞用符號 \(\exist\) 表示,\(\exist x\) 表示個體域里有一個個體 \(x\) 。
存在量詞的描述示例:
“存在”,
“有一個”,
“有的”,
“至少有一個”,
存在量詞符號示例:
\(\exist xF(x)\) 表示個體域中存在 \(x\) 具有性質 \(F\) ;
\(\exist x\exist yG(x,y)\) 表示個體域中存在 \(x,y\) 滿足關系 \(G\) ;
全稱量詞和存在量詞可以組合使用
\(\forall x\exist yG(x,y)\) 表示個體域中,所有 \(x\) ,存在 \(y\) ,滿足關系 \(G\) 。
命題符號化示例
(1)凡人都呼吸,個體域 \(D_1\) 為人類集合。
個體域中除人外,再沒有其它對象。記 \(F(x)\):\(x\) 呼吸。命題符號化為 \(\forall xF(x)\) 。
(2)凡人都呼吸,個體域 \(D_2\) 為全總個體域。
個體域中除人外,還有其它對象,因此要先給定謂詞,將人從全總個體域中分離出來,可以取 \(G(x)\):\(x\) 是人,再取 \(F(x)\):\(x\) 呼吸。則命題符號化為 \(\forall (G(x)\to F(x))\) 。
(3)有的人用左手寫字。個體域 \(D_1\) 為人類集合。
個體域中只有人,因此是存在量詞。記 \(F(x)\):\(x\) 用左手寫字。命題符號化為 \(\exist x F(x)\) 。
(4)有的人用左手寫字。個體域 \(D_2\) 為全總個體域。
先從個體域中分離出人。取 \(G(x)\):\(x\) 是人。則命題符號化為 \(\exist x(G(x)\to F(x))\) 。
4.2 一階邏輯公式及其解釋
-
一階語言,適用於一階邏輯的形式語言,一階邏輯是建立在一階語言上的邏輯體系。
-
非邏輯符號:個體常項符號,函數符號,謂詞符號。
-
邏輯符號:個體變項符號,量詞符號,聯結詞符號,括號,逗號。
-
定義 4.1
設 \(L\) 是一個非邏輯符號集合,由 \(L\) 生成的一階語言 \(\mathscr{L}\) 的字母表包括下述符號。
非邏輯符號
(1)\(L\) 中的個體常項符號,常用 \(a,b,c,...\) 或 \(a_i,b_i,c_i,...(i\ge 1)\) 表示。
(2)\(L\) 中的函數符號,常用 \(f,g,h,...\) 或 \(f_i,g_i,h_i,...(i\ge 1)\) 表示。
(3)\(L\) 中的謂詞符號,常用 \(F,G,H,...\) 或 \(F_i,G_i,H_i,...(i\ge 1)\) 表示。
邏輯符號
(4)個體變項符號:\(x,y,z,...,x_i,y_i,z_i,...(i\ge 1)\) 。
(5)量詞符號:\(\forall, \exist\)
(6)聯結詞符號:\(\lnot,\land,\lor,\to,\leftrightarrow\) 。
(7)括號與逗號:\()(,\) -
定義 4.2
\(\mathscr{L}\) 的項定義如下:
(1)個體常項符號和個體變項符號是項。
(2)若 \(\varphi(x_1,x_2,...,x_n)\) 是 \(n\) 元函數符號,\(l_1,l_2,...,l_n\) 是 \(n\) 個項,則 \(\varphi(l_1,l_2,...,l_n)\) 是項。
(3)所有的項都是有限次地使用(1)(2)得到的。 -
定義 4.3
設 \(R(x_1,x_2,...,x_n)\) 是 \(\mathscr{L}\) 的 \(n(n\ge 1)\) 元謂詞符號,\(t_1,t_2,...,t_n\) 是 \(\mathscr{L}\) 的 \(n\) 個項,則稱 \(R(t_1,t_2,...,t_n)\) 是 \(\mathscr{L}\) 的原子公式。 -
定義 4.4
\(\mathscr{L}\) 的合式公式定義如下:
(1)原子公式是合式公式
(2)若 \(A\) 是合式公式,則 \((\lnot A)\) 也是合式公式。
(3)若 \(A,B\) 是合式公式,則 \((A\land B),(A\lor B),(A\to B),(A\leftrightarrow B)\) 也是合式公式。
(4)若 \(A\) 是合式公式,則 \(\forall xA,\exist xA\) 也是合式公式。
(5)只有有限次地應用(1)~(4)構成的符號串才是合式公式。 -
\(\mathscr{L}\) 的合式公式也稱謂詞公式,簡稱公式。
-
定義 4.5
在公式 \(\forall xA\) 和 \(\exist xA\) 中,稱 \(x\) 為指導變元,\(A\) 為量詞的轄域,在 \(\forall x\) 和 \(\exist x\) 的轄域中,\(x\) 的所有出現都稱作約束出現,\(A\) 中不是約束出現的其它變項均稱作自由出現。
對 \(\forall x(F(x,y)\to G(x,z))\)
指導變元為 \(x\)
轄域為 \(A=F(x,y)\to G(x,z)\)
\(x\) 約束出現兩次,\(y,z\) 各自由出現一次。
- 定義 4.6
設 \(A\) 是任意的公式,若 \(A\) 中不含自由出現的個體變項,則稱 \(A\) 為封閉的公式,簡稱作閉式。
對公式中所有自由出現的個體變項添加量詞即產生封閉的公式。
-
對公式中個體域、個體常項符號、函數符號、謂詞符號的指定稱作解釋,指定自由出現的個體變項的值稱作賦值。
-
定義 4.7
設 \(\mathscr{L}\) 是由 \(L\) 生成的一階語言,\(\mathscr{L}\) 的解釋 \(I\) 由以下部分組成。
(1)非空個體域 \(D_I\)
(2)對每一個個體常項符號 \(a\in L\) ,有一個 \(\overline{a}\in D_I\) ,稱 \(\overline{a}\) 為 \(a\) 在 \(I\) 中的解釋。
(3)對每一個 \(n\) 元函數符號 \(f\in L\) ,有一個 \(D_I\) 上的 \(n\) 元函數 \(\overline{f}:D_I^n\to D_I\) ,稱 \(\overline{f}\) 為 \(f\) 在 \(I\) 中的解釋。
(4)對每一個 \(n\) 元謂詞符號 \(F\in L\) ,有一個 \(D_I\) 上的 \(n\) 元謂詞常項 \(\overline{F}\) ,稱 \(\overline{F}\) 為 \(F\) 在 \(I\) 中的解釋。 -
設公式 \(A\) ,規定:在解釋 \(I\) 和賦值 \(\sigma\) 下,
- 取個體域 \(D_I\) ,
- 若 \(A\) 中含個體常項符號 \(a\) 就將它替換成 \(\overline{a}\) ,
- 若 \(A\) 中含函數符號 \(f\) 就將它替換成 \(\overline{f}\) ,
- 若 \(A\) 中含謂詞符號 \(F\) 就將它替換成 \(\overline{F}\) ,
- 若 \(A\) 中含自由出現的個體變項符號 \(x\) 就將它替換成 \(\sigma(x)\) ,
把這樣得到公式記作 \(A'\) ,稱 \(A'\) 為 \(A\) 在 \(I\) 和 \(\sigma\) 下的解釋,或 \(A\) 在 \(I\) 和 \(\sigma\) 下被解釋成 \(A'\) 。
-
定義 4.8
設 \(A\) 為一公式,若 \(A\) 在任何解釋和該解釋下的任何賦值下均為真,則稱 \(A\) 為永真式(或邏輯有效式)。若 \(A\) 在任何解釋和該解釋下的任何賦值下均為假,則稱 \(A\) 為矛盾式(或永假式)。若至少存在一個解釋和該解釋下的一個賦值使 \(A\) 為真,則稱 \(A\) 是可滿足式。
在命題邏輯中,可以用真值表等方法判斷任意給定的公式是否是可滿足的。對於一階邏輯,情況則不同。由於公式中的謂詞和函數可以有各種不同的解釋,使得情況變得宜昌復雜,解釋是判斷任意給定的公式是否是可滿足的的問題是不可判定的,即不存在一個算法能在有限步內判斷任意給定的公式是否是可滿足的。因此對於一階命題邏輯,僅討論一些簡單的情況。
- 定義 4.9
設 \(A_0\) 是含命題變項 \(p_1,p_2,...,p_n\) 的命題公式,\(A_1,A_2,...,A_n\) 是 \(n\) 個謂詞公式,用 \(A_i(1\le i\le n)\) 處處代替 \(A_0\) 中的 \(p_i\) ,所得公式 \(A\) 稱為 \(A_0\) 的代換實例。
如 \(p\to q\) 可以代換得到 \(F(x)\to G(x)\) ,或者代換得到 \(\forall xF(x)\to \exist yG(y)\) 。
- 定理 4.1
重言式的代換實例都是永真式,矛盾式的代換實例都是矛盾式。
注:這個定理記住結論即可,書中證明略。
例 4.9
判斷下列公式中,哪些是永真式,哪些是矛盾式?
(1)\(\forall x(F(x)\to G(x,y))\)
(2)\(\forall xF(x)\to (\exist x\exist yG(x,y)\to \forall x F(x))\)
析:
(1)解釋 1:\(x,y\) 為整數, \(F(x)\): \(x\) 是整數,\(G(x,y)\):\(x,y\) 是小數。則 \(F(x)\) 為真,\(G(x,y)\) 為假,即公式為假。解釋 2:\(x,y\) 為整數,\(F(x)\):\(x\) 是整數,\(G(x,y)\):\(x,y\) 是整數。則 \(F(x)\) 為真, \(G(x,y)\) 為真,即公式為真。因此公式是非永真式的可滿足式。
(2)\(p\to (q\to p)\Leftrightarrow\)
\(\lnot p\lor (\lnot q\lor p)\) \(\Leftrightarrow\)
\(1\)
也即對應的命題公式為真,因此該謂詞公式為永真式。
5 一階邏輯等值演算與推理
5.1 一階邏輯等值式與置換規則
- 定義 5.1
設 \(A,B\) 是一階邏輯中任意兩個公式,若 \(A\leftrightarrow B\) 是永真式,則稱 \(A\) 與 \(B\) 等值,記作 \(A\Leftrightarrow B\) 。稱 \(A\Leftrightarrow B\) 是等值式。
基本等值式
- 命題公式中的重言式通過替換形成邏輯公式中的永真式。
例如:
\(p\Leftrightarrow \lnot\lnot p\),替換得到 \(\forall xF(x)\Leftrightarrow \lnot\lnot\forall xF(x)\)- 量詞否定等值式
設 \(A(x)\) 含自由出現的個體變項 \(x\) ,則
(1)\(\lnot \forall xA(x)\) \(\Leftrightarrow\) \(\exist x\lnot A(x)\)
即 “不是所有 \(x\) 都滿足 \(A(x)\)” 等價於 “存在 \(x\) 不滿足 \(A(x)\)” 。
如何證明?
(2)\(\lnot \exist xA(x)\Leftrightarrow \forall x\lnot A(x)\)
即 “不存在 \(x\) 滿足 \(A(x)\)” 等價於 “所有 \(x\) 都不滿足 \(A(x)\)”- 量詞轄域收縮域擴張等值式
設公式 \(A(x)\) 含自由出現的個體變項 \(x\) ,\(B\) 不含 \(x\) 的自由出現,則
(1)\(\forall x(A(x)\lor B)\Leftrightarrow \forall x(A(x)\lor B)\)
(2)\(\forall x(A(x)\land B)\Leftrightarrow \forall x(A(x)\land B)\)
(3)\(\forall x(A(x)\to B)\Leftrightarrow \exist x A(x)\to B)\)
(4)\(\forall x(B\to A(x))\Leftrightarrow B\to \exist xA(x)\)
(5)\(\exist x(A(x)\lor B)\Leftrightarrow \exist xA(x)\lor B\)
(6)\(\exist x(A(x)\land B)\Leftrightarrow \exist xA(x)\land B\)
(7)\(\exist xA(x)\to B\Leftrightarrow \forall xA(x)\to B\)
(8)\(\exist x(B\to A(x))\Leftrightarrow B\to \exist xA(x)\)- 量詞分配等值式
設公式 \(A(x),B(x)\) 含自由出現的個體變項 \(x\) ,則
(1)\(\forall x(A(x)\land B(x))\)
(2)\(\exist x(A(x)\lor B(x))\Leftrightarrow \exist xA(x)\lor \exist xB(x)\)
- 置換規則
設 \(\Phi(a)\) 是含公式 \(A\) 的公式,\(\Phi(B)\) 是用公式 \(B\) 取代 \(\Phi(A)\) 中所有的 \(A\) 后所得到的公式,那么,若 \(A\Leftrightarrow B\) ,則 \(\Phi(A)\Leftrightarrow \Phi(B)\) 。
與命題邏輯中的置換規則相比,置換對象由命題公式變為一階邏輯公式。- 換名規則
設 \(A\) 為一公式,將 \(A\) 中某量詞轄域中的一個約束變項的所有出現及相應的指導變元全部改成該量詞轄域中未曾出現過的某個個體變項符號,公式中其余部分不變,將所得公式記作 \(A'\),則 \(A'\Leftrightarrow A\) 。
也即量詞轄域中的名字只在轄域內有效。
5.2 一階邏輯前束范式
- 定義 5.2
具有如下形式 \(Q_xx_1Q_2x_2...Q_kx_kB\) 的一階邏輯公式稱作前束范式,其中 \(Q_i(1\le i \le k)\) 為 \(\forall\) 或 \(\exist\) ,\(B\) 為不含量詞的公式。
前束范式只有一個量詞作用范圍。
前束范式舉例:
\(\forall x\forall y(F(x)\land G(y)\to H(x,y))\)
\(\forall x\forall y\exist z(F(x)\land G( y)\land G(z)\to L(x,z))\)
- 定理 5.1
前束范式存在定理
一階邏輯中的任何公式都存在等值的前束范式。
5.3 一階邏輯的推理理論
- 在一階邏輯中,從前提 \(A_1,A_2,...,A_k\) 出發推出結論 \(B\) 的推理的形式結構,依然采用如下的蘊含式 \(A_1\land A_2\land ... \land A_k\to B\) 。若其為永真式,則稱推理正確,否則稱推理不正確。
- 在一階邏輯中稱永真式的蘊含式為推理定律。若一個推理的形式結構時推理定律,則這個推理時正確的。
推理定律的來源。
一、命題邏輯推理定律的代換實例
如
\(\forall xF(x)\land \forall yG(y)\Rightarrow \forall xF(x)\)
\(\forall xF(x)\Rightarrow \forall xF(x)\lor \exist yG(y)\)
二、由基本等值式生成的推理定律
如由雙重否定律有
\(\forall xF(x)\Rightarrow \lnot\lnot \forall xF(x)\)
\(\lnot\lnot \forall xF(x)\Rightarrow \forall xF(x)\)
由量詞否定等值式可以生成
\(\lnot \forall xF(x)\Rightarrow \exist x\lnot F(x)\)
\(\exist x\lnot F(x)\Rightarrow \lnot \forall xF(x)\)
三、一些常用的重要推理定律
- \(\forall xA(x)\lor \forall xB(x)\Rightarrow \forall x(A(x)\lor B(z))\)
- \(\exist (A(x)\land B(x))\Rightarrow \exist xA(x)\land \exist xB(x)\)
- \(\forall x(A(x)\to B(x))\Rightarrow \forall xA(x)\to \forall xB(x)\)
- \(\forall x(A(x)-B(x))\Rightarrow \exist xA(x)\to \exist xB(x)\)
全稱量詞和存在量詞的消去和引入規則。
前提:\(\Gamma=\{A_1,A_2,...,A_k\}\)一、全稱量詞消去規則(記為 \(\forall -\))
\(\displaystyle\frac{\forall xA(x)}{\therefore A(y)}\) 或 \(\displaystyle\frac{\forall xA(x)}{\therefore A(c)}\)
其中,\(x,y\) 是個體變項符號,\(c\) 是個體常項符號,且在 \(A\) 中 \(x\) 不在 \(\forall y\) 和 \(\exist y\) 的轄域內自由出現。
二、全稱量詞引入規則(記為 \(\forall +\))
\(\displaystyle \frac{A(y)}{\therefore \forall xA(x)}\)
三、存在量詞消去規則(記為 \(\exist -\))
已知 \(\exist xA(x)\)
\(\displaystyle \frac{A(y)\to B}{\therefore B}\) 或 \(\displaystyle \frac{A(y)\to B}{\therefore \exist xA(x)\to B}\)已知 \(\exist xA(x)\)
\(\displaystyle \frac{A(c)\to B}{\therefore B}\) 或 \(\displaystyle \frac{A(c)\to B}{\therefore \exist xA(x)\to B}\)
四、存在量詞引入規則(記為 \(\exist +\))
\(\displaystyle \frac{A(y)}{\therefore \exist xA(x)}\) 或 \(\displaystyle \frac{B\to A(y)}{\therefore B\to \exist xA(x)}\)\(\displaystyle \frac{A(c)}{\therefore \exist xA(x)}\) 或 \(\displaystyle \frac{B\to A(c)}{\therefore B\to \exist xA(x)}\)
- 定義 5.3 自然推理系統 \(N_{\mathscr{L}}\) 定義如下。
- 字母表。同一階語言 \(\mathscr{L}\) 的字母表。
- 合式公式。同 \(\mathscr{L}\) 的合式公式的定義。
- 推理規則:
(1)前提引入規則。
(2)結論引入規則。
(3)置換規則。
(4)假言推理規則。
(5)附加規則。
(6)化簡規則。
(7)拒取式規則。
(8)假言三段論規則。
(9)析取三段論規則。
(10)構造性二難推理規則。
(11)合取引入規則。
(12)\(\forall -\) 規則。
(13)\(\forall +\) 規則。
(14)\(\exist -\) 規則。
(15)\(\exist +\) 規則。
- 在推理系統 \(N_\mathscr{L}\) 種推理的證明與自然推理系統 \(P\) 中推理的證明相同。設前提 \(A_1,A_2,...,A_k\) ,結論 \(B\) 和公式序列 \(C_1,C_2,...,C_l\) 。如果每一個 \(i(i=1,2,...,l)\) ,\(C_i\) 是某個 \(A_j\) ,或者可以由序列前面的公式應用圖例規則得到,並且 \(C_l=B\) ,則稱公式序列 \(C_1,C_2,...,C_l\) 是由 \(A_1,A_2,...,A_k\) 推出的證明。
例 5.9 在自然推理系統 \(N_{\mathscr{L}}\) 中,構造下面推理的證明。
任何自然數都是整數。存在自然數。所以,存在着整數。個體域為實數集合 \(\boldsymbol{R}\) 。
解:
設 \(F(x):x\) 為自然數,\(G(x):x\) 為整數。
前提:\(\forall x(F(x)\to G(x)),\exist xF(x)\)
結論:\(\exist xG(x)\)
證明:
\(\forall x(F(x)\to G(x))\)
\(F(x)\to G(x)\) \(去掉全稱量詞\)
6 集合代數
關於集合論:
集合論是基本的數學描述工具。
- 集合是數學中的基本概念
- 誕生於十九世紀
- 創始人是康托
集合論體系:
- 朴素集合論(教材中涉及的都是朴素集合論)
- 公理集合論
6.1 集合的基本概念
-
集合是不能精確定義的基本概念。直觀地說,把一些事物匯集到一起組成一個整體就稱作集合,而這些事物就是這個集合的元素或成員。
-
教材中采用的體系中規定集合的元素都是集合。元素和集合之間的關系是隸屬關系,即屬於或不屬於,記作 \(\in\) 和 \(\not\in\) 。
-
通常用大寫的英文字母來表示集合。
-
有兩種表示集合的方法:列舉法和描述法。列舉法列舉出集合中的元素,描述法給出元素應該滿足的性質。例如:
\(A=\{0,1,2,...\}\)
\(B=\{x|x\in \bold{R}\land x>2\}\) -
常用集合:
- \(\bold{N}\):自然數集
- \(\bold{Z}\):整數集
- \(\bold{Q}\):有理數集
- \(\bold{R}\):實數集
- \(\bold{C}\):復數集
-
定義 6.1 設 A,B 為集合,如果 B 中的每個元素都是 A 中的元素,則稱 B 是 A 的子集合,簡稱為子集。這時也稱 B 被 A 包含,或 A 包含 B,記作 \(B\subseteq A\) 。
-
如果 B 不被 A 包含,則記作 \(B\nsubseteq A\) 。
注:兩個集合之間的關系是包含和不包含的關系,集合與其元素之間的關系是屬於和不屬於的關系。
-
\(B\subseteq A \Leftrightarrow \forall x(x\in B\rightarrow x\in A)\)
-
定義 6.2 設 A,B 為集合,如果 \(A\subseteq B\) 且 \(B\subseteq A\) ,則稱 A 與 B 相等,記作 \(A=B\) 。
-
如果 A 與 B 不相等,則記作 \(A\ne B\) 。
-
定義 6.3 設 A,B 為集合,如果 \(A\subseteq B\) 且 \(B\ne A\) ,則稱 B 是 A 的真子集,記作 \(B\subset A\) 。
-
如果 B 不是 A 的真子集,則記作 \(B \not\subset A\) 。
-
定義 6.4 不含任何元素的集合稱為空集,記作 \(\empty\) 。
-
\(\empty=\{x|x\ne x\}\)
-
定理 6.1 空集是一切集合的子集。
\(\empty\subseteq A\Leftrightarrow \forall x(x\in \empty \rightarrow x\in A)\) ,由於 \(x\in \empty\) 為假,因此右側蘊含式為重言式,即得證。 -
推論 空集是唯一的。
即不存在 \(\empty_1\) 和 \(\empty_2\) ,滿足 \(\empty_1\ne \empty_2\) 。
由定理 6.1,有 \(\empty_1\subseteq \empty_2\) 且 \(\empty_2\subseteq \empty_2\) ,即有 \(\empty_1=\empty_2\) 。 -
含有 n 個元素的集合簡稱為 n 元集,它的含有 \(m(m\le n)\) 個元素的子集稱作它的 m 元子集。
-
對於一個 n 元集,其有 \(C_n^0\) 個 0 元子集(即一個,為 \(\empty\)),\(C_n^i\) 個 i 元子集,子集的總數為 \(C_n^0+C_n^1+...+C_n^n=2^n\) 。
-
定義 6.5 設 A 為集合,把 A 的全體子集構成的集合稱作 A 的冪集,記作 \(P(A)\) (或 \(\mathscr{P}A,2^A\)) 。
\(P(A)=\{x|x\subseteq A\}\) -
定義 6.6 在一個具體的問題中,如果所涉及的集合都是某個集合的子集,則稱這個集合為全集,記作 E 。
全集具有相對性,不同的問題具有不同的全集,同一個問題也可以取不同的全集。
6.2 集合的運算
-
定義 6.7 設 A,B 為集合,A 與 B 的並集 \(A\cup B\) 、交集 \(A\cap B\) ,B 對 A 的相對補集 \(A-B\) 分別定義如下:
\(A\cup B=\{x|x\in A\lor x\in B\}\)
\(A\cap B=\{x|x\in A \land x\in B\}\)
\(A-B=\{x|x\in A\land x\not\in B\}\) -
如果兩個集合的交集為 \(\empty\) ,則稱這兩個集合是不交的。
-
並、交運算可以推廣到 n 個集合,並記作
\(\displaystyle\bigcup_{i=1}^{n}A_i=A_1\cup A_2\cup ... \cup A_n\)
\(\displaystyle\bigcap_{i=1}^{n}A_i=A_1\cap A_2\cap ... \cap A_n\) -
定義 6.8 設 A,B 為集合,A 與 B 的對稱差集 \(A\oplus B\) 定義為
\(A\oplus B=(A-B)\cup (B-A)\)
對稱差集的另一種定義是
\(A\oplus B=(A\cup B)-(A\cap B)\)
可以證明這兩種定義是等價的:
\((A-B)\cup (B-A)\)
\(\Leftrightarrow \{x| (x\in A\land x\not\in B)\lor (x\not\in A\land x\in B)\}\)
\(\Leftrightarrow\{x|(x\in A\lor x\not\in A)\land (x\in A\lor x\in B)\land (x\not\in B\lor x\not\in A)\land( x\not\in B\lor x\in B)\}\)
\(\Leftrightarrow \{x|(x\in A\lor x\in B)\land (x\not \in B\lor x\not\in B)\}\)
\((A\cup B)-(A\cap B)\)
\(\Leftrightarrow \{x|(x\in A\lor x\in B)\land \lnot(x\in A\land x\in B)\}\)
\(\Leftrightarrow \{x|(x\in A\lor x\in B)\land (x\not\in A\lor x\not\in B)\}\)
因此兩種定義等價。 -
定義 6.9 給定全集 E,A 的絕對補集為
\(\backsim A=E-A=\{x|x\not\in A\}\) -
定義 6.10 設 A 為集合,A 的元素的元素構成的集合稱作 A 的廣義並,記作 \(\cup A\) ,符號化表示為
\(\cup A=\{x|\exist z(z\in A\land x\in z)\}\)
若 \(A=\{A_1,A_2,...,A_n\}\) ,則 \(\cup A=A_1\cup A_2\cup ... \cup A_n\)
-
定義 6.11 設 A 為非空集合,A 的所有元素的公共元素構成的集合稱作 A 的廣義交,記作 \(\cap A\) ,符號化表示為 \(\cap A=\{x|\forall z(z\in A\to z\in z)\}\)
-
優先級規定
- 稱廣義並、廣義交、冪集、絕對補運算為一類運算,並、交、相對補、對稱差運算為二類運算。
- 一類勻速那優先於二類運算。
- 一類運算之間由右向左順序進行。
- 二類運算之間由括號決定先后順序。
6.3 有窮集的計數
-
集合之間的關系和初級運算可以用文氏圖(Venn diagram)給予形象的描述。
首先畫一個大矩形表示全集 E(有時為簡單起見可以省略),其次在矩形內畫一些圓,用圓的內部表示集合。不同的圓代表不同的集合。如果沒有關於集合不交的說明,任何兩個圓應彼此相交。 -
用 \(|T|\) 表示有窮集 T 中的元素數。
-
定理 6.2 (包含排斥原理) 設 S 為有窮集,\(P_1,P_2,...,P_n\) 是 n 個性質。S 中的任何元素 x 或者具有性質 \(P_i\) ,或者不具有性質 \(P_i\) ,兩種情況必居其一。令 \(A_i\) 表示 S 中具有性質 \(P_i\) 的元素構成的子集,則 S 中不具有性質 \(P_1,P_2,...,P_n\) 的元素數為
\(|\overline{A_1}\cap \overline{A_2}\cap ... \cap\overline{A_n}|\)
\(=|S|-\displaystyle\sum_{i=1}^{n}|A_i|+\displaystyle\sum_{1\le i < j\le n}|A_i\cap A_j|-\)
\(\displaystyle\sum_{1\le i<j < k \le n}|A_i\cap A_j\cap A_k|+...+(-1)^n|A_1\cap A_2\cap ... \cap A_n|\)這個定理可以舉特例來理解,當 n=1 時,只有一個性質集,因此直接減去即可,即減了一次。當 n=2 時,減去兩個集,就將其交集多減了一次,因此最后要加上交集,即減一次,加一次。當 n=3 時,看作三個透明玻璃疊加,將三個性質集都減去,則出去三個相交的兩兩相交集各被多減去一次,三個相交集被多減去兩次,將每個兩兩相交集都加回來,此時三個相交集就多加了一次,最終減去即可,也即減(三個性質集)、加(兩兩相交集)、減(三個相交集)。
6.4 集合恆等式
-
冪等律
\(A\cup A=A\)
\(A\cap A=A\) -
結合律
\((A\cup B)\cup C=A\cup (B\cup C)\)
\((A\cap B)\cap C=A\cap (B\cap C)\) -
交換律
\(A\cup B=B\cup A\)
\(A\cap B=B\cap A\) -
分配律
\(A\cup (B\cap C)=(A\cup B)\cap (A\cup C)\)
\(A\cap (B\cup C)=(A\cap B)\cup (A\cap C)\) -
同一律
\(A\cup \empty=A\)
\(A\cap E=A\) -
零律
\(A\cup E=E\)
\(A\cap \empty=\empty\) -
排中律
\(A\cup \sim A=E\) -
矛盾律
\(A\cap \sim A=\empty\) -
吸收律
\(A\cup (A\cap B)=A\)
\(A\cap (A\cup B)=A\) -
德摩根律
\(A-(B\cup C)=(A-B)\cap (A-C)\)
\(A-(B\cap C)=(A-B)\cup (A-C)\)
\(\sim (B\cup C)=\sim B\cap \sim C\)
\(\sim (B\cap C)=\sim B\cup \sim C\)
\(\sim \empty=E\)
\(\sim E=\empty\) -
雙重否定律
\(\sim\sim A=A\) -
取兩個式子進行證明:
1
\(x\in (A\cup (B\cap C))\)
\(\Leftrightarrow x\in A\lor x\in (B\cap C)\)
\(\Leftrightarrow x\in A\lor (x\in B\land x\in C)\)
\(\Leftrightarrow (x\in A\lor x\in B)\land (x\in A\lor x\in C)\)
\(\Leftrightarrow x\in ((A\cup B)\cap (A\cup C))\)
2
\(x\in (A-(B\cup C))\)
\(\Leftrightarrow x\in A\land (x\not\in B\cup C)\)
\(\Leftrightarrow x\in A\land \lnot (x\in B\cup C)\)
\(\Leftrightarrow x\in A\land \lnot (x\in B\lor x\in C)\)
\(\Leftrightarrow x\in A\land \lnot x\in B\land \lnot x\in C\)
\(\Leftrightarrow x\in A\land x\not\in B \land x\in A\land x\not\in C\)
\(\Leftrightarrow x\in (A-B)\cap(A-C)\)
7 二元關系
7.1 有序對與笛卡兒積
- 定義 7.1 由兩個元素 x 和 y(允許 \(x=y\))按照一定順序排列稱的二元組稱作一個有序對或有序偶,記作 \(<x,y>\),其中 x 是它的第一元素,y 是它的第二元素。
- 當 \(x\ne y\) 時,\(<x,y>\ne <y,x>\) 。
- \(<x,y>=<u,v>\) 的充分必要條件是 \(x=u\) 且 \(y=v\) 。
- 定義 7.2 設 A,B 為集合,用 A 中元素為第一元素,B 中元素為第二元素構成有序對。所有這樣的有序對組成的集合稱作 A 和 B 的笛卡兒積,記作 \(A\times B\) 。
- \(A\times B=\{<x,y>|x\in A \land y\in B\}\)
- 若 \(|A|=m\) ,\(|B|=n\) ,則 \(|AB|=mn\) 。
- 空集的笛卡兒積一定是空集
\(A\times\empty=\empty\) ,\(\empty\times A=\empty\) - 笛卡兒積一般不滿足交換律(因為最終的結果是有序對)
- 笛卡兒積一般不滿足結合律(在第二次進行運算時是第一次運算產生的有序對作為元素參與運算,因此不滿足結合律,如 \(<<a,b>,c>\) 和 \(<a,<b,c>>\))。
- 笛卡兒積對並、交運算滿足分配律
\(A\times (B\cup C)=(A\times B)\cup (A\times C)\)
\(A\times (B\cap C)=(A\times B)\cap (A\times C)\)
分配律的證明:
\(<x,y>\in A\times (B\cup C)\)
\(\Leftrightarrow (x\in A)\land (y\in (B\cup C))\)
\(\Leftrightarrow (x\in A)\land ((y\in B)\cup (y\in C))\)
\(\Leftrightarrow (x\in A\land x\in B)\cup (x\in A\land x\in C)\)
\(\Leftrightarrow (A\times B)\cup (A\times C)\)
理解:分配律只進行了一次笛卡兒積,因此不會出現結合律中出現的情況。 - \(A\subseteq C\land B\subseteq D\Rightarrow A\times B\subseteq C\times D\)
證明:
對任意 \(<u,v>\in A\times B\) ,有 \(u\in A\land v\in B\) ,
而由 \(A\subseteq C\) 及 \(B\subseteq D\) ,可得 \(\forall x(x\in A\rightarrow x\in C)\) ,\(\forall x(x\in B\rightarrow x\in D)\) ,
故 \(u\in C\land v\in B\) ,即 \(<u,v>\in C\times D\) 。
這個命題是充分條件,不是必要條件。例如,取 \(A=\empty\) ,則后件一定成立,但前件中的 \(B\subseteq D\) 不一定成立。
7.2 二元關系
- 定義 7.3 如果一個集合滿足以下條件之一:
(1)集合非空,且它的元素都是有序對;
(2)集合是空集;
則稱該集合為一個二元關系,記作 R 。 - 二元關系也可簡稱為關系。
- 對於二元關系 R ,如果 \(<x,y>\in R\) ,則記作 \(xRy\) ,如果 \(<x,y>\not\in R\) ,則記作 \(x\bcancel{R}y\) 。
- 定義 7.4 設 A,B 為集合,\(A\times B\) 的任何子集所定義的二元關系稱作從 A 到 B 的二元關系,特別當 \(A=B\) 時稱作 A 上的二元關系。
- 對於任何集合 A,空集 \(\empty\) 是 \(A\times A\) 的子集,稱作 A 上的空關系。
- 定義 7.5 對任意集合 A ,定義
全域關系 \(E_A=\{<x,y>|x\in A\land y\in A\}=A\times A\)
恆等關系 \(I_A=\{<x,x>|x\in A\}\) - 常用的一些關系定義
小於等於關系 \(L_A=\{<x,y>|x,y\in A,x\le y\}\)
整除關系 \(D_A=\{<x,y>|x,y \in A, x|y\}\),其中 x 是 y 的因子,A 是非零整數集 \(\boldsymbol{Z}^*\) 的子集。
包含關系 \(R_{\subseteq}=\{<x,y>|x,y\in A, x\subseteq y\}\),A 是有一些集合構成的集合族。 - 關系有三種表示方法:集合表達式、關系矩陣和關系圖。
- 集合表達式
例如,小於等於關系 \(L_A=\{<x,y>|x,y\in A,x\le y\}\) 就是一種集合表達式的形式。 - 關系矩陣
設 \(A=\{x_1,x_2,...,x_n\}\) ,R 是 A 上的關系,令 \(r_{ij}=\begin{cases}1, &若 x_iRx_j\\0, &若 x_i\bcancel Rx_j\end{cases}\) ,則 \(\begin{pmatrix}r_{ij}\end{pmatrix}\) (矩陣) 是 R 的關系矩陣,記作 \(\boldsymbol{M}_R\) 。
例如,定義在 \(A=\{1,2,3\}\) 上的小於等於關系的關系矩陣為 \(\boldsymbol{M}_R=\begin{pmatrix}1 & 0 & 0\\1 & 1 & 0\\1 & 1 & 1\end{pmatrix}\) 。 - 關系圖
設 \(A=\{x_1,x_2,...,x_n\}\) ,R 是 A 上的關系,R 的關系圖記作 \(G_R\) 。\(G_R\) 有 n 個頂點 \(x_1,x_2,...,x_n\) ,如果 \(<x_i,x_j>\in R\) ,在 \(G_R\) 中就有一條從 \(x_i\) 到 \(x_j\) 的有向邊。
- 集合表達式
7.3 關系的運算
關系的基本運算有 7 種,分別是定義域、值域、域、逆關系、右復合、限制、像。
-
定義 7.6 設 R 是二元關系,
R 的所有有序對的第一元素構成的集合稱為 R 的定義域,記作 \(dom R\) (domain),
\(domR=\{x|\exist y(<x,y>\in R)\}\)
R 的所有有序對的第二元素構成的集合稱為 R 的值域,記作 \(ranR\) (range),
\(ranR=\{y|\exist x(<x,y>\in R)\}\)
R 的定義域和值域的並集稱作 R 的域,記作 \(fldR\) (field),
\(fldR=domR\cup ranR\) -
定義 7.7 設 R 是二元關系,R 的逆關系,簡稱為 R 的逆,記作 \(R^{-1}\) ,
\(R^{-1}=\{<x,y>|<y,x>\in R\}\) -
定義 7.8 設 F,G 為二元關系,G 對 F 的右復合記作 \(F\circ G\) ,
\(F\circ G=\{<x,y>|\exist t(<x,t>\in F\land <t,y>\in G)\}\) -
定義 7.9 設 R 為二元關系,A 是集合,
(1)R 在 A 上的限制記作 \(R\restriction A\) ,
\(R\restriction A=\{<x,y>|xRy\land x\in A\}\)
限制相當於找出關系 R 中第一元素在 A 中的有序對。
(2)A 在 R 下的像記作 \(R[A]\) ,其中
\(R[A]=ran(R\restriction A)\)
像就是限制的值域。 -
定理 7.1 設 F 是任意的關系,則
(1)\((F^{-1})^{-1}=F\)
(2)\(dom F^{-1}=ran F, ran F^{-1}=dom F\)
這兩個定理很直觀,因此逆關系就是交換了兩個元素的順序。
\(<x,y>\in (F^{-1})^{-1}\)
\(\Leftrightarrow <y,x>\in F^{-1}\)
\(\Leftrightarrow <x,y>\in F\)
\(x\in domF^{-1}\)
\(\Leftrightarrow \exist y(<x,y>\in F^{-1})\)
\(\Leftrightarrow \exist y(<y,x>\in F)\)
\(\Leftrightarrow x\in ranF\)
- 定理 7.2 設 F,G,H 是任意的關系,則
(1)\((F\circ G)\circ H=F\circ (G\circ H)\)
(2)\((F\circ G)^{-1}=G^{-1}\circ H^{-1}\)
右復合運算只與被運算元素的位置有關,因此加括號不影響結果。
\(<x,y>\in (F\circ G)\circ H\)
\(\Leftrightarrow \exist t(<x,t>\in F\circ G \land <t,y>\in H)\)
\(\Leftrightarrow \exist t(\exist s (<x,s>\in F\land <s,t>\in G)\land <t,y>\in G)\)
\(\Leftrightarrow \exist t\exist s(<x,s>\in F \land <s,t>\in G \land <t,y>\in H)\)
\(\Leftrightarrow \exist s(<x,s>\in F\land \exist t(<s,t>\in G\land <t,y>\in H))\)
\(\Leftrightarrow \exist s(<x,s>\in F\land <s,y>\in G\circ H)\)
\(<x,y>\in F\circ (G\circ H)\)
\(<x,y>\in (F\circ G)^{-1}\)
\(\Leftrightarrow <y,x>\in F\circ G\)
\(\Leftrightarrow \exist t(<y,t>\in F\land <t,x>\in G)\)
\(\Leftrightarrow \exist t(<t,y>\in F^{-1}\land <x,t>\in G^{-1})\)
\(\Leftrightarrow <x,y>\in G^{-1}\circ F^{-1}\)
- 定理 7.3 設 R 為 A 上的關系,則
\(R\circ I_A=I_A\circ R=R\)
也即恆等關系對於右復合運算相當於數 1 。
\(<x,y>\in R\circ I_A\)
\(\Leftrightarrow \exist t(<x,t>\in R\land <t,y>\in I_A)\)
\(\Leftrightarrow \exist t(<x,t>\in R\land t=y)\)
\(\Leftrightarrow \exist y(<x,y>\in R)\)
\(\Leftrightarrow <x,y>\in R\)
\(\Leftrightarrow <x,y>\in R\land <x,x>\in I_A\)
\(\Leftrightarrow \exist x(<x,x>\in I_A\land <x,y>\in R)\)
\(\Leftrightarrow <x,y>\in I_A\circ R\)
- 定理 7.4 設 F,G,H 為任意關系,則
(1)\(F\circ (G\cup H)=F\circ G\cup F\circ H\)
(2)\(F\circ (G\cap H)\subseteq F\circ G\cap F\circ H\)
注意后者是包含關系。
\(<x,y>\in F\circ(G\cup H)\)
\(\Leftrightarrow \exist t(<x,t>\in F\land <t,y>\in (G\cup H))\)
\(\Leftrightarrow \exist t(<x,t>\in F\land (<t,y>\in G\lor <t,y>\in H))\)
\(\Leftrightarrow \exist t((<x,t>\in F\land <t,y>\in G)\lor (<x,t>\in F\land <t,y>\in H))\)
\(\Leftrightarrow \exist t(<x,t>\in F\land <t,y>\in G)\lor \exist t(<x,t>\in F\land <t,y>\in H)\)
\(\Leftrightarrow <x,y>\in F\circ G \lor <x,y>\in F\circ H\)
\(\Leftrightarrow <x,y>\in F\circ G\cup F\circ G\)
考慮 \(\exist x(A(x)\land B(x))\Rightarrow \exist x(A(x))\land \exist x(B(x))\)
即可得到右復合對交運算的包含關系。
- 定理 7.5 設 F 為關系,A,B 為集合,則
(1)\(F\restriction (A\cup B)=F\restriction A\cup F\restriction B\)
(2)\(F[A\cup B]=F[A]\cup F[B]\)
(3)\(F\restriction (A\cap B)=F\restriction A\cap F\restriction B\)
(4)\(F[A\cap B]\subseteq F[A]\cap F[B]\)
注意像對集合的交運算是包含關系。
\(<x,y>\in F\restriction (A\cap B)\)
\(\Leftrightarrow xFy\land x\in (A\cap B)\)
\(\Leftrightarrow xFy\land x\in A\land x\in B\)
\(\Leftrightarrow <x,y>\in F\restriction A\land <x,y>\in F\restriction B\)
\(\Leftrightarrow <x,y>\in F\restriction A\cap F\restriction B\)
\(x\in F[A\cap B]\)
\(\Leftrightarrow \exist y(y\in A\cap B\land yFx)\)
\(\Leftrightarrow \exist y(y\in A\land y\in B\land yFx)\)
\(\Rightarrow \exist y((y\in A\land yFx)\land (y\in B\land yFx))\)
\(\Leftrightarrow y\in F[A]\land y\in F[B]\)
\(\Leftrightarrow y\in F[A]\cap F[B]\)
- 定義 7.10 設 R 為 A 上的關系,n 為自然數,則 R 的 n 次冪 \(R^n\) 定義為
(1)\(R^0=\{<x,x>|x\in A\}=I_A\)
(2)\(R^{n+1}=R^n\circ R\)
考慮右復合運算,如果將關系寫成矩陣的形式,則冪的計算類似矩陣的計算,只需要將相加改為邏輯相加即可。
- 定理 7.6 設 A 為 n 元集,R 是 A 上的關系,則存在自然數 s 和 t ,使得 \(R^s=R^t\) 。
證:由於 R 是 A 上的關系,即 R 一定是 \(A\times A\) 的一個子集,對任意自然數 k,\(R^k\) 也一定是 \(A\times A\) 的子集,而 \(|2^{A\times A}|=2^{n^2}\) ,也即 \(A\times A\) 的子集是一個有限集,即得證。
- 定理 7.7 設 R 為 A 上的關系,\(m,n \in \boldsymbol{N}\) ,則
(1)\(R^m\circ R^n=R^{m+n}\)
(2)\((R^m)^n=R^{mn}\)
證:
\(R^m\circ R^0=R^m\) ,
假設 \(R^m\circ R^n=R^{m+n}\) ,則
\(R^m\circ R^{n+1}=R^m\circ (R^n\circ R)\) (根據定義)
\(=R^m\circ R^n \circ R\) (根據右復合的運算性質)
\(=R^{m+n}\circ R\) (根據假設)
\(=R^{m+n+1}\) (根據定義)
歸納得證。
\((R^m)^0=R^0\) ,
假設 \((R^m)^n=R^{mn}\) ,則
\((R^m)^{n+1}=(R^m)^n\circ R^m\)
\(=R^{mn}\circ R^m\) (根據假設)
\(=R^{m(n+1)}\) (根據第一個性質)
歸納得證。
- 定理 7.8 設 R 為 A 上的關系,若存在自然數 \(s,t(s<t)\) 使得 \(R^s=R^t\) ,則
(1)對任何 \(k\in \boldsymbol{N}\) 有 \(R^{s+k}=R^{t+k}\) ;
(2)對任何 \(k,i\in \boldsymbol{N}\) 有 \(R^{s+kp+i}=R^{s+i}\) ,其中 \(p=t-s\) ;
(3)令 \(S=\{R^0,R^1,...,R^{t-1}\}\) ,則對於任意的 \(q\in \boldsymbol{N}\) 有 \(R^q\in S\) ;
證:
\(R^{s+k}=R^s\circ R^k=R^t\circ R^k=R^{t+k}\)
這個定理說明,如果找到了兩個相等的值,則平移之后得到的兩個值也一定相等。
當 \(k=0\) 時,顯然成立;
假設為 k 時成立,即 \(R^{s+kp+i}=R^{s+i}\) ,
此時 \(R^{s+(k+1)p+i}=R^{s+kp+i+p}\)
\(=R^{s+kp+i}\circ R^{p}\) (定理 7.7)
\(=R^{s+i}\circ R^p\) (根據假設)
\(=R^{s+i+p}=R^{s+i+t-s}=R^{i+t}\)
\(=R^{i}\circ R^{t}=R^{i}\circ R^{s}=R^{s+i}\) ,歸納得證。
這個定理說明,如果找到了兩個相等的值,則按照這兩個值的寬度進行平移或者整數倍擴大,得到的兩個值也是相等的(結合函數圖像理解),也即具有周期性。
當 \(q<t\) 時,顯然成立。
當 \(q\ge t\) 時,取 \(p=t-s\) ,則一定存在 \(k,i\in \boldsymbol{N},i<p\) ,使得 \(s+kp+i=q\) (因為 p 是正整數,\(kp+i\) 覆蓋了整個自然數集)。
則 \(R^q=R^{s+kp+i}=R^{s+i}\) ,而 \(s+i<s+p=t\) ,也即 \(R^{s+i}\in S\) ,即得證。
這個定理在周期性的基礎上給出了集合的關系。
7.4 關系的性質
- 定義 7.11 設 R 為 A 上的關系,
(1)若 \(\forall x(x\in A\rightarrow <x,x>\in R)\) ,則稱 R 在 A 上是自反的。
(2)若 \(\forall x(x\in A\rightarrow <x,x>\not\in R)\) ,則稱 R 在 A 上是反自反的。
R 為 A 上的自反關系當且僅當 R 包含 A 上的恆等關系,即 \(I_A\subseteq R\)。
R 為 A 上的反自反關系當且僅當 R 和 A 上的恆等關系沒有交集,即 \(R\cap I_A=\empty\)。
自反關系和反自反關系是互斥的。
例 設 \(A=\{1,2,3\}\) ,\(R_1,R_2\) 和 \(R_3\) 是 A 上的關系,其中
\(R_1=\{<1,1>,<2,2>\}\)
\(R_2=\{<1,1>,<2,2>,<3,3>,<1,3>\}\)
\(R_3=\{<1,3>\}\)
則 \(R_1\) 既不是 A 上的自反關系,也不是反自反關系。\(R_2\) 是 A 上的自反關系。\(R_3\) 是 A 上的反自反關系。
-
定義 7.12 設 R 為 A 上的關系,
(1)若 \(\forall x\forall y (x,y\in A\land <x,y>\in R\rightarrow <y,x>\in R)\) ,則稱 R 為 A 上對稱的關系。
(2)若 \(\forall x\forall y(x,y\in A\land <x,y>\in R\land <y,x>\in R\rightarrow x=y)\) ,則稱 R 為 A 上的反對稱的關系。
R 為 A 上的對稱關系當且僅當 R 中的所有有序對交換次序后仍然是 A 中的元素,即 \(R^{-1}=R\)。
R 為 A 上的反對稱關系當且僅當 R 中的所有對稱的有序對都是第一元素和第二元素相等的有序對,即 \(R^{-1}\cap R\subseteq I_A\)。
對稱關系和反對稱關系不是互斥的(如 \(\{<1,1>,<2,2>\}\) 既是對稱關系又是反對稱關系)。 -
定義 7.13 設 R 為 A 上的關系,若
\(\forall x\forall y\forall z(x,y,z\in A\land <x,y>\in R\land <y,z>\in R\rightarrow <x,z>\in R)\)
則稱 R 為 A 上傳遞的關系。
R 為 A 上的傳遞的關系,當且僅當 \(R\circ R \subseteq R\) 。 -
定理 7.9 略,已在定義中給出。
7.5 關系的閉包
通過添加盡可能少的有序對來使某個關系達到某個性質,得到的新的關系就是閉包。如自反閉包、對稱閉包、傳遞閉包。
-
定義 7.14 設 R 是非空集合 A 上的關系,R 的自反(對稱或傳遞)閉包是 A 上的關系 \(R'\) ,使得 \(R'\) 滿足以下條件:
(1)\(R'\) 是自反的(對稱的、傳遞的);
(2)\(R\subseteq R'\) ;
(3)對 A 上任何包含 R 的自反(對稱、傳遞)關系 \(R''\) 有 \(R'\subseteq R''\) ; -
分別記 R 的自反、對稱、傳遞閉包為 \(r(R), s(R), t(R)\) 。
自反的:reflexive
對稱的:symmetrical
傳遞的:transitive
- 定理 7.10 設 R 為 A 上的關系,則有
(1)\(r(R)=R\cup R^0\)
(2)\(s(R)=R\cup R^{-1}\)
(3)\(t(R)=R\cup R^2\cup R^3\cup ...\)
證(1):
由於 \(R^0=I_A\) ,故 \(R\cup R^0\) 是自反的;
\(R\subseteq R\cup R^0\) 顯然成立;
再設 \(R''\) 是包含 \(R\) 的一個自反關系,也即 \(I_A\subseteq R'',R\subseteq R''\) ,
\(<x,y>\in R\cup R^0\)
\(\Leftrightarrow <x,y>\in R\cup I_A\)
\(\Rightarrow <x,y>\in R''\cup R''\)
\(\Leftrightarrow <x,y>\in R''\)
也即 \(R\cup R^0\subseteq R''\) ,故得證。
證(2):
\(<x,y>\in R\cup R^{-1}\)
\(\Leftrightarrow <x,y>\in R\lor <x,y>\in R^{-1}\)
\(\Leftrightarrow <y,x>\in R^{-1}\lor <y,x>\in R\)
\(\Leftrightarrow <y,x>\in R\cup R^{-1}\)
即 \(R\cup R^{-1}\) 是對稱的。
\(R\subseteq R\cup R^{-1}\) 顯然成立。
再設 \(R''\) 是一個包含 \(R\) 的對稱的關系,即 \(R\subseteq R'',R''^{-1}=R''\) ,
\(<y,x>\in R^{-1}\)
\(\Leftrightarrow <x,y>\in R\)
\(\Rightarrow <x,y>\in R''\)
\(\Leftrightarrow <y,x>\in R''^{-1}\)
即 \(R^{-1}\subseteq R''^{-1}\) ,
即同樣有 \(R\cup R^{-1}\subseteq R''\cup R''^{-1}\) 。故得證。
證(3):
\(<x,y>\in R\cup R^2\cup R^3\cup ...\land <y,z>\in R\cup R^2\cup R^3 \cup ...\)
\(\Rightarrow \exist m\exist n(<x,y>\in R^m\land <y,z>\in R^n)\)
\(\Rightarrow \exist m\exist n(<x,z>\in R^m\circ R^n)\)
\(\Rightarrow \exist m\exist n(<x,z>\in R^{m+n})\)
\(\Rightarrow <x,z>\in R\cup R^2\cup R^3\cup ...\)
即 \(R\cup R^2\cup R^3\cup ...\) 是傳遞的關系。
\(R\subseteq R\cup R^2\cup R^3 \cup ...\) 顯然成立。
假設 \(R''\) 為一個包含 \(R\) 的傳遞的關系,即 \(R\subseteq R'',R''\circ R''\subseteq R''\) ,
現用歸納法證明 \(R\cup R^2\cup R^3\cup ...\subseteq R''\) ,不妨證明 \(R^n\subseteq R''\) ,
當 \(n=1\) 時,\(R\subseteq R''\) 成立,
\(n=k\) 時,假設 \(R^k\subseteq R''\) 成立,
當 \(n=k+1\) 時,
\(<x,y>\in R^{k+1}\)
\(\Leftrightarrow <x,y>\in R^k\circ R\)
\(\Leftrightarrow \exist t(<x,t>\in R^k\land <t,y>\in R)\)
\(\Rightarrow \exist t(<x,t>\in R''\land <t,y>\in R'')\)
\(\Rightarrow <x,y>\in R''\circ R''\)
\(\Rightarrow <x,y>\in R''\) ,
也即歸納得證。
-
推論 設 R 為有窮集 A 上的關系,則存在正整數 r 使得
\(t(R)=R\cup R^2\cup R^3\cup ... \cup R^r\)
證明:由 $ A\times A$ 是一個有限集可以證得。 -
閉包在矩陣形式上的性質:
設關系 \(R,r(R),s(R),t(R)\) 的關系矩陣分別為 \(\boldsymbol{M},\boldsymbol{M}_r,\boldsymbol{M}_s,\boldsymbol{M}_t\) ,則
\(\boldsymbol{M}_r=\boldsymbol{M}+\boldsymbol{E}\)
\(\boldsymbol{M}_s=\boldsymbol{M}+\boldsymbol{M}^r\)
\(\boldsymbol{M}_t=\boldsymbol{M}+\boldsymbol{M}^2+\boldsymbol{M}^3 +...\)
其中, \(\boldsymbol{M}^r\) 為轉置矩陣,加法為邏輯加。 -
閉包在關系圖形式上的性質:
對所有頂點,如果沒有環就加上環,就得到自反閉包。
對所有路徑,如果沒有對稱的路徑,就加上對稱的路徑,就得到對稱閉包。
對所有路徑,如果相連的兩個路徑之間沒有同向路徑,就加上同向路徑,就得到傳遞閉包。 -
定理 7.11 設 R 是非空集合 A 上的關系,則
(1)R 是自反的當且僅當 \(r(R)=R\) ;
(2)R 是對稱的當且僅當 \(s(R)=R\) ;
(3)R 是傳遞的當且僅當 \(t(R)=R\) ;
三者的充分性都是顯然的,這里只證必要性。
證(1):
\(r(R)=R\cup R^0\) ,
由於 \(R\) 是自反的,取 \(R'=R\) ,則 \(R'\) 是一個包含了 \(R\) 的自反關系,
因此有 \(r(R)\subseteq R'\) ,也即 \(r(R)\subseteq R\) ,
同時 \(R\subseteq R\cup R^0\) ,也即 \(R\subseteq r(R)\) ,
故 \(R=r(R)\) 。
(2)(3)證明類似。
- 定理 7.12 設 \(R_1\) 和 \(R_2\) 是非空集合 A 上的關系,且 \(R_1\subseteq R_2\) ,則
(1)\(r(R_1)\subseteq r(R_2)\)
(2)\(s(R_1)\subseteq s(R_2)\)
(3)\(t(R_1)\subseteq t(R_2)\)
證(1):