數理邏輯之 horn公式

2021-08-27 17:35:41 字數 2375 閱讀 9346

horn公式,中文名一般翻譯成「霍恩公式」,也是正規化的一種。

horn原子有三:

p::= ┴ | t |p       horn原子
分別是底公式、頂公式和命題原子。

horn原子合取後的蘊含稱為horn字句:

a::= p | pλa 

c::= a → p horn子句

繼續合取就是horn公式:

h::= c | cλh         horn公式
下面的都是horn公式例子:

(pλqλr->p)λ(pλqλr->q)λ(pλqλr->r)

(pλqλr->┴

)λ(pλr->q)λ(t->r)

(p1λq2λr3->p13)λ(t->q)λ(p4λq5->┴

)

下面的都不是horn公式例項:

(pλqλr->┐p)λ(pλqλr->q)λ(pλqλr->r)   包含了命題原子否定

(pλqλr->┴)λ(pλ┐r->q)λ(t->r)

(p1λq2λr3->p13λr30

)λ(t->q)λ(p4λq5->

┴) 蘊含右邊是合取公式而非命題原子

(t->q)λ(p4λq5) 字句有不是蘊含關係的

對於給定的horn公式,是否是可滿足的(還記得這個概念嗎),我們有乙個簡單的演算法:

公式的可滿足判定演算法

horn

是正確的且演算法

horn

的執行過程中,

while

語句至多被執行的次數不超過

n+1次。其中n是

ф中所含的命題原子數目。

先來證明第二個論斷:演算法

horn

執行過程中

while

語句被執行的次數不超過

n+1次。

由於在執行

while

語句之前已對

t作標記,且執行

while

語句的語句體一次就標記乙個尚未標記的p(

p可能是命題原子或

┴)於是只能進行不超過

n+1次標記。

再來證明它的正確性。為了證明演算法

horn

的正確性,我們先需證明以下論斷:

「對於所有使ф取值

t的求值

v必使所有被標記的p為

t。」------(*

)我們對

while

語句的執行次數

k作數學歸納法。

歸納基本步:

k=0時,此時被標記的僅是

t,於是(

*)成立。

歸納假設:假設在執行

while語句k

次後(*

)成立,要證明執行

while

語句(k+1

)次後(

*)也成立。

設在第k+1

次執行while

語句時,有ф的子句

滿足:所有

pj已被標記,而

p』尚未被標記。記

v是任一使

ф取值為真的一次求值。根據歸納假設,

v使所有pj為

true

,從而子句左邊

為true

。又子句為

true

。於是p』

必為true

。其次我們對演算法

horn

中的if

語句作分析。

[1]若

┴被標記,如果有使ф取值

true

的求值v, 由(*

)可知,該子句必在

v中取值為

false

。這是不可能的。於是

ф不可滿足。

[2]若

┴始終沒有被標記,此時,令被標記的命題原子取

t而未被標記的原子取f。則

ф在此求值中必取值

true。事實

此時ф中任一子句中要麼所有的

pj連同

p』已被標記,因而取值

true

;要麼中存在有尚未被標記的

pj,

由此得取值

false

,由」→」

的語義定義可知,

取值true

數理邏輯之 正規化

今天開始說正規化。先介紹幾個概念。語義等值 令 和 是命題邏輯公式,我們稱 和 語義等值當且僅當 且 成立。記為 可滿足公式 給定命題邏輯公式 我們說 是可滿足的,如果存在 的一次求值使得 取值 true.文字 文字l 是指命題原子p或 p。l p p 析取子句 析取子句 d是若干個文字的析取 d ...

數理邏輯蘊含 數理邏輯(1) 命題邏輯的基本概念

學習階段 自由。前置知識 基本的邏輯思維。很多人連基本的邏輯關係都搞不清,在這個系列科普一下離散數學中的數理邏輯。1.命題 命題 proposition 就是非真即假的陳述句。命題的真假,稱為真值,真 記為t true 或1,假 記為f false 或0.因為真值只有兩種,這種邏輯也稱為二值邏輯。在...

數理邏輯蘊含 數理邏輯(1) 命題邏輯的基本概念

學習階段 自由。前置知識 基本的邏輯思維。很多人連基本的邏輯關係都搞不清,在這個系列科普一下離散數學中的數理邏輯。命題 proposition 就是非真即假的陳述句。命題的真假,稱為真值,真 記為t true 或1,假 記為f false 或0.因為真值只有兩種,這種邏輯也稱為二值邏輯。在真值不止2...