##EasyReadMore##

4.14.2013

述詞邏輯的語意

有了L這個語言的structure,先把這個structure叫M好了,我們就可以判斷這個語言中沒有自由變元(free variable)的語句(sentence),在M裡是真的還是假的。

L這個有a,b,P,Q,f,g這些非邏輯符號的語言為例,其中a,b是常數,P是一元述詞,Q是二元述詞,f是一元函數,g是二元函數。我們設計一個L的structure A如下:
U={0,1,2}
aA=0
bA=1
PA={0,2}
QA={(0,1),(1,2),(2,1)}
fA={(0,2),(1,2),(2,0)}
——意思是,fA(0)=2,fA(1)=2,fA(2)=0
gA={(0,0,0),(0,1,1),(0,2,2),(1,0,1),(1,1,1),(1,2,1), (2,0,1),(2,1,0),(2,2,1)}
—— 意思是,gA(0,0)=0,gA(0,1)=1,gA(0,2)=2,
原子語句(atomic sentence)的真假值
A這個structure裡,P(a)是真的還是假的?我們先看aA指到什麼東西,再看看aA指到的東西是不是在P的詮釋裡。在裡面,那麼P(a)是真的;不在裡面,那麼P(a)就是假的。aA指到0,而且0PA,所以P(a)A裡是真的。P(a)A裡是真的,通常會記為AP(a)AP(a)

P(b)因為1PA,便是假的。P(b)A中為假,則記為AP(b)AP(b)Q(a,b)是真的,記為AQ(a,b),因為(0,1)QAAQ(a,a),因為(0,0)QA

至於P(f(a))在A裡的真假值,就把aA指到的東西輸進fA裡,看輸出的東西是不是在PA裡。aA指到00輸入fA會輸出2(因為(0,2)fA,其中0是輸入,2是輸出),而2PA,所以AP(f(a))。而AP(g(b,a)),因為往gA的第一個參數位置輸入1,第二個位置輸入0後,輸出的1不在PA裡。

有連接詞的語句的真假值
和語句邏輯的計算方式差不多。例如
  • AP(g(b,a)),所以A¬P(g(b,a))AP(a),故A¬P(a)
  • P(a)P(g(b,a))只會在P(a)P(g(b,a))都為真的情況下為真,所以AP(a)P(g(b,a))
有量限詞(quantifier)的句子的真假值
xP(x)的意思是,所有domain裡的東西都有P這個性質。目前U={0,1,2},也就是說,xP(x)的意思是0PA而且1PA而且2PA。因為1PA,所以AxP(x)

xP(x)的意思是,至少有一個domain裡的東西有P這個性質。也就是說,xP(x)的意思是0PA或者1PA或者2PA。所以AxP(x)

xyQ(x,y)的意思是,所有domain裡的東西,都和domain裡至少一個東西有Q這個關係。要講得具體一點以幫助理解的話,我們可以先把Q視為某個二元關係,例如x喜歡y(這不代表Q這個述詞就是x喜歡y的意思,Q就只是某個述詞符號,QA僅僅是某個由二元序列構成的集合。就像國小或幼稚園老師教1+1=2的時候,把「1這個自然數,填進+這個函數的兩個參數位置後,就會輸出2」生動地講成,一個蘋果和另一個蘋果放在一起就是兩個蘋果那樣。雖然1+1=2和蘋果半毛關係也沒有,但這樣舉例子比較容易理解),那麼xyQ(x,y)的意思便是,每個東西都至少喜歡一個東西。

不過句子太複雜或太長的話,我們可能沒辦法用舉實例的方式,理解句子的意思。不過還有別的辦法。也可以這樣理解xyQ(x,y)xyQ(x,y)是指所有domain裡的東西都滿足yQ(x,y),也就是
yQ(x,y)[0x]而且yQ(x,y)[1x]而且yQ(x,y)[2x]
yQ(x,y)[0x]的意思是yQ(x,y)中的x會指到domain裡的0。我們不能直接寫yQ(0,y)是由於,0不是term,所以yQ(0,y)不是合文法的字串。(私底下想把yQ(x,y)[0x]腦補成yQ(0,y)是沒問題,但別在正式場合這麼做)

yQ(x,y)[0x]可以理解成,至少有一個domain裡的東西會滿足Q(x,y)[0x],也就是,
Q(x,y)[0x,0y]或者Q(x,y)[0x,1y]或者Q(x,y)[0x,2y]
所以,yQ(x,y)[0x]而且yQ(x,y)[1x]而且yQ(x,y)[2x]的意思就會是:
Q(x,y)[0x,0y]或者Q(x,y)[0x,1y]或者Q(x,y)[0x,2y]】而且
Q(x,y)[1x,0y]或者Q(x,y)[1x,1y]或者Q(x,y)[1x,2y]】而且
Q(x,y)[2x,0y]或者Q(x,y)[2x,1y]或者Q(x,y)[2x,2y]】。
也就是
0喜歡0,或者0喜歡1,或者0喜歡2】而且
1喜歡0,或者1喜歡1,或者1喜歡2】而且
2喜歡0,或者2喜歡1,或者2喜歡2
因為domain裡的每個東西的確都喜歡至少一個東西,所以AxyQ(x,y)

有自由變元的句式(formula)的真假值
有自由變元的句式,基本上沒辦法判斷真假值。試想以下幾個句式:
  • 1=1
  • 2=1
  • x=1
第一個句式顯然是真的,第二個顯然是假的,但第三個就難辦了,因為我們不知道x到底是指哪個數,所以無從判斷x是不是等於1

既然問題的根源在於,不知道x到底是指什麼,那麼就發派一個東西給x去指不就得了。負責這項指派業務的玩意兒,就是一元的assignment function(我不知道這個東西有沒有固定的中文譯名,如果硬要翻的話,就叫指派函數好了)。這個函數和邏輯語言裡那個非邏輯符號的函數的詮釋不一樣。Assignment function的定義域是所有變數的集合(而不是structure的domain,和對非邏輯符號的函數的詮釋不一樣),值域是structure的domain裡的某一個東西。也就是,只要我們輸入某個變數給assignment function,問它這個變數是指啥,它就會輸出一個structure的domain裡的東西,回答我們此變數是指structure的domain裡的這個東西。

問不同的assignment function同一個問題,可能會得到不同的答案。例如h1(x)=1h2(x)=2之類的。這時在h1這個assignment function的指派之下,P(x)A中為假,因為1PA,記為AP(x)[h1],而在h2的的指派之下,P(x)A中為真,因為2PA,記為AP(x)[h2]

有時我們會看到一些長相比較奇特的assignment function,例如h1xh1x是指,我們已經有一個assignment function h,而h1x是個這樣的函數:輸入x會輸出1,輸入x以外的變數會輸出和h一樣的東西;也就是
h1x(v)=1    , if v=x,v是variable的意思)
h1x(v)=h(v), if vx
依此類推,
h1x2y(v)=1    , if v=x,
h1x2y(v)=2    , if v=y,
h1x2y(v)=h(v), if vx and vy

重要概念
  1. 某個structure M讓某個句子φ為真的話,我們就會就說M這個structure是φ模型(model)。(不過structure和mode這兩個字常混用就是了)
  2. 某個語言L中的句子φ可滿足的(satisfiable),若且唯若,至少有一個L的structure,和一個該structure的assignment function(如果φ裡有自由變元的話會用上,沒有的話,assignment function就只是來插花的)會讓φ為真。
  3. 某個語言L中的句子φ邏輯真理(logical truth),記為φ,若且唯若,所有L的structure,和所有該structure的assignment function都會讓φ為真。
    也就是,任選一個L的structur和它的隨便那個assignment function,φ在裡面都會是真的。
  4. 某個語言L中的語句集合Γ蘊含(imply)該語言的某個句子φ,記為Γφ,若且唯若,所有會讓Γ裡全部句子都為真的L的structure,和所有該structure的assignment function,也都會讓φ為真。
    也就是,Γ裡全部句子都為真的時候,φ也會為真。
第3點,是第4點中的Γ取為空集合而產生的特例。

0 feedback:

Post a Comment

為了避免辛辛苦苦寫的留言送出後就不見,你可以在送出前把它複製到別處。
如果留言一直沒顯示,可能是被系統當成垃圾留言擋下來。你可以寄信到右上角的信箱叫我處理。