跳轉至內容

計算機科學家邏輯/命題邏輯/語義

來自華夏公益教科書,開放的書籍,開放的世界

定義 3 (命題邏輯的語義)

[編輯 | 編輯原始碼]

對於我們命題形式語言的語義,我們不參考特定的意圖解釋。此外,我們只對真值感興趣。我們假設對原子公式的真值的初始賦值,並在此基礎上,我們定義更復雜公式的真值。真值的集合是集合. 對於原子公式集,賦值是一個函式

. 設是包含的公式集,即,並且恰好是那些可以根據語法定義從構造的公式。那麼,上的擴充套件,,給出如下


  •  :

在下文中,我們將省略索引 來指示賦值 的擴充套件。請注意,這是將型別為 的公式命名為合取式,將型別為 的公式命名為析取式,將型別為 的公式命名為否定式的正確位置。

以下是透過定義進行的示例評估:假定給定,那麼


是一個賦值,而 是一個公式。 被稱為 的賦值,如果 的每個子公式都有定義。如果 的賦值,並且 ,我們稱 的模型,並寫成 如果 的賦值,並且 ,我們寫成 .

一個公式 被稱為可滿足的,當且僅當存在一個模型 ,否則 被稱為不可滿足的。 被稱為有效的(或為重言式)當且僅當對 的每一個賦值都是一個模型。我們寫作 或者

定理 1

[edit | edit source]

一個公式 是有效的,當且僅當 是不可滿足的。

證明: 是一個重言式

當且僅當對 的每一個賦值都是一個模型

當且僅當對 的每一個賦值(當然,這也是對 的賦值)不是模型

當且僅當 沒有模型

當且僅當 是不可滿足的。

定義 5 (結論)

[edit | edit source]

如果對於公式 的任何賦值 都成立:如果 的模型,那麼 也是 的模型。我們將這種情況記作 .

以下定理是定義的一個簡單推論。

定理 2

[edit | edit source]

被稱為公式 的推論,

當且僅當 是重言式

當且僅當 是不可滿足的。

很明顯,一個公式的有效性只取決於其原子子公式的賦值:如果 的賦值,並且它們對每個出現的原子子公式都產生相同的值,那麼 成立。因此,我們可以說,為了檢驗一個公式 的有效性,只需要檢驗其原子子公式的無限多個賦值。這種檢驗可以用下表的形式輕鬆地描述出來,其中 是一個任意的公式,包含 個不同的原子公式

false false false
false false true
true true true




在應用此過程時,引入子公式的中間結果可能會有所幫助,如下面的示例所示。

( ))
false false true true true
false true true true true
true false false false true
true true false true true


請注意,我們只是描述了檢查公式有效性的演算法。假設公式包含 個原子子公式,那麼我們剛剛構建的表格將包含 行。為了估計這種指數級演算法的成本,假設計算一行需要 1 微秒。如果 僅包含 100 個原子子公式,則計算表格將需要 微秒。

真值表

[edit | edit source]

命題公式是否可滿足的問題稱為 SAT,相應的重言式問題稱為 TAUT。

SAT 是一個 NP 完全問題,因此目前尚不清楚 SAT 是否是易處理的。TAUT 是否屬於 NP 仍然是一個開放問題。對於 TAUT,我們知道,它屬於 NP 當且僅當 NP 在補運算下是封閉的。SAT 和 TAUT 都在複雜性理論研究中發揮著重要作用,特別是在關於 的問題方面。

問題

[edit | edit source]

問題 1(命題)

[edit | edit source]

計算以下公式的真值表。確定每個公式是否有效(重言式)、可滿足或不可滿足。

問題 2(命題邏輯)

[編輯 | 編輯原始碼]

“你長壽的秘訣是什麼?”有人問一位百歲老人。他回答道:“我嚴格遵守以下飲食規則:如果我晚餐不喝酒,我就總是吃魚。每當我晚餐吃魚和酒,都是不放蒜的。如果我吃蒜或喝酒,我就會避免吃魚”。

  1. 用命題邏輯的形式化這些規則。
  2. 嘗試簡化這位百歲老人的建議。

問題 3(命題邏輯)

[編輯 | 編輯原始碼]

透過對命題公式的構造進行歸納,遞迴地定義以下函式

  1. : 中的原子公式集
  2. : 中的二元連線詞 的數量

注意:對於

=

並且 成立。

問題 4(命題邏輯)

[編輯 | 編輯原始碼]

給定公式 = , 其中 是原子公式()其中 表示異或。證明對於所有的 : 一個合適的賦值 對於 的模型(即 )當且僅當 對奇數個 成立()。

問題 5(命題邏輯)

[編輯 | 編輯原始碼]

在下面,我們研究只包含原子 的公式。

  1. 最多有多少個具有不同真值表的公式?
  2. 對於每一個真值表,是否存在一個對應的公式?如果存在,請給出構造方法!

問題 6(命題邏輯)

[編輯 | 編輯原始碼]

如果上校在謀殺案發生時不在房間裡,那麼他就無法知道兇手的武器。管家在撒謊,或者他知道兇手是誰。如果巴恩特里夫人是兇手,那麼上校在謀殺案發生時就在房間裡,或者管家在撒謊。管家知道兇手是誰,或者上校在謀殺案發生時不在房間裡。警察得出結論,巴恩特里夫人是兇手。為論證中的每個語句賦予命題變數。將論證寫成一組命題公式,其中包含前提和結論作為命題公式 .

問題 7(命題)

[編輯 | 編輯原始碼]

將以下表達式形式化,然後簡化相應的公式和口頭命題。

  1. 他的母親不是英國人,而他的父親也不是法國人,這是不正確的。
  2. 他正在學習物理,但沒有學習數學,這是不正確的。
  3. 工資在下降,而價格在上漲,這是不正確的。
  4. 既不冷也不下雨,這是不正確的。

問題 8(命題)

[編輯 | 編輯原始碼]

教授建議為大學餐廳的午餐制定一個新的方案。

  1. 如果沒有甜點,每頓午餐都必須有面包。
  2. 如果供應麵包和甜點,則不供應湯。
  3. 如果供應湯,則沒有面包。

幫助管理層滿足教授的願望。為此,

  1. 將三個命題形式化(作為蘊含式、析取式/合取式),並將它們組合成一個邏輯公式。
  2. 為該邏輯公式提供真值表。該公式是否有模型?
  3. 為該任務提供一個口語化的表達。
華夏公益教科書