數學工具與證明方法

命題邏輯與量詞(propositional logic and quantifiers)

邏輯是嚴謹論證的文法:一種把主張說得精確、又能毫不含糊地組合它們的方法。命題是一個非真即假的陳述——「3 是奇數」(真)、「每個字串都是空的」(假)。我們用連接詞由小命題堆出大命題:且(兩者都要成立)、或(至少一個成立)、非(把真假對調),以及蘊涵「若 P 則 Q」(P 迫使 Q,寫作 P → Q)。日常的「或」是互斥的(「湯或沙拉」),但邏輯的「或」是兼容的——只要任一邊、或兩邊為真就為真。

要一次談論許多東西,我們用量詞。「對所有」(全稱量詞,寫作 ∀)對每個項目下斷言:「對每個字串 w,w 都在 Σ* 裡」。「存在」(存在量詞,寫作 ∃)斷言至少有一個成立:「存在一個長度為 5 的字串」。最有用的單一技巧是否定一個帶量詞的陳述,規則是乾淨的對調:「對所有 x,P(x)」的否定是「存在某個 x 使得非 P(x)」,而「存在 x 使得 P(x)」的否定是「對所有 x,非 P(x)」。要否認所有人都通過了,你只需舉出一個沒通過的人。

這個對調正是把幫浦引理變成非正規性證明的關鍵一步。幫浦引理說:對每個正規語言,存在一個幫浦長度 p,使得對所有夠長的字串,存在一種切法可以被幫浦。為了反駁正規性而否定它時,要把每一個量詞依序對調——於是證明變成:對每個 p,存在一個壞字串,使得對每一種切法,幫浦都會破壞它。把「對所有」與「存在」的交替排對、並正確地否定它,就是整場遊戲的全部。

陳述「對所有字串 w,length(w) ≥ 0」為真。它的否定「存在某字串 w 使得 length(w) < 0」為假。否定時把 ∀ 換成 ∃,並把內層主張反轉——這正是用來建立幫浦引理證明的那一步。

否定會把每個量詞對調並否定核心主張;非正規性證明就靠這一步推動。

蘊涵 P → Q 只有在 P 真而 Q 假時才為假;只要 P 為假,它就空泛地為真。而邏輯的「或」是兼容的,不是口語中那種「擇一而不可兼得」的互斥或。

又称
and/or/not, implication, for-all, there-exists邏輯連接詞全稱量詞存在量詞