跳轉到內容

計算機科學家邏輯/命題邏輯/等價和正規化

來自 Wikibooks,開放的書籍,開放的世界

等價和正規化

[編輯 | 編輯原始碼]

到目前為止,我們只討論了單個公式及其語義屬性。在本節中,我們將開始研究公式是否可以轉換為另一種形式,而不會改變其語義。為此,我們引入了邏輯等價的概念,它可以用來研究將給定公式轉換為其正規化

公式 被稱為 (語義) 等價,當且僅當對於所有賦值 對於 。我們寫

包含不同子公式的公式可以是等價的,例如,所有重言式都是等價的。更有趣的是以下定理

定理 3 (可代入性)

[編輯 | 編輯原始碼]

為至少包含一個子公式 的公式。那麼成立 ,其中 是透過將 中的任何一個 替換為 獲得的。

證明: 證明透過對子公式 的結構進行歸納。

假設歸納起點, 為原子公式,因此 成立,將 唯一齣現的地方替換為 的結果是 ,因為 ,所以我們有 。假設該定理對 的所有真子公式成立:如果 ,我們有與歸納起點相同的論證。如果 ,我們有三種情況。

  • :因為 的一個子公式,我們可以得出結論 ,其中 是透過將 替換為 構造的。從 語義的定義我們得出結論 ,因此 。其中 H_1 是透過在 H 中將 F 替換為 G 構造的等價公式,得到 H_1
  • : 假設不失一般性, 出現在 中。那麼,根據歸納假設,我們可以得出結論,,並且根據 語義的定義,我們可以得出結論,.
  • 類似。

定理 4

[edit | edit source]

以下等價關係成立

(冪等性)

(交換律)

(結合律)

(吸收律)

(分配律)

(雙重否定律)

(deMorgan's rule)

, if is a tautology

, if is a tautology (Rule of Tautology)

, if is unsatisfiable

, if is unsatisfiable (Rule of Unsatisfiability)


證明: 所有等價關係都可以透過真值表來證明。這裡以第二條吸收定律為例進行證明

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

現在讓我們使用這些等價關係以及代入定理 (TS) 來證明以下等價關係




結合律和 TS

交換律和 TS

分配律

交換律和 TS

分配律和 TS

不可滿足性和 TS

交換律和 TS

交換律和 TS


問題

[edit | edit source]

問題 9(命題)

[edit | edit source]

二元連線詞 用於異或,定義為 。證明以下命題邏輯公式成立 ,

  1. (交換律)。

  2. (結合律)


問題 10(命題)

[edit | edit source]

使用等價變換證明以下結論。請為所有重構步驟提供所用規則!


問題 11 (命題)

[編輯 | 編輯原始碼]

用等價關係證明

  1. 是一個永真式。
  2. 是不可滿足的。


問題 12 (命題)

[編輯 | 編輯原始碼]

二元連線詞 ,其含義為“非此即彼”,由 定義。設 為一個命題邏輯公式,它只包含運算子 。證明對每個公式 都存在一個公式 ,使得 並且 僅使用連線詞 建立。


問題 13(命題邏輯)

[編輯 | 編輯原始碼]

是一個命題邏輯公式,它只包含運算子 。證明對於每個公式 ,都存在一個公式 ,使得 並且 是透過僅使用連線詞 建立的。

問題 14 (命題邏輯)

[編輯 | 編輯原始碼]

給出以下公式:



  1. 使用 簡化
  2. 使用等價關係但不用 簡化


定義 7 (正規化)

[編輯 | 編輯原始碼]

文字是原子公式或原子公式的否定(分別為正或負)。公式 處於合取正規化 (CNF) 當且僅當


其中 是一個文字。


公式 處於析取正規化 (DNF) 當且僅當

其中 是一個文字

定理 5

[edit | edit source]

對於每個公式 存在一個等價公式處於 DNF,也存在一個等價公式處於 CNF。

讓我們設計一個演算法來將給定的公式 F 轉化為等價的正規化

給定: 公式


1. 在 中用以下形式替換每個子公式



直到不再存在這種形式的子公式。

2. 在上述步驟的結果中,用以下形式替換每個子公式


直到不再存在這種形式的子公式。

結果: 一個等價的 CNF 公式

到目前為止,我們研究瞭如何將命題公式轉化為等價的正規化。正規化中的另一個問題是,從給定的真值表構造正規化公式;也就是說,公式本身是未知的,但它的行為由真值表給出。讓我們從真值表中讀取正規化公式:假設一個公式 ,它由以下真值表給出。


A B C F
false false false true
false false true false
false true false false
false true true false
true false false true
true false true true
true true false false
true true true false

為了構建一個與 等價的 DNF 公式,我們必須考慮到,真值表中每一行導致真值 的結果,都會得到一個合取式:如果文字 的賦值為 ,它被包含為 ,如果賦值為 ,我們就包含 。對於上面的例子,我們得到一個 DNF





如果我們在上面的過程中交換 以及 的角色,我們得到一個 CNF






我們介紹一種用於表示規範形式公式的特殊表示法。在引言中,我們已經使用了一種非常特殊的規範形式,即 CNF 公式的蘊涵形式:連線詞 的每個子公式 都寫成

不難看出,該蘊涵等價於析取式。有時,蘊涵寫成

在某些情況下,甚至使用以下含糊的表示法,其中前提中的逗號代表連線詞,結論中的逗號代表析取詞

對於邏輯推理的一些重要步驟,必須不僅以上述規範形式之一表示公式,而且必須使用以下定義中的所謂子句形式。


定義 8

[edit | edit source]

如果 是一個 CNF 公式,即

那麼它在子句形式中的對應表示為

集合 稱為子句。

這種文字集合表示法具有以下優點:文字的出現順序無關緊要,並且文字在析取式中的多次出現將在其子句形式中“合併”。請注意,作為結果,我們在表示法中引入了結合律、交換律和冪等律。

           


問題

[edit | edit source]

問題 15(命題邏輯)

[edit | edit source]

建立等價於以下公式的(a)合取正規化或(b)析取正規化公式:


其中 表示異或。


問題 16(命題邏輯)

[edit | edit source]

定理證明器 OTTER 對子句集使用以下最佳化規則:

子句包含:如果子句 的文字是另一個子句 的子集,則從子句集中刪除
透過單元子句刪除:如果子句集包含一個單元子句 -這裡 是單個文字的單元子句- 子句中每個互補文字 都被刪除。

哪些邏輯定律證明了這些過程?

問題 17(命題邏輯)

[edit | edit source]

為以下公式生成真值表。給出公式的合取正規化和析取正規化。哪一個關係 成立?

  1. 適用。

問題 18(命題邏輯)

[編輯 | 編輯原始碼]

從以下公式 的真值表生成 CNF 和 DNF。

A B C F
0 0 0 0
1 0 0 1
0 1 0 0
1 0 0 1
1 1 0 1
1 0 1 0
0 1 1 1
1 1 1 0

問題 19(命題邏輯)

[編輯 | 編輯原始碼]

從公式 生成 CNF。

華夏公益教科書