##EasyReadMore##

12.04.2010

符合邏輯規則但不符合直覺的推論

上邏輯課時Kiki提到的幾個推論。

Gillies在2004發表的文章*1裡提到:
豪宅裡發生了謀殺案,在豪宅裡的雇員有在屋外工作的司機和園丁,以及在屋內工作的管家。這三個人都是嫌疑犯。已知管家有不在場證明。菜鳥助理判斷,「如果是在屋外工作的人殺了人,那麼兇手就是司機。」老練的偵探糾正他:「你說的條件句不成立。」
  1. 要嘛兇手是司機,要嘛兇手是園丁。(根據司機、園丁和管家都是嫌疑犯,而管家有不在場證明)
  2. 並非,如果是在屋外工作的人殺了人,那麼兇手就是司機。(根據老練偵探對新手的糾正)
  3. 在屋外工作的人殺了人,而且兇手不是司機。(根據2和語句邏輯的推論規則)
  4. 兇手是園丁。(根據3、在屋外工作的人只有司機和園丁)
可是,偵探想說的只是根據現有的線索兇手也可能是園丁,而非兇手一定是園丁。
Free choice permission:
剛剛才發現國小老師已經寫了,在這邊
礦工案例:
十個礦工因為礦道崩塌被困在裡面。這十個礦工要嘛全部都在A坑道要嘛全部都在B坑道,但外面的人不知道他們到底在哪個坑道。已知明天會下大雨,而且沙包的數量只夠封住一個坑道,如果用沙包封住其中一個坑道,沒封的坑道裡如果有人的話那些人都會被淹死;如果都不封的話那十個人裡最矮的會被淹死。這時候我們通常會選擇不封坑道,可是:
  1. 不封A坑道而且不封B坑道。(根據我們的選擇)
  2. 如果礦工全部都在B坑道,那麼封A坑道。(根據案例中的設定和前件成立時我們的選擇)
  3. 如果礦工全部都在A坑道,那麼封B坑道。(根據案例中的設定和前件成立時我們的選擇)
  4. 礦工全部都在B坑道,或者礦工全部都在A坑道。(根據案例中的設定)
  5. 封A坑道或封B坑道。(根據2、3、4和語句邏輯推論規則)
  6. 並非,不封A坑道而且不封B坑道。(根據5和和語句邏輯推論規則)
1和6矛盾。
Joe之前跟我說的:
從(P∧Q)→R,我們可以用語句邏輯推論規則得到(P→R)∨(Q→R)。

然而,想像有個同時按兩個開關才會亮的奇怪電燈。「如果我按A開關而且我按B開關,那麼電燈會亮」不代表「如果我按A開關那麼電燈會亮,或者,如果我按B開關那麼電燈會亮」。
Note:
  1. Anthony S. Gillies (2004). Epistemic Conditionals and Conditional Epistemics。感謝國小老師,我找到這篇文章啦。


相關文章:古典邏輯的實質條件句紛爭 - 哲學與思方

55 comments:

  1. 關於礦工案例:

    把[應該]加上去看看

    ReplyDelete
  2. 1.應該不封A坑道而且應該不封B坑道。
    2.如果礦工全部都在B坑道,那麼應該封A坑道。
    3.如果礦工全部都在A坑道,那麼應該封B坑道。
    4.礦工全部都在B坑道,或者礦工全部都在A坑道。
    5.應該封A坑道或應該封B坑道。
    6.並非,不應該封A坑道而且不應該封B坑道。

    所以1和6就不矛盾了這樣嗎?

    ReplyDelete
  3. 關於礦工案例,2和3的句子裡應該是「如果我們知道礦工在......」。
    但我們不知道。

    ReplyDelete
  4. Jerry:
    課堂上有人也試圖用這個方法解決,不過Kiki認為這個方法沒有用。我沒有搞清楚為什麼Kiki會這麼說,我下次再問問他。

    ReplyDelete
  5. kiki應該是想區分形上學的前件和知識論的前件。原版用的應該是知識論的。

    ReplyDelete
  6. 不對,原版用的應該是形上學的。

    ReplyDelete
  7. 形上學的前件是什麼意思?

    ReplyDelete
  8. 形上學前件:如果明天下雨,村民都會待在家裡。
    知識論前件:如果村民知道明天下雨,村民都會待在家裡。

    ReplyDelete
  9. 所以形上學前件和知識論前件只差在有沒有加上「知道」這樣啊。謝謝你。

    ReplyDelete
  10. 我不懂第一個推論。

    2.並非,如果是在屋外工作的人殺了人,那麼兇手就是司機。
    是說:
    「如果是在屋外工作的人殺了人->那麼兇手就是司機」
    i.e. 「p --x-> q」
    是錯的,也就是說這項推論不成立。

    那怎麼就有了
    3.在屋外工作的人殺了人,而且兇手不是司機。
    的出現?

    我並無法從第二點直接導出第三點,邏輯上來說。

    ReplyDelete
  11. 用P代表在屋外工作的人殺了人,用Q代表兇手是司機。把「並非,如果是在屋外工作的人殺了人,那麼兇手就是司機。」改寫成¬(P→Q),然後用語句邏輯的等價推論規則:
    1.¬(P→Q) (前提)
    2.¬(¬P∨Q) (1,Impl)
    3.¬¬P∧¬Q (2,Dem)
    4.P∧¬Q  (3,DN)
    就可以得到「在屋外工作的人殺了人,而且兇手不是司機」。

    或者你的意思是把「並非,如果是在屋外工作的人殺了人,那麼兇手就是司機。」改寫成¬(P→Q)是不適合的?如果是這樣的話你會建議改寫成什麼樣子呢?

    謝謝你的留言,下次請盡量留個名字噢。

    ReplyDelete
  12. ¬
    Impl
    Dem
    DN
    上面這代號是什麼意思……

    感謝你的回應。

    ReplyDelete
  13. ¬是代表否定的邏輯連接詞。它的真值表長這樣:
    ¬A A
    F  T
    T  F (當語句A為真時,¬A為假;當A為假時,¬A為真)

    說兩個語句等價的意思是,為這兩個語句畫真值表時,會發現他們的真假值一樣;換句話說,當第一個語句為真的時候,第二個語句也為真,第一個語句為假的時候,另一個也為假。

    Impl是指這個邏輯規則:
    P→Q和¬P∨Q等價。

    Dem是指這個邏輯規則:
    ¬(P∨Q)和¬P∧¬Q等價。¬(P∧Q)和¬P∨¬Q等價。

    DN是指這個邏輯規則:
    A和¬¬A等價。

    ReplyDelete
  14. 我覺得,在第一個論證裡,因為是用二值邏輯規則,所以導出奇怪的結論。但是日常語言常常不是二值的,當我們否定「P→Q」時,並非宣稱「~(P→Q)」為真,反之亦然。於是老練的偵探說「(菜鳥偵探的條件句)不成立」時,並非宣稱「~(菜鳥偵探的條件句)」,前提2.就給不太出來。

    ReplyDelete
  15. Gillies在那篇文章裡提出的解決方法是,使用另一套邏輯語言,update semantics。如果我沒記錯,update semantics是二值邏輯。我沒學過非二值的邏輯,不過我也滿想知道非二值邏輯會怎麼解決這個問題。

    如果能找出時間弄清楚Kiki關於update semantics的那篇講義在說什麼,我再寫一篇文章介紹它。

    ReplyDelete
  16. 第一個推論中,老偵探說出:「你說的條件句不成立。」,想表達的應該是:「(在只知道殺人兇手是在屋外工作的人的情況下,)你不能自『要嘛園丁殺人,要嘛司機殺人』推論出『司機殺人』。」(因為(P∨Q)→P是無效的推論)。

    他的「並非」應該會具有歧義的解釋,一個是直接對於助理提出的條件句直接加上一個否定,另一個則是說具有(P∨Q)→P形式的推論會是無效的。

    我猜第一個推論會得到奇怪結論的原因,應該就是把「並非」單純地看成對助理條件句的否定才產生。可是如果在第二種(我認為偵探在懂邏輯的情況下會對助理做出的糾正應該是什麼意思)的理解下,在第一個推論的2到3的步驟就會是搞錯偵探用意而犯的錯。

    ReplyDelete
  17. 我周末回家而且家裡沒網路,晚回覆了不好意思。

    如果把前提二改成對助理的推論的否定,還是會產生奇怪的結果。修改過後的推論如下:

    1.要嘛兇手是司機,要嘛兇手是園丁。(根據司機、園丁和管家都是嫌疑犯,而管家有不在場證明)
    2.並非,如果「要嘛兇手是司機,要嘛兇手是園丁」則「如果是在屋外工作的人殺了人,那麼兇手就是司機」。(根據老練偵探對新手的糾正)
    3.「要嘛兇手是司機,要嘛兇手是園丁」,而且並非「如果是在屋外工作的人殺了人,那麼兇手就是司機」。(根據2和語句邏輯的推論規則)
    4.如果是在屋外工作的人殺了人,那麼兇手就是司機。(根據3和語句邏輯的推論規則)
    5.在屋外工作的人殺了人,而且兇手不是司機。(根據4和語句邏輯的推論規則)
    6.兇手是園丁。(根據5、在屋外工作的人只有司機和園丁)

    ReplyDelete
  18. 這是定義上的混用造成的錯誤吧?
    把邏輯條件句傳回來的真假值,與該條件句的可不可用混在一起了。

    不可用的條件句給上not運算並不會使它變得可用。
    它唯一的命運應該是要從論證中消失掉。

    ReplyDelete
  19. 17樓的Anonymous:
    我想你是對的,前提二沒有正確地表達偵探的意思。我在18樓回覆你時沒有看懂你說的話。

    zanyking:
    我覺得這是個有趣的解決方式,我以前沒想過有這招XD。

    不過我不確定在「把不可用的條件句刪掉」和「把前提二改寫成比較符合偵探原意」中哪個比較好。

    ReplyDelete
  20. 這幾個例子好有趣:b

    我覺得第三個例子會覺得奇怪大概是把『「按開關A會亮」或「按開關B會亮」』[(P→R)∨(Q→R)]錯誤詮釋成『按開關A或按開關B會亮』[(P∨Q)→R]了~~

    『「按開關A會亮」成立或「按開關B會亮」成立』只有三種可能:
    1.「按開關A會亮」不成立且「按開關B會亮」成立
    2.「按開關A會亮」成立且「按開關B會亮」不成立
    3.「按開關A會亮」成立且「按開關B會亮」成立
    因此,按開關A可能會亮,按開關B可能會亮,按開關A且按開關B則一定會亮,也就是原來的(P∧Q)→R.......

    但以上還是不太對,因為現實上無論「按開關A會亮」和「按開關B會亮」成立與否,都不可推論出「同時按開關AB會亮」(比如有的燈按一個會亮按兩個不亮)...

    想來想去,問題似乎是出在邏輯語句(P∨Q)並非代表按開關A也按開關B,而是代表按開關A接著再按開關B?

    ReplyDelete
    Replies
    1. (格主還是沒辦法留言,請人代發)

      第三個例子的重點在,語句邏輯裡(P∧Q)→R蘊含(P→R)∨(Q→R)。但考慮有個同時按兩個開關才會亮的奇怪電燈,此時若把P代入「按A開關」,把Q代入「按B開關」,把R代入「電燈亮」,代換後我們不會認為蘊含關係仍成立。

      >>問題似乎是出在邏輯語句(P∨Q)並非代表按開關A也按開關B,而是代表按開關A接著再按開關B?
        (P∨Q)代表按開關A或按開關B。語句邏輯裡沒有用來代表先後順序的連接詞。

      Delete
    2. 咦?我前面就是在說明之所以覺得奇怪是因為把(P→R)∨(Q→R)錯誤詮釋為(P∨Q)→R了啊??

      最後一句寫錯了QQ 本來應該是要寫 (P∧Q)...不過這樣寫感覺還是有點怪,我再想想好了...

      Delete
  21. 語句邏輯裡(P→R)∨(Q→R)和(P∨Q)→R是不等值的喔。(P→R)∨(Q→R)和(P∧Q)→R才是等值的。

    我目前覺得問題是出在語句邏輯的真值設定上,在這個例子裡我猜罪魁禍首是→。

    ReplyDelete
  22. 夜鶯姐誤會了啦QoQ

    我的意思是雖然我們都知道(P→R)∨(Q→R)和(P∧Q)→R才等值,但我們在看自然語句的時候,很容易把『「按開關A會亮」或「按開關B會亮」』解讀為『按開關A或按開關B會亮』,但實際上是不應該這樣解讀的。

    ReplyDelete
  23. 根據黃頌竹的提醒,我可能知道你的意思了。

    我覺得和把「按開關a會亮或按開關b會亮」解讀為「按開關a或按開關b會亮」沒關係。

    用A代表按開關a,B代表按開關b,L代表燈亮了。A、B、L的真值組合有以下幾種:
    A B L (A→L)∨(B→L)
    T T T T
    T T F F
    T F T T
    T F F T
    F T T T
    F T F T
    F F T T
    F F F T
    真值表中不合理的地方至少有三列:第三、五、七列。例如第三列說按了a開關,沒按b開關,而且燈亮了。在只按了一個開關的情況下顯然燈不會亮,但語句邏輯計算(A→L)∨(B→L)的值卻是真。

    ReplyDelete
  24. 我覺得三、五、七列沒問題耶~~若A為假,L為真,條件句(A→L)仍為真啊。

    不過這樣一提醒,我終於知道問題了:「同時按開關AB燈才會亮」的邏輯形式是 (A∧B)↔L ,不是 (A∧B)→L 啦XDD

    ReplyDelete
    Replies
    1. 目前我同意改成(A∧B)↔L好像就不會有問題。但我沒有深入關切這個議題,或許提出這個問題的人有其他考量所以不認為改成↔是個合理的解決方式,或許他會認為↔是個好主意,我不知道。

      Delete
    2. 1.(A∧B)↔L
      2.((A∧B)→L)∧(L→(A∧B))
      3.(A∧B)→L
      4.(A→L)∨(B→L)

      這樣還是蘊涵(A→L)∨(B→L),問題有解決嗎?

      Delete
    3. 噢,我在回覆時大概是突然忘記,重點在於推論出奇怪的東西,而非「按a開關和b開關燈才會亮」的最佳符號化是啥了。

      你是對的,問題還是沒解決。

      Delete
    4. 我不懂小竹哥是什麼意思耶,2和3不等價,2也不蘊涵3呀。

      Delete
    5. 哦,我懂意思了。但是小竹哥那段推論要1為真才有2,3,4為真,而非無論1為何皆可推論出2,3,4啊。

      令A為真B為真代入,則1為真,則2,3,4,為真
      令A為真B為假代入,則1為假,則2,3,4,為假

      所以之前覺得奇怪的「A為真,B為假,4為真」的情況也就不會發生了。

      Delete
    6. 推論保證的是,如果前提為真則推論出的東西為真,和前提實際上是不是真的沒有關係。不管1實際上是不是真的,都能推出2、3、4。

      令A為真B為真代入,但不知道L的值所以沒辦法判斷1、2、3、4的值。
      令A為真B為假代入,但不知道L的值,只能得出3、4為真,1和2的值不知道。

      「A為真,B為假,4為真」的情況沒有消失。

      Delete
    7. This comment has been removed by the author.

      Delete
    8. 囧,我漏了L啦><

      令A為真B為真L為真代入,則1為真,則2,3,4,為真
      令A為真B為假L為真代入,則1為假,則2,3,4,為假

      然後照夜鶯姐的例子,如果令A為真B為假代入,而不知道L的值,則由於1不確定是否為真,自然不能肯定的推論出3,4為真了,那還是不會有「A為真,B為假,4為真」的情形出現啊

      Delete
    9. 1.前提是否為真,跟前提能推出什麼語句無關。

      2.語句4為真的情況是:A為假 或 B為假 或 L為真。意思是,上述三個條件中只要至少滿足一個,4就為真。所以「A為真,且B為假,且L不確定」的情況下,既然已知B為假,那無論A和L的值是什麼,4就已知是真的了。

      3.有效推論保證了前提真的話結論就為真,但不保證前提假則結論便為假,所以「令A為真B為假L為真代入,則1為假,則2,3,4,為假」這說法是錯的。

      Delete
    10. This comment has been removed by the author.

      Delete
    11. 我又弄錯了啦orz

      回到最前面的問題,我們覺得奇怪的情況是:給定條件「按A開關及B開關,則電燈亮,否則電燈不亮」為真之下,發生「按A開關不按B開關而電燈亮」或「不按A開關按B開關而電燈亮」的情況。

      換成邏輯語句是「(A∧B)↔L為真且A為真且B為假」或「(A∧B)↔L為真且A為假且B為真」,而這兩種情況都不可能發生,於是問題就結束了。至於其他式子都是來亂的,與原題目無關,不要理它們^^

      Delete
  25. This comment has been removed by the author.

    ReplyDelete
  26. 關於第一個問題,我覺得當我們說「P→Q不成立」,我們的意思是「P→Q未必為真」(而不是原來2.理解的「P→Q為假」),按此翻譯成邏輯式應該是 (P→Q)∨(¬(P→Q)),這是恆真句沒有約束力,所以結果其實相當於zanyking所說的把條件句刪掉。

    ReplyDelete
  27. 這篇文章討論的是古典邏輯,古典邏輯是二值的,所以「P→Q不成立」就是指「P→Q為假」。

    ReplyDelete
    Replies
    1. 把「P→Q不成立」寫成(P→Q)∨(¬(P→Q))也是二值邏輯啊

      Delete
    2. 二值邏輯的意思是,語句要嘛真要嘛假,沒有「未必為真」。因此不成立就是假。

      Delete
    3. 「P→Q不成立」就是指「P→Q為假」,故寫成¬(P→Q)。不會出現你所說的「P→Q未必為真」因而譯為(P→Q)∨¬(P→Q)的情況。

      此外,你把未必為真句翻成恆真句還滿怪的。二值邏輯裡沒有「未必為真」,硬要翻譯或許不會有好結果。

      Delete
    4. 夜鶯姐這樣乞題了啦XD
      現在的argument就是日常語言的「P→Q不成立」不應該理解為「P→Q為假」啊@@

      剛才發現(P→Q)∨(¬(P→Q))會違反矛盾律,那改成(P→Q)⊕(¬(P→Q))好了XD

      Delete
    5. 1.(P→Q)∨(¬(P→Q))為什麼會違反矛盾律?

      2.現在的前提是用二值邏輯來翻譯自然語言,在二值邏輯的後設語言裡,語句只有「真」/「假」兩個值,沒有「不成立」這個值。所以要把日常語言中的「P→Q不成立」翻譯到二值邏輯的語言裡,妳只有兩個選擇:「P→Q為真」、「P→Q為假」。超出這兩個選擇的都跟二值邏輯無關。

      Delete
    6. 2.有句話忘了說。意思就是,如果妳要主張「P→Q不成立」不能翻譯成「P→Q為假」,也不能翻譯成「P→Q為真」,妳就是在主張「P→Q不成立」不能翻譯至二值邏輯的語言裡。

      Delete
    7. A⊕B的真值表是什麼?

      除了"二值邏輯的後設語言裡,語句只有「真」/「假」兩個值"這部份以外,我的意見和黃頌竹一樣。我滿確定二值邏輯裡只有兩個值,但二值邏輯的設後語言有幾個值我就不確定了。

      Delete
    8. 1.我本來的想法是(P→Q)為真且(P→Q)為假的情況是不能容許的,不過如果前提是(P→Q)與¬(P→Q)本來就無交集,此時(P→Q)∨(¬(P→Q))仍成立,嗯......所以這樣寫沒有問題?

      2.我不知道耶,果真是這樣那就承認這個例子不能用二值邏輯化約吧XD 反正日常生活中確實很多觀念不能用二值邏輯表示啊@@

      還是去問教授好了?我也想知道答案欸@@

      Delete
    9. 因為「真」、「假」是後設語言裡才有的概念,所以我說二值還輯的語句用後設語言來給值的時候只有「真」和「假」兩種。

      Delete
    10. 回夜鶯姐:A⊕B 就是 A xor B
      (抱歉之前沒看到)

      Delete
  28. This comment has been removed by the author.

    ReplyDelete
  29. >>「真」、「假」是後設語言裡才有的概念
    對耶,應該是這樣。我真是太槽糕了。

    >>在二值邏輯的後設語言裡,語句只有「真」/「假」兩個值
    我把你之前這句話誤讀成"在二值邏輯的後設語言裡,後設語言的語句只有「真」/「假」兩個值"了。還想著自然語言裡明明就可以有第三值的句子。

    ReplyDelete

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