命題與聯結詞
命題:非真非假的陳述句
這朵花真美麗! × 不是陳述句
我正在說假話 × 悖論
真值:只有唯一的真
或假
,作為陳述句的判斷結果
x大於y,其中x和y是任意的兩個數 × 不確定
火星上有水 √ 雖然目前未知,但是客觀存在且唯一
對於不能分解的命題稱作“簡單命題”或“原子命題”,可分的是復合命題
2是偶素數 復合命題
小王與王麗是同學 原子命題
我們可以將命題符號化,用0表示假,用1表示真
2是偶素數 p:2是偶數 q:2是素數 1
我們可以將聯結詞符號化:
定義1.1
“非p”為p的否定式,記作\(\lnot p\),\(\lnot\)為否定聯結詞
規定\(\lnot p\)為真當且僅當\(p\)為假
定義1.2
“p與q”為p與q的合取式,記作\(p\land q\),\(\land\)為合取聯結詞
規定\(p\land q\)為真當且僅當\(p,q\)同時為真
一假為假
-
\(\land\)的靈活性,語言中有很多表達方式
他既用功又聰明 他不僅用功而且聰明 ……
-
有時自然語言中的“與”、“和”並不是\(\land\)
小王與王麗是同學 原子命題
定義1.3
"p與q"為p與q的析取式,記作\(p\lor q\),\(\lor\)為析取聯結詞
規定\(p\lor q\)為假當且僅當\(p,q\)同時為假
一真為真
\(\lor\)和自然語言的“或”不一樣:
-
相容性
他愛聽音樂或愛唱歌 可以只愛音樂或者只愛唱歌,或者兩個都愛
-
排斥性
他只能挑選202或者203房間 p:挑202 q:挑203 此時不能同時滿足,如果用p∨q則錯誤
表達排斥性應該用:\((p\land \lnot q)\lor (\lnot p\land q)\)
他是江西人或安徽人 p:他是江西人 q:他是安徽人 按照上面的例子,用(p∧┐q)∨(┐p∧q) 但是!同時是江西人和安徽人不可能同時發生,所以可以用p∨q
定義1.4
“如果p,則q”稱為p與q的蘊含式,記作\(p\to q\),p是蘊含式的前件,q是蘊含式的后件。\(\to\)稱作蘊含聯結詞。
規定\(p\to q\)為假當且僅當 p為真 q為假(\(1\to 0 =0\))
'1不能指向0'
\(p \to q\)的邏輯關系的\(q\)是\(p\)的必要條件
注意,p,q不一定要有傳統語境下的關系
\(p:a能被4整除\)
\(q:a能被2整除\)
只要a能被4整除,則a一定能被2整除\(p \to q\)
只有a能被4整除,a才能被2整除\(q\to p\)
注意:2.中 被4 是 被2整除 的必要條件,所以 被2 指向 被4
定義1.5
p,q的等價式,記作\(q\leftrightarrow q\),\(\leftrightarrow\)為等價聯結詞
規定\(q\leftrightarrow q\)為真當且僅當q與q同時為真或同時為假
與\((p \to q)\land(q \to p)\)邏輯關系一樣
優先級:
\((),\lnot ,\land , \lor ,\to , \leftrightarrow\)
同一優先級至左向右
命題公式及其賦值
命題公式(合式公式,公式)
- 命題常量,命題常元:真值確定
- 命題變量,命題變元,命題變項,變量(邏輯代數中):取值1或者0
用聯結詞和圓括號把命題和命題變項按照一定規則連接起來的符號串, 常用A,B,C等表示.
公式的層次
找最多層的變量
\(( \lnot(p\to\lnot q))\land((r\lor s)\leftrightarrow\lnot p)\) 4層,q是最內層的
公式的賦值
對公式中每一個命題變項給定一個值(0或1).
000 001 002 .....
成真賦值:使公式為真的賦值.
成假賦值:使公式為假的賦值.
構建真值表
- 列出\(2^n\) (有限)個賦值,從00...0開始,每次加一
- 從內到外寫出各個層次的真值
結果分類
- 各種賦值都為假,稱為矛盾式或永假式
- 不是矛盾式,就是可滿足式
- 各種賦值都為真,為重言式或永言式
啞元
A有p和q,B有p q r,其中對與公式A,B來說,r就是A的啞元
命題邏輯等值演算
等值式
等價式\(A\leftrightarrow B\)是重言式,則稱A與B等值,記作\(A\Leftrightarrow B\)
在邏輯代數中稱為邏輯函數的相等
判斷是否為等值式:
- 真值表法
- 利用基本等值式進行等值演算法
判斷是否為不等值:
- 真值表法
- 觀察法,找一個賦值給A與B,一個真一個假
- 用等值演算法化簡,再觀察
基本等值式
記憶&規律:
-
雙否定律:\(\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 \to B \Leftrightarrow \lnot B \to \lnot A\)
都與“否”有關,雙否可以構建德摩根律,德摩根律就是把“否”划入括號中,每一項取否,\(\land\)與\(\lor\)互換 ,假言易位還要改變指向
-
冪等律:\(A\lor A \Leftrightarrow A\)、\(A\land A \Leftrightarrow A\)
同一律:\(A\lor 0 \Leftrightarrow A\)、\(A\land 1 \Leftrightarrow A\)
無論是\(\land\)與\(\lor\),只要兩個相同的變元,就可以去掉一個
與0析取不變,與1合取不變
-
交換律:\(A \lor B \Leftrightarrow B \lor A\)、\(A \land B \Leftrightarrow B \land A\)
結合律:\((A \lor B) \lor C \Leftrightarrow A \lor (B \lor C)\)、\((A \land B) \land C \Leftrightarrow A \land (B \land C)\)
很基本的定律,注意結合律,交換結合的幾項之間是一樣的聯結詞(要么都是\(\lor\)要么都是\(\land\))
-
結合律:\(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 \lor (A \land B) \Leftrightarrow A\)、\(A \land (A \lor B) \Leftrightarrow A\)
結合律和吸收律都是\(\land\)與\(\lor\)的混合,其中結合律外部的聯結詞到了內部,內部聯結詞到了外面
結合律的逆過程也需要熟練,特點是內部聯結詞相同,並與外部聯結詞不同,每個內部有相同的變元A
吸收律中的\(A\)可以看作\((A \land 1)\)或\((A \lor 0)\)(同一律),替換以后用結合律的逆過程就可以推導出來
-
零律:\(A \lor 1 \Leftrightarrow 1\)、\(A \land 0 \Leftrightarrow 0\)
排中律:\(A \lor \lnot A \Leftrightarrow 1\)
矛盾律:\(A \land \lnot A \Leftrightarrow 0\)
零律告訴我們,析取1一定為1,合取0一定為0,與同一律效果不同
觀察零律和同一律,A與1和0的結果,不是自身就是1或者0,如果不是自身,和0取結果就是0,和1取結果就是1
排中律和矛盾律是A與非A之間的性質,結果一定是0或者1
-
蘊含等值式:\(A \to B \Leftrightarrow \lnot A \lor B\)
等價等值式:\(A \leftrightarrow B \Leftrightarrow (A \to B) \land (B \to A)\)
蘊含等值式需要記憶,“非 A V B”,等價等值式拆開來中間是合取∧(意味着需要同時滿足)
在數字邏輯中還出現了一些基本定理
-
消去律:\(A + \bar{A} \cdot B = A + B\)、\(A \cdot (\bar{A} + B)=A \cdot B\)
-
並項律:\(A \cdot B + A \cdot \bar{B} = A\)、\((A + B)\cdot(A+\bar{B})=A\)
消去律非常像吸收律,只是第二個\(A\)變成了\(\lnot A\),結果不是去掉B而是把\(\lnot A\)去掉
並項律分詞容易推導,用結合律逆向推導即得證,當這是卡諾圖的基本原理,非常重要
-
包含律:\(A \cdot B + \bar{A} \cdot C + B \cdot C = A \cdot B + \bar{A} \cdot C\)
理解:B,C都成立,前面兩項至少成立一項
聯結詞完備集
如果任何n(n>1)元真值函數可以由S中的聯結詞表示,則S是聯結詞完備集
復合聯結詞
與非:\(p \uparrow q \Leftrightarrow \lnot(p\land q)\) "\(p,q\)有一個是0,結果為1(一假則真)"
或非:\(p \downarrow q \Leftrightarrow \lnot(p \lor q)\) "\(p,q\)有一個是1,結果為0(一真為假)"
想象一下,把\(\lor,\land\)尾部加一個尾巴變成\(\downarrow,\uparrow\)
范式
簡單析取式與簡單合取式
- 簡單析取式:有限個命題變項及其否定構成的析取式
- 簡單合取式:有限個命題變項及其否定構成的合取式
定理:
- 一個簡單析取式是重言式 當且僅當 它同時含某個命題變項和它的否定(\(q \lor \lnot q\))
- 一個簡單合取式是矛盾式 當且僅當 它同時含某個命題變項和它的否定(\(p \land \lnot p\))
以上定理是零律可以易證
析取范式和合取范式
-
析取范式:由有限個簡單合取式組成的析取式
\(A_1 \lor A_2 \lor ...\lor A_r\),其中\(A_1,A_2,...,A_r\)是簡單合取式
-
合取范式:由有限個簡單析取式組成的合取式
\(A_1 \land A_2 \land ...\land A_r\),其中\(A_1,A_2,...,A_r\)是簡單析取式
定理:
- 一個析取范式是矛盾式 當且僅當 它的每一個簡單合取式都是矛盾式
- 一個合取范式是重言式 當且僅當 它的每一個簡單析取式都是重言式
范式存在定理
任何命題公式都存在着與之等值的析取范式與合取范式
求范式的步驟:
-
消去公式的\(\to ,\leftrightarrow\)
\(A \to B \Leftrightarrow \lnot A \lor B\)
\(A \leftrightarrow B \Leftrightarrow (\lnot A \lor B)\land(\lnot B \lor A)\)
-
否定聯結詞\(\lnot\)的內移或消去
\(\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)\)
極大項與極小項
定義2.17 在含有n個命題變項的簡單合取式(簡單析取式)中,若每個命題變項均以文字的形式出現且僅出現一次,而且i(1<=i<=n)個文字(按下標或字母順序排列)出現在左起第i位上,稱這樣的簡單合取式(簡單析取式)為極小項(極大項)
-
簡單析取式構成極大項、簡單合取式構成極小項
-
析取是成假賦值,每一項都要假;合取是成真賦值,每一項都要真。特點是析取的成假和合取的成真有唯一性
-
極小項用小寫,極大項用大寫,賦值決定下標,下標最大為\(2^n -1\)
析取最大難假、合取最小難真
定理:
設\(m_i\)與\(M_i\)是由同一組命題變項形成的極小項和極大項,則\(\lnot m_i \Leftrightarrow M_i\),\(\lnot M_i \Leftrightarrow m_i\)
主析取范式與主合取范式
- 主析取范式:由極小項(合取)構成的析取范式
- 主合取范式:由極大項(析取)構成的合取范式
定理:
任何公式都存在着與之等值的主析取范式和主合取范式, 並且是惟一的。(析取范式和合取范式並不唯一)
求解步驟
通用快速解法:
-
用上面求范式的步驟,求取析取范式\(A=B_1 \lor B_2 \lor ... \lor B_n\)或合取范式\(A=B_1 \land B_2 \land ... \land B_n\)
-
對每一項\(B_n\)分析,看缺的命題變項,利用同一律的原理,補齊命題變項,每一個變項的順序要一致
-
把每一項轉換,析取范式中把合取轉換為最小項,合取范式中把析取轉換為最大限
例如:公式含\(p,q,r\)
\(q (缺p,r 補pq,p\lnot q,\lnot pq,\lnot p\lnot q) \\ \Leftrightarrow (p \land q \land r)\lor(\lnot p \land q \land r)\lor(p \land q \land \lnot r)\lor(\lnot p \land q \land \lnot r) \\ \Leftrightarrow m_2 \lor m_3 \lor m_6 \lor m_7\) -
析取利用\(\sum(...)\),合取利用\(\prod(...)\),把下標寫到\(...\)中
快速轉換:
已知主析取范式與主合取范式中的一個可以快速得到另一個
例:
\(A(含p,q,r) \Leftrightarrow m_0 \lor m_1 \lor m_3 \lor m_7 \Leftrightarrow M_2 \land M_4 \land M_5 \land M_6\)
用途
-
求公式的成真賦值和成假賦值
由於主析取范式是由最小項構成,合取最小難真,每一個最小項對應一個最小合取式成真賦值;析取一真為真,故主析取范式的下標對應一個公式的成真賦值
-
判斷公式類型
可用主析取范式含有項的個數判斷公式類型
-
判斷兩個公式是否等值
若主析取范式等值(都有相同的變項),則等值
邏輯函數的化簡
簡單來說,化簡可以看作求主析取范式(在代數邏輯稱作標准形式)的逆過程
代數化簡法
與-或表達式化簡利用基本定理(基本等值式)化簡。
求或-與表達式可以用與-或表達式轉換得來:兩次對偶法——先對或-與表達式F求對偶\(F^,\),按與-或方法化簡,再求對偶,即可得到F的或-與最簡式
反演規則:\(\cdot\)變成\(+\),0變成1,1變成0,變量取反
對偶規則:\(\cdot\)變成\(+\),0變成1,1變成0,變量不變
兩個邏輯表達式相等,其對偶式也相等
仔細看以上的例子,化簡的第二行中出現\(A\bar{B}\)和\((B+\bar{A})\),這里的技巧是把\((B+\bar{A})\)轉換為\(\overline{A\overline{B}}\),然后再用消去律
卡諾圖法
卡諾圖特點
- n個變量的卡諾圖由\(2^n\)個小方格組成,每個小方格代表一個最小項
- 卡諾圖在相鄰、相對、相重的小方格之間為相鄰最小項
- 相鄰最小項就是兩個最小項之間對應的賦值只有一個因子不同,在卡諾圖上的體現就是相鄰行、相鄰列、相對行、相對列、重疊格之間只能有一個賦值是不一樣的
例:
整張卡諾圖有ABCDE 5個變量,n為5,一共有\(2^5=32\)個最小項
對於3分析相鄰最小項:
- 1,7,2是相鄰相鄰最小項
- 11是相對相鄰最小項
- 19是相重相鄰最小項
觀察DE列,00 01 11 10,其中01到11,而不是二進制加法的01到10。因為00 01 ....代表的是DE的賦值,從01(D:0,E:1)到10(D:1,E:0)時D E都改變了,而01(D:0,E:1)到11(D:1,E:1)只改變了D。所以寫卡諾圖時不能按照二進制加法書寫。
邏輯函數在卡諾圖上的表示
-
畫出卡諾圖外框,注意卡諾圖的特點,相鄰只能變化一個
-
當給出標准“與或表達式”時,將每一項對應的最小項填上1,其余項位0
-
0方格有時用空格表示
用卡諾圖化簡
求最簡“與-或”表達式
- 用最大的圈把 相鄰的1 圈起來形成卡諾圈,1必須被全覆蓋,卡諾圈個數應該最少,每個1可以被多個卡諾圈包圍
- 卡諾圈小方格必須是\(2^m\)個
- 觀察每個卡諾圈中各最小項的賦值,把不變的賦值找出來
- 把不變的賦值對應的滿足成真賦值的簡單合取式寫出來
- 卡諾圈有\(2^m\)個方格,寫出來的簡單合取式就有\((n-m)\)個變量
求最簡“或-與”表達式
給出標准式F是“與-或”表達式
用兩次取反法
- 畫出F的卡諾圖,求取反后的\(\bar{F}\)的最簡“與-或”表達式
由於標准式的成真賦值取反以后就變成了成假賦值,剩下的成假賦值取反變成了成真賦值,在卡諾圖上體現為\(\bar{F}\)的最小項是F卡諾圖上的0。所以計算\(\bar{F}\)的最簡“與-或”表達式可以直接圈F卡諾圖的0,剩下的步驟相同。
-
得到的最簡“與-或”表達式再次取反,得到最簡“或-與”表達式
給出標准式F是“或-與”表達式
用兩次對偶法
- 作出F對偶式\(F^,\)的卡諾圖,求出\(F^,\)最簡“與-或”表達式
- 對\(F^,\)最簡“與-或”表達式再取對偶,得到F的最簡“或-與”表達式
取對偶和取反不太一樣,取反成真賦值會直接變成成假賦值,最大項變成最小項,取偶沒有這個規律,需要把標准式寫出來,用“對偶規則”轉換,再寫成標准式
與公式法的兩次取對偶法思路相同
關於取反還是取對偶的思考
不管是取反還是取對偶,目的都是用“或-與”計算再轉換成“與-或”,為了不改變原公式(邏輯函數),都需要取兩次。
如果給出的是“與-或”表達式求“或-與”表達式,由於“與-或”本身方便計算,先畫卡諾圖,再利用取反的性質快速得到取反后的卡諾圖
如果給出的是“或-與”表達式求“或-與”表達式,我們優先取對偶,但是取反也可以