跳轉到內容

離散數學/邏輯/第 2 頁

來自華夏公益教科書,開放的書本,開放的世界
離散數學/邏輯
 ← 邏輯 第 2 頁 列舉 → 

條件命題

[編輯 | 編輯原始碼]

示例 8

討論安迪對伯納德說:“如果你想要更多咖啡,壺裡還有。”這句話是什麼意思。


安迪可能的意思是“壺裡還有咖啡,如果你想要,自己來。”幾乎可以肯定,他並不是真的想暗示壺裡是否有咖啡取決於伯納德是否想要。你可能已經意識到,我們在使用英語時有時非常不嚴謹!如果我們想用邏輯符號表示一個句子,我們需要做的一件事是弄清楚它的真正含義。


⇒ 蘊涵

[編輯 | 編輯原始碼]

示例 9

假設

p 是“天氣很暖和”;以及
q 是“我在午餐時間去游泳”。


那麼我們可以用符號表示條件命題“如果天氣很暖和,那麼我在午餐時間去游泳”。

pq


所以 ⇒ 的意思是:“如果……那麼”,或“蘊涵(或意味著)”。


其他表達相同意思的方式是

  • “天氣很暖和意味著我在午餐時間去游泳。”
  • “無論何時天氣很暖和,我都在午餐時間去游泳。”
  • “天氣很暖和,當且僅當我在午餐時間去游泳。”

請注意最後一句話。它不遵循(也不對應於)我們表示式 pq 的邏輯。它改變了 ⇒ 的方向。這句話中使用“如果”這個詞改變了命題的因果關係,比如我在午餐時間去游泳意味著天氣很暖和。這將是 qp,是我們原始表示式中條件的逆轉。“當且僅當”這個詞意味著如果在某一天我沒有在午餐時間去游泳,那麼那天天氣不可能很暖和,這也是一個逆向蘊涵。當然,我們的表示式並不意味著我去游泳(或者不去)決定了那天天的天氣,正好相反!

必要條件和充分條件

[編輯 | 編輯原始碼]

假設上週二我在午餐時間去游泳了。給定 pq 如上,並且給定 pq,你能確定上週二天氣很暖和嗎?


答案是否定的,你不能確定。我可能出於其他原因去游泳了。


因此,請注意,pq 意味著 pq充分條件。然而,它不是必要條件:q 仍然可以在沒有 p 的情況下為真。

其他表達方式

“即使天氣不暖和,我也可以在午餐時間去游泳。”

“無論天氣如何,我都可以去游泳。”

⇒ 的真值表

[編輯 | 編輯原始碼]

請注意,pq 本身是一個命題;也就是說,它有一個真值——如果天氣很暖和,我是否在午餐時間去游泳。這可能或不可能是事實。


現在,命題 pq 的值取決於 pq 的值的組合。所以我們可以構造它的真值表

p q pq
T T T
T F F
F T T
F F T


請特別注意這個表中的第三行(可能令人驚訝)!事實上,pq 意味著如果 p 為假,我們不能得出關於 q 的任何結論。也就是說,如果p 為假,q 可以同樣可能是真或假,而不會與 pq 的真值相矛盾。

換句話說,pq 僅在 p 為 T 且 q 為 F 時為假;也就是說,一個真命題不能蘊涵一個假命題。


為了進一步澄清這一點,請考慮上面那句話:“如果天氣很暖和,那麼我在午餐時間去游泳。”這句話沒有說明天氣不暖和時會發生什麼:我可能會去游泳,也可能不會去。只有當天氣很暖和,但我沒有去游泳時,這句話才是假的。

雙條件命題

[編輯 | 編輯原始碼]

正如我們已經指出的,我們經常以一種非常不精確的方式使用英語。使用示例 9,假設我真正想說的是

如果天氣很暖和,我就去游泳,如果天氣不暖和,我就不去。

在這種情況下,pq 都是真,或者都是假:你不能擁有其中一個而沒有另一個。我們可以改寫一下這句話,說

我只有在天氣很暖和的情況下才會去游泳。


短語“當且僅當”用符號 ⇔ 表示,所以我們可以說在這種情況下

pq


在這種情況下,pq必要且充分條件。


示例 10

p 是“x2 = 9”。找到關於 x(而不是 x2)的適當語句 q,使得 pq 為真。


解決方案

如果 x = 3,那麼當然 x2 = 9。所以如果 q 是“x = 3”,那麼 qp 為真,這將使 q 成為一個充分條件。


但它是必要且充分的嗎?不,因為 3 不是唯一一個平方為 9 的數字。x = -3 也將使 x2 = 9。

為了確保必要且充分的 q,我們需要說
q 是“x = ±3”。


邏輯等價

[編輯 | 編輯原始碼]

我們已經說過 pq 意味著 pq 都是真,或者都是假,因此我們可以說在這種情況下,它們是邏輯等價的。


⇔ 的真值表

[edit | edit source]

由於 pq 表示 pq 同時為真或同時為假,所以 ⇔ 的真值表如下

p q pq
T T T
T F F
F T F
F F T



示例 11

透過繪製真值表,證明:

pq ≡ (pq) (qp)


解決方案

(pq) (qp) 的真值表如下

p q (pq) (qp)
T T T T T
T F F F T
F T T F F
F F T T T
1 3

輸出

2


輸出結果為 T, F, F, T,與 pq 的輸出結果相同,因此

pq ≡ (pq) (qp)


⇐ 符號

[edit | edit source]

我們有時使用 ⇐ 表示“被蘊涵”。因此,qppq 的另一種寫法,我們可以將 示例 11 寫成

pq ≡ (pq) (pq)


邏輯練習 4

[edit | edit source]

點選連結訪問 邏輯練習 4


謂詞邏輯

[edit | edit source]

到目前為止,我們只考慮了 命題邏輯,其中語句如:

p 是“所有紅頭髮的人脾氣暴躁”。
q 是“Joe 有紅頭髮”。

假設 pq 如上所述,並且 r 是“Joe 脾氣暴躁”,我們可以寫成:

p qr


如果我們想要對 Brenda 有紅頭髮,因此脾氣暴躁的論述,則需要進一步的命題,例如:

s 是“Brenda 有紅頭髮”。
t 是“Brenda 脾氣暴躁”。

因此

p st

… 等等。


每次我們想要對另一個有紅頭髮,因此脾氣暴躁的人(這可能是真的,也可能不是真的)進行論述,都需要進一步的命題。一個更好的表示這些想法的方法是使用 謂詞,例如:

redHair 表示“... 有紅頭髮”。

(注意,redHair 不是一個命題。為什麼呢?)


現在我們可以使用這個謂詞來形成關於所有有紅頭髮的人的論述,例如:

redHair(Joe) 是“Joe 有紅頭髮”。
redHair(Brenda) 是“Brenda 有紅頭髮”。

… 等等。


同樣地,我們可以定義謂詞 fieryTemper 來表示短語

"... 脾氣暴躁”。


因此,語句“如果 Joe 有紅頭髮,那麼他脾氣暴躁”可以表示為:

redHair(Joe) ⇒ fieryTemper(Joe)

語句“如果 Brenda 有紅頭髮,那麼她脾氣暴躁”可以表示為:

redHair(Brenda) ⇒ fieryTemper(Brenda)


符號

[edit | edit source]

我們將使用單個單詞或多個連線在一起的單詞,並使用如上所示的大寫和小寫字母來表示謂詞。


謂詞應用的“物件” - 人,數字或任何事物 - 將在謂詞之後用括號括起來。

否定

[edit | edit source]

假設 red Hair 的定義如上所述

¬with red Hair 是“並非有紅頭髮”。

邏輯練習 5

[edit | edit source]

點選連結訪問 邏輯練習 5


命題函式

[edit | edit source]

如果我們想要談論一般的、未定義的謂詞,我們將使用大寫字母:P, Q, ..., 如果我們想要一個一般的、未定義的物件,我們將使用小寫字母:x, y, ...

因此,如果 P 是“... 具有屬性 P”,那麼 P(x) 是“x 具有屬性 P”。

  • P(x) 可以被描述為一個 命題函式,其謂詞為 P


函式具有這樣的屬性:當我們知道傳遞給它的任何引數的值時,它將返回一個唯一的值。P(x) 因此是一個函式,因為它返回一個取決於引數 x 值的真值。

例如,如果 American(x) 是命題函式“x 是美國人”,那麼 American(x) 將返回以下值

如果 x = 比爾·克林頓,則為 T;
如果 x = 女王陛下,則為 F

現在我們來擴充套件上面練習 5 中的思路。假設我們想要做出像這樣的陳述:

(a) 我的所有朋友都很有錢。
(b) 我的一些朋友很無聊。


這裡的問題是,我們在做關於我朋友的總體陳述,而沒有提到特定的個人。因此,我們需要定義命題函式如下:

friend(x) 表示 “x 是我的朋友”
wealthy(x) 表示 “x 很富有”
boring(x) 表示 “x 很無聊”


然後我們可以將上面的兩個陳述寫成:

(a) 對所有的 xfriend(x) ⇒ wealthy(x)
(b) 對某些 xfriend(x) boring(x)


符號:∀ 和 ∃

[編輯 | 編輯原始碼]

符號 ∀(稱為全稱量詞)代表短語“對所有……”

因此我們可以將上面的 (a) 寫成

(a) ∀ xfriend(x) ⇒ wealthy(x)


符號 ∃(稱為存在量詞)代表短語“對某些……”

因此我們可以將上面的 (b) 寫成

(b) ∃ xfriend(x) boring(x)


複數還是單數?

[編輯 | 編輯原始碼]

請注意,雖然上面的陳述 (a) 和 (b) 使用了複數詞語 - 所有的,是,一些,朋友 - 但是當我們用符號表示它們時,謂詞和變數是單數x 是富有的,x 是無聊的等等。因此,重要的是要意識到,x 一次只能代表一個值

因此,符號陳述

xfriend(x) ⇒ wealthy(x)

可以用單數詞語逐字翻譯成

“對x 的每個值,如果x 是我的朋友,那麼x 很富有”。

xfriend(x) boring(x)

更確切地翻譯成

“對x 的至少一個值,x 是我的朋友,並且x 很無聊”。


為了強調這一點,你可能會發現使用以下內容來翻譯符號很有幫助:

∀ 表示 “對每個(值的)……”

∃ 表示 “對至少一個(值的)……”


現在我們可以使用命題函式符號來表示我們之前關於“所有紅頭髮的人都脾氣暴躁”的陳述,如下所示:

redHair(x) 表示:“x 有紅頭髮”
fieryTemper(x) 表示:“x 有暴脾氣”


現在“所有紅頭髮的人都脾氣暴躁”用單數重寫為

x 的每個值,如果x 有紅頭髮,那麼x 就有暴脾氣。

用符號表示,就是

xredHair(x) ⇒ fieryTemper(x)


示例 12

定義合適的命題函式,然後用符號表示

(a) 一些貓懂法語。
(b) 沒有足球運動員會唱歌。
(c) 至少有一位講師不無聊。
(d) 我每天陽光明媚的時候都會去游泳。


解答

(a) 用單數重寫:“至少有一隻貓懂法語”。因此,我們需要定義命題函式為

cat(x) 表示 “x 是一隻貓”
French(x) 表示 “x 懂法語”

因此,至少有一個x 既是貓又懂法語;用符號表示就是

xcat(x) French(x)


(b) 用單數重寫:“至少有一位足球運動員會唱歌是不對的”。因此

footballer(x) 表示 “x 是一位足球運動員”
sing(x) 表示 “x 會唱歌”

用符號表示,就是

¬ (∃xfootballer(x) sing(x))


或者,我們可以將“沒有足球運動員會唱歌”重寫為“對每個x,如果x 是一位足球運動員,那麼x 不會唱歌”。用符號表示,就會得到同樣有效的解

xfootballer(x) ⇒ ¬ sing(x)


(c) 這句話已經是單數了;因此

lecturer(x) 表示 “x 是一位講師”
boring(x) 表示 “x 很無聊”

所以

xlecturer(x) ¬ boring(x)


(d) 在這個例子中,重要的是要意識到變數代表什麼。在 (a) 到 (c) 中,變數x 表示動物或人。在句子“我每天陽光明媚的時候都會去游泳”中,變化的是時間,隨之變化的是天氣和我去游泳。因此,我們必須圍繞一個代表時間的變數x 來形成命題函式。因此

sunny(x) 表示 “x 是一個陽光明媚的日子”
swimming(x) 表示 “x 是我去游泳的一天”

然後,將“我每天陽光明媚的時候都會去游泳”用單數重寫,就會得到

“對每一天,如果那是一個陽光明媚的日子,那麼它就是一個我去游泳的日子”。

因此,用符號表示就是

xsunny(x) ⇒ swimming(x)

邏輯練習 6

[編輯 | 編輯原始碼]

單擊連結以檢視邏輯練習 6


練習 56 中的許多命題都提到了“我的朋友”。例如,考慮命題:“我所有朋友要麼有錢要麼聰明”。

使用謂詞,我們可以用符號表示為

xfriend(x) ⇒ (wealthy(x) ∨ clever(x))


但是,如果我們同意變數x 只能代表我的一個朋友,那麼我們可以將其更簡單地表示為

xwealthy(x) ∨ clever(x)


對於給定的命題函式P(x),論域 是可以從中選擇x 的值的集合。定義論域可以簡化命題函式的符號表示。如果沒有定義論域,那麼我們必須假設可以將任何物件或個人代入x


示例 13

在每種情況下,定義一個合適的論域和謂詞來符號化

(a) 一些學生勤奮或酗酒。
(b) 每個人都很熱,有人暈倒了。


解答

(a) 定義以下內容

論域 = {學生}
hardWorking(x) 是“x 勤奮”
drink(x) 是“x 酗酒”

用單數形式寫作:“對於至少一個 xx 勤奮或 x 酗酒”,我們得到

x, hardWorking(x) ∨ drink(x)


(b) 在給定句子中,“每個人”顯然不代表全世界所有人,只是故事中提到的每個人。因此,我們可以定義如下

論域 = {故事中的人物}
hot(x) 是“x 很熱”
fainted(x) 是“x 暈倒了”

然後,用單數形式,我們有“對於每個 xx 很熱,並且對於至少一個 xx 暈倒了”。所以

x, hot(x) x, fainted(x)


二元謂詞

[edit | edit source]

我們之前看到的謂詞都是一元謂詞。為了將每個謂詞轉換為命題,我們必須提供一個單一的物件或個體——如果你願意,可以是單個引數的值。

我們可以建立需要兩個物件(或引數值)才能轉換為命題的謂詞。這樣的謂詞稱為二元謂詞


示例 14

考慮以下謂詞

greaterThan 是“……大於……”
loves 是“……愛……”
belongsTo 是“……屬於……”

那麼以下就是二元命題函式

greaterThan(x, y) 是“x 大於 y
loves(x, y) 是“xy
belongsTo(x, y) 是“x 屬於 y


因此,例如,以下是命題

greaterThan(5, 2) 是“5 大於 2”
loves(Bob, Lizzie) 是“Bob 愛 Lizzie”
belongsTo(This coat, Harry) 是“這件外套屬於 Harry”


二元謂詞和量詞

[edit | edit source]

對於上面的謂詞,我們可以對一個變數進行量化

x, belongsTo(x, me) 是“所有東西都屬於我”
x, greaterThan(2, x) 是“2 大於某些東西”
x, loves(Mary, x) 是“Mary 愛所有人”


……或兩個變數

x, ∃y, loves(x, y) 是“每個人都愛某人”
x, ∀ y, loves(x, y) 是“某人愛所有人”
x, ∃ y, loves(x, y) 是“某人愛某人”
x, ∀ y, loves(x, y) 是“每個人都愛所有人”


量化命題函式的否定

[edit | edit source]

練習 1的第 5 題中,我們必須說明哪些選項代表了命題的否定。讓我們再次看看,使用我們的量化命題函式符號。


示例 15

考慮命題的否定

“所有綿羊都是黑色的”。

否定是

“所有綿羊都是黑色的並不正確”。

這等同於

“至少有一隻綿羊不是黑色的”。

如果我們將論域定義為 {綿羊},並以明顯的方式定義 isBlack,那麼我們可以用以下符號來表示所有這些

¬ (∀ x, isBlack(x)) ≡ ∃ x, ¬isBlack(x)


現在考慮命題

“有些綿羊是黑色的”。

這的否定是

“有些綿羊是黑色的並不正確”

這等同於

“所有綿羊都不是黑色的”

這可以用以下符號表示

¬ (∃ x, isBlack(x)) ≡ ∀ x, ¬isBlack(x)


我們可以將我們在此處發現的內容推廣到任何命題函式 P(x),如下所示

¬(∀ x, P(x)) ≡ ∃ x, ¬ P(x)
¬(∃ x, P(x)) ≡ ∀ x, ¬P(x)


邏輯練習 7

[edit | edit source]

點選連結檢視邏輯練習 7

離散數學/邏輯
 ← 邏輯 第 2 頁 列舉 → 
華夏公益教科書