保守擴展
保守擴展是邏輯中的一個概念。一個知識庫K'是K的擴展,如果K是K'的一個子集;K'是K的保守擴展,如果對所有只用K中的名字構造的命題, K' 當且僅當 K。換句話說,保守擴展不會改變原有的知識庫的結構。保守擴展在許多領域都有應用,如模塊化本體和敏感知識的保護。
在邏輯和推導機制中,I和J分別是一個解釋(Interpretation),如果J是I的保守擴展,必須滿足以下條件:
- 1) 解釋I作用在語言集合L中,解釋J必須作用在語言集合L'中,並且L'包含L
- 2) 解釋I的域(Domain)等於解釋J的域
- 3) 對於任何在語言集合L中的元素e,I(e) = J(e)
那麼我們說J是I的保守擴展。
補充說明
在邏輯語言語法(Syntax)中
- 一個語言集合的組成元素:
- 1) 常數符號a,b,c,d,........
- 2) 函數符號f,g,...... 並且每個函數符號標有所帶參數的個數 注意當函數f不帶有參數時 這時就變成了一個常數符號
- 3)命題邏輯符號 P,Q,(或p,q)........
- 4) 謂詞關係邏輯符號 P,Q(或p,q),........ 並且每個謂詞標有所帶參數的個數 注意當謂詞關係邏輯符號P不帶有參數時,就變成命題邏輯符號 P
這裡的參數在邏輯語言中叫做項(Term) (項是一個最小有限集合)
- 一個項可以是:
- 1) 一個變量符號(通常我們用小寫字母x,y,z等表達) 比如 x,y,z,x1,x2,x3,..........
- 2) 一個常數符號(通常我們用小寫字母a,b,c,d等表達) 比如 a,b,c,d,a1,b1,c3,...........
- 3) 一個函數符號並且該函數標有所帶參數(通常我們用小寫字母f,g,q等表達) f(t1,t2,t3,......tn),其中所帶的參數t1,t2,.......,tn也是由項組成
他是最小的有限的集合,換句話說一個項是一個有限樹,他的葉子個數是有限的 比如 f(x,b,f(y,c,g(z))) 他是一個項 其中 x,y,z是變量,b,c是常數,f,g是函數符號
f | x b f | y c g | z
但是 比如 如果函數f的項是f自己本身,這時候就不是項了,因為一個項必須是一個有限樹(如上圖所示) 而此時的情況就變成了一個無限表達 f(f(f(f(f(f(f(f.......))))))),就不符合最小有限集合的定義
在項(Term)的基礎上我們構築式子集合(Set of Formula) 式子集合也是一個最小有限集合,這樣定義也是避免一個式子的無限性表達,避免如同上面的例子
- 一個基於一個語言集合L的式子(記作L-formula)可以是:
- 1) ⊥ (永假符號) 是一個式子 (永假的含義是一個式子在任何解釋中,永遠是假命題,我們記作⊥
- 比如 P(x)∧˥P(x) 在任何解釋I中,該命題永遠是假命題,注意,前提中解釋I必須有一個非空解釋域
- 2) T (永真符號) 是一個式子 (解釋如上,永真表示一個式子永遠是真命題)
- 3) 如果P表示一個命題符號,那麼P就是一個式子
- 4) 如果P表示一個謂詞關係符號,並且他帶有n個參數(也就是帶有n個項Term),那麼 P(t1,t2,t3,......,tn)是一個式子,其中t1,......,tn是n個項
- 5) 如果φ是一個式子,那麼˥φ也是一個式子
- 6) 如果φ和ψ都是式子,那麼φ*ψ也是式子,其中*符號表示∧(conjonction),∨(disjonction),⇔(equivalence),⇒(implication) 符號中的任何一種
- 7) 如果φ是一個式子,x是一個變量,那麼(∃x)φ是一個式子
- ∃表示存在量詞符號 比如 (∃x) (P(x)∧P(y)) 含義是至少存在一個變量x的值在式子(P(x)∧P(y))中起作用 注意到x是φ的約束變量,y是φ的自由變量
- 8) 如果φ是一個式子,x是一個變量,那麼(∀x)φ是一個式子
- ∀表示所有量詞符號 比如 (∀x) (P(x)∧P(y)) 含義是對所有變量x的值在式子(P(x)∧P(y))中起作用
- 9) *如果t1和t2是兩個項,那麼t1=t2是式子 (由於要涉及處理相等問題的原則和公理,所以這裡的所有式子不涉及t1=t2情況)
- 1) ⊥ (永假符號) 是一個式子 (永假的含義是一個式子在任何解釋中,永遠是假命題,我們記作⊥
- 幾個注意點
- 一個變量x叫做φ式子的約束變量,當有存在量詞或所有量詞在φ給於限定變量x,反之叫做自由變量
- 注意存在量詞符號或所有量詞符號的作用域
- 比如 φ = (∃x p(x))∨q(x) 此時存在量詞僅作用於p(x),不作用於q(x),p(x)中的x是約束變量,q(x)的x是自由變量
以上的簡單語法規則構築了一階邏輯,我們之所以要通過以上的語法規則構築的式子,是想知道是否我們構築的式子是否有意思或有意思,在邏輯語法(Syntax)中我們無法解釋,因此我們必須通過邏輯語言語義(Semantic)來說明是否一個式子有意義或有意思,在邏輯語言語義(Semantic)中我們引入(Interpretation)解釋(記作I)
在邏輯語言語義(Semantic)中 我們用一個解釋(Interpretation)I 賦予一個式子(formula)以意思,
- 一個解釋I在語言集合L中是這樣定義的:
- 1) 解釋I必須有一個非空(領)域做為解釋的基礎,用符號D來表示, 比如我們說用全體自然數集合來作位解釋I的域來解析分析一個由語言集合L中的元素組成的式子(formula)
- 2) 解釋I是一個聯繫函數,他的定義如下:
- 1) 語言集合中的常數a I(a) 屬於解釋I的域,記作 I(a) = Ia 且 Ia 屬於 D
- 2) 對於函數f(t1,t2,......tn), If 是從 Dn*Dn*Dn.....Dn(N個Dn) 到 Dn 的映射,其中Dn分別是t1,.....,tn和f域
- 3) 對於邏輯命題P Ip 是{True,False}中的一個元素, 也就是所命題邏輯的結果要麼是真命題(記作 T),要麼是假命題(記作 F)
- 4) 對於謂詞邏輯P(t1,.......tn) Ip 是一個從 Dn*Dn*.......*Dn(N個Dn) 到 {True , False} 的映射 其中Dn是每個項ti(i=1,2,......n)的解釋域