數理邏輯學習筆記[3] 謂詞與量詞 一階語言基礎 復雜度 權重


3 一階邏輯:模型論

3.1 謂詞和量詞

  1. Q: 為什么說命題邏輯\(L\)的表達能力不夠?
    A: 比如難以表達“至少有一個A中元素滿足某某”。
    注:命題邏輯較容易表達“所有A中元素都滿足某某”。
  2. Q: 含有自由變元的陳述和命題邏輯中的命題形式有何共同點?
    A: 由於變元(自由變元或者命題邏輯中命題變元)的取值未知,我們一般情況來說不能對含有自由變元的陳述命題形式直接判斷真值。
  3. Q: 如何理解“真值表無法推廣到一階邏輯”?
    A: 量詞引入了變元,例如\(\forall x(A(x)\to B(x))\)表示對每個對象\(x\),若\(x\)具有屬性\(A\)則具有屬性\(B\). 如果\(x\)可能取的有無限多種情況,就無法列表。
    對比之下,命題形式的所有真值指派為有限種。
  4. Q: 主詞和自然語言意義上的主語一定是一個意思嗎?
    A: 很多時候都是。比如\(x\)是數學家表示成\(A(x)\),主語就是主詞,謂語(即系+表)就是謂詞。
    但是有些時候兩者不一定一致。比如對“\(a\)\(b\)”,可以抽象出一個二元謂詞\(A\),從而表示成\(A(a,b)\).
  5. Q: 嘗試闡釋為什么在實際應用中,全稱量詞之后常跟一個隱含詞,存在量詞之后常跟一個合取詞,而不是反過來。
    A: 對於全稱量詞后跟隱含詞,其有用於推理的實際意義。而存在量詞后跟隱含詞\(\exists x(A(x)\to B(x))\)實際意義不顯著:具體地,只要\(\exists x(\sim A(x)\vee B(x))\),那命題就為真。
    全稱量詞跟合取詞,表示所有\(x\)都同時滿足兩條性質,這過於平凡,不能提供什么有關兩個謂詞之間關系的信息。而存在量詞跟合取詞則往往富有實際意義,例如作為“反例”否定\(\forall x(A(x)\to\sim B(x))\).
  6. Q: 簡單說明如何形式化常見的兩類自然語言句子:“所有滿足A的都滿足B”“一些滿足A的滿足B”。如果限定只能使用全稱量詞怎么辦?只能使用存在量詞呢?
    A: 提示:“所有滿足A的都滿足B”實際上相當於不存在\(x\)同時滿足\(A\)且不滿足\(B\). (即:“沒有反例”)
    而“一些滿足\(A\)的滿足\(B\)”也可以理解成“舉反例”,也就是並不是所有滿足B的都不滿足A. (注:也可以並不是所有滿足A的都不滿足B)
  7. Q: 闡釋形式化自然語言中主謂賓結構句子時為什么常常出現\(A(x)\wedge B(y)\wedge C(x,y)\)結構。
    A: 比如學生看書,則“學生”本身就是一種“屬性”,需要用一個謂詞表示。“書”也同理。而“看”根據3.可以被抽象為二元謂詞,即得到結果\(\exists xy(Student(x)\wedge Book(y)\wedge Read(x,y))\).

3.2 一階語言

  1. Q: 邏輯符號和非邏輯符號的區別是什么?
    A: 非邏輯符號(函項符、謂詞符)的含義根據語義的賦予(解釋)的不同而不同。比如你可以讓\(Phil(x)\)指代“\(x\)是哲學家”,也可以讓\(Phil(x)\)指代“\(x\)是費城人”。
  2. Q: 為什么\(+,-,>,<,=,\exists,\wedge,\vee\)都是技術性符號?
    A: 提示:有的是二元函項符,有的是二元謂詞符(即二元關系)。
    可以用\(\forall,\sim,\to\)等定義\(\exists,\wedge,\vee\).
  3. Q: 常元和函項符有何聯系?函項符和謂詞符有何聯系?
    A: 常元可以看成0元函項符。
    把原子公式\(A_j^n(t_1,\cdots,t_n)\)中每一項遞歸地展開,則原子公式可以抽象地寫成(這里抽象出了一個實際含義可能極度復雜\(m\)元謂詞\(B_{j'}^m\)\(B_{j'}^m(x_1,\cdots,x_m)\),其中\(x_i\)是變元。這說明其實函項符也可以看作技術性符號,即形式上可以把所有原子公式(從而所有公式)只用謂詞表示。
    注意函項符值域是論域,相比之下謂詞值域是\(\{0,1\}\).
    當然,還有一種思想:把\(n\)元函項符看作\(n+1\)元謂詞符。這也可以說明只有謂詞符就夠了。具體嚴格說明“夠了”需要后面的知識。
  4. Q: 為了定義項和公式,除了定義遞歸的出口(對於項是變元和常元,對於公式是原子公式),還需要作出什么定義?
    A: 遞歸的法則(對於項是用函項符,對於公式是用連接符或量詞,即\((\forall x_i)\mathscr A\)這樣)。
    並且還要專門說明遞歸的出口和遞歸的法則確定了所有可能的項(公式)集合,沒有其它的項(公式)。
    注:用量詞構造公式時,量詞后緊跟的變元可能不出現在公式中,即\((\forall x)(A(y))\). 當然這樣做在實際中並不常用。參見“約束變元”。
  5. Q: 為什么說命題語言\(\mathscr L_0\)是一階語言\(\mathscr L\)的子語言?
    A: 在\(\mathscr L\)如果不含有量詞和項(即:不含常元、變元、函項符),即所有公式都是0元謂詞符(即“命題符”),那就是\(\mathscr L_0\).
    注意:回憶我們提到過謂詞是非邏輯記號,其具體含義(何時為真)可以自己指定。那0元謂詞的含義(真假)當然也可以自己指定。這個角度幫助我們理解:0元謂詞可以看作命題變元。
    注意:當然也可以脫離“命題真假”這樣的語義,純粹從形式上理解。之前我們提過這些形式系統除了表示一般的二值邏輯,還能表示三值邏輯,乃至各種實際語義。
  6. Q: 為什么“擴展”一階語言時,要把可數個常元、謂詞、函項等人為分出多個(有限整數個)“系列”,每個系列都為可數個?
    A: 提示:type signature.

復雜度和權重

  1. Q: 閉項的復雜度一定低嗎?
    A: 根據定義,不一定。閉項只是說不含變元,只含常元。但其中可能含有許多函項符。
    然而在實際應用中,有時可以用一個具體的常元代替或近似代替閉項(比如:求出函數值),這樣一來復雜度(項中出現函項符個數)就是0了。
    注:約定0元函項符或常元不算入復雜度。
  2. Q: 每個項\(t\)權重都是-1,且\(t\)任意初始(真)子段的權重都非負這一事實和什么數據結構有關?
    A: 提示:想象棧中初始有一個元素\(0\),讀取\(f_a^3t_1f_b^2t_2t_3t_4\)時:
    對於\(f_a^3\),把0取出再放入\(a_1,a_2,a_3\).
    對於\(t_1\),取出\(a_1\).
    對於\(f_b^2\),取出\(a_2\)再放入\(b_1,b_2\).
    對於\(t_2\),取出\(b_1\).
    對於\(t_3\),取出\(b_2\).
    對於\(t_4\),取出\(a_3\).
    當然棧和遞歸(或說歸納法)本質是相同的。
  3. Q: 公式的權重為-1這一事實證明和2.有何異同?
    A: 用前綴表達式書寫,則\(\to,\sim\)實際上可以和謂詞一並統一用2.的方法處理(注意\(\to,\sim\)分別是二元、一元運算符)。
    注:全稱量詞是定義在\(\{變元\}\times\{公式\}\)這個笛卡爾積上的二元運算符,則也可以如此處理。
  4. Q: 權重和“技術性符號不必要”有何聯系?
    A: 提示:用“棧”的簡單操作和性質即可良定義所有項和公式(用前綴表達式,如\(f_1^2 t_1t_2\)這樣),無需技術性符號(括號,逗號等)
  5. Q: 公式的復雜度定義中,\(\sim\)\(\forall\)為何都加1?之前難道不是說\(\sim\)是一元運算符而\(\forall\)是二元嗎?
    A: \((\forall x)\mathscr A\)這樣可以看成關於\(\mathscr A\)的一元運算符。
    注:實際上,公式的復雜度等於總的子公式個數-1.(顯然每個\(\sim,\forall\)多引入一個子公式;每個\(\to\)多引入兩個子公式。歸納即可證明)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM