話題:#科學# #數學# #邏輯學#
小石頭/編
(由于,在科普數學過程中,會經常用到 一階謂詞邏輯語言,所以 寫一篇文章,對其進行簡單的介紹。這裡的目标是,數學中夠用,所有并不會涉及《模型論》和《證明論》部分。)
我們在日常生活中經常需要做判斷,例如:
稱這些判斷句為命題。
命題常常會被驗證,邏輯學要求,驗證有明确的結果,即:
命題的驗證結果 被稱為 命題的 邏輯值,顯然,真(記為 T) 和 假(記為 F)是唯二的邏輯值。值為真的命題 稱為 真命題,值為假的命題 稱為 假命題。
注:☆ 含有兩層意思,
排中律:命題值 隻能 是 T 或 F;
矛盾律:命題值 不能 同時是 T 或 F;
有一些命題會包含其它命題,例如:
命題,
- 老張有錢并且會物理。⑵
就包括兩個命題,
- 老張有錢;⑶
- 老張會物理。⑷
我們稱這類命題為 複合命題,而不是複合命題的命題則被稱為 原子命題,如前面上面的 ⑴,⑶ 和 ⑷ 都是原子命題。
複合命題都是通過 聯詞 将其所包含的命題關聯起來而構成的,例如,⑵ 是通過 “...并且...” 連接⑶和⑷而而成。自然語言中,有多個聯詞表示同一個關聯關系,例如,⑵ 還可以寫成:
- 老張既有錢又會物理。⑵‘
聯詞 ”既 ...又...“ 和 “...并且...” 都是并列關系,功能相同。為了表述的一緻,我們用 邏輯符号 ∧ (稱為和取) 來表示 “...與...”、 ”既 ...又...“ 、“...并且...” 等。若再令 ,
A = ⑶ , B = ⑷
則 複合命題 ⑵ 和 ⑵‘ 可統一寫成:
A ∧ B
這樣我們就得到了邏輯語言的一個公式。除了析取外,日常交流中常用的聯詞還有很多,我們也對它們接引入邏輯符号來表示:
- 析取 ∨,表示 “或”、”或者“、”要麼...,要麼..“ 等;
- 否定 ¬,表示 “非” 、"不是”、“并非” 等;
- 蘊含 →,表示 “如果 ...,那麼 ...”,”若..., 則 ...“ 等;
- 等價 ↔, 表示 ”當且僅當“ 等;
比較原子命題:
- 老馬有錢;⑶’
和 ⑶ 我們發現 它們的謂語部分是相同的,隻有 主語 不同,于是我們可以 将 主語替換參數 x ,得到:
- x 有錢
若令,
P(x) = x 有錢,A = (3),B = (3)'
則顯然有,
P(老張) = A,P(老馬) = B
稱 這樣的 P(x) 為謂詞。謂詞 也可以是多元的,例如,對 ⑴ 引入參數,得到謂詞:
Q(x, y) = x是y的CEO
就是一個二元 謂詞。從元數來看,位引入參數化的原子命題,例如上面的 A、B,可以認為是 零元謂詞。
注:一元謂詞P(x) 參數兩邊的 括号 可以省略不寫,記為 Px。
量詞也在日常交流中常常被用到,例如:
- 所有人都會回死;⑸
- 總有人是天才; ⑹
我們 用 ∀(稱為 全稱量詞) 表示 ”所有...“、”任何...“、”任意...“ 等, 用 ∃(稱為 存在量詞) 表示 ”有...“、”總有...“、”存在...“ 等。
注:∀ 為 Any 的首字母 A 上下颠倒得到,∃ 為 Exist 的首字母 E 左右翻轉得到。
于是令,
P(x) = x 是人,A(x) = x 會死,B(x)=x是天才
則 ⑸ 和 ⑹ 分别表示為:
∀x(P(x)∧A(x)) ⑸'
∃x(P(x)∧B(x)) ⑹'
注:在數學中,∀x(P(x)∧A(x)) 也被寫成 ∀x, P(x)∧A(x) ,這樣可以省一層 括号,看着清爽。
最後,複合命題可能有多層嵌套,例如:
- 并非所有人都是天才
這時改寫成 邏輯語言 時,需要使用 括号 進行分層,例如:
¬(∀x(P(x)∧B(x)))
至此,我們就得到了全部的 謂詞邏輯 語言。
回頭,再比較 ⑶ 和 ⑷,我們發現 它們的 主語 都是 老張,于是課将謂語參數化,得打:
- 老張 P
這樣 謂詞 P 就成了 變元。 這種情況,日常交流也經常遇到,例如:
- 老張有的,老馬也有。
寫成 邏輯公式就是:
∀P(P(老張) → P(老馬))
這種将 謂詞作為 變元的,稱為 高階邏輯,而 不将 謂詞作為 變元的,就是本篇介紹的 一階邏輯,也是被數學所使用的邏輯。
站在 數學的角度,聯詞 就是 集合 {T, F} 上的 邏輯運算,由于邏輯運算的操作數隻有 T 和 F 兩個,于是我們可以将 全運算 情況 羅列出來,得到如下的 真值表:
從真值表中可以看出,¬ 是一元運算,其它的都是 二元運算。邏輯運算可以是任意有限元的,特别是 零元運算,定義為:
- 恒真 ⊤ = T;
- 恒假⊥= F;
注:有些書 會用 ⊤ 和 ⊥ 分别去記 真 和 假。
雖然,邏輯運算多種多樣,但是它們可以 通過 有限 個 聯詞 的 組合來實現,能夠實現所有邏輯運算 的 聯詞集,被稱為 功能完全集。可以證明:
- 聯詞集 {¬, ∨, ∧, →, ↔} 是 功能完全的
這也是,為什麼自然語言 僅憑借 它們,就可以表達所有 邏輯,的 原因。
觀察,上面真值表 中 的 p, q 與 p → q 之間的邏輯關系,我們發現:
- 當 p=T 并且 q=F 時 p → q 為 F;
- 其它情況p → q都是 T;
于是有:
¬(p → q) = p∧¬q ①
進而得到:
p → q = ¬(¬(p → q)) = ¬(p∧¬q)
這種方法 稱為 寫假法。再觀察,還發現:
- 當 p=T 并且 q=T 時 p → q 為 T;
- 當 p=F 時 p → q 為 T;
- 其它情況 p → q 都是 F;
于是可得到:
p → q = (p∧q)∨¬p
這種方法 稱為 寫真法。
對于任意邏輯運算,我都可以通過,寫假法 或 寫真法,用{¬, ∨, ∧}去實現它,例如:
p↔q = ¬((¬p∧q)∨(p∧¬q)) 或 (¬p∧¬q)∨(p∧q)
故, {¬, ∨, ∧} 是功能完全集。
對于 p∨q 和 p∧q 使用寫假法,可分别得到:
¬(p∨q) = ¬p∧¬q
¬(p∧q) = ¬p∨¬q
這就是 德摩根定律,進而分别有,
p∨q=¬ (¬p∧¬q)
p∧q = ¬(¬p∨¬q)
這說明,{¬, ∨} 和 {¬, ∧} 也都是功能完全集。另外,由 ① 式,有,
¬(p → ¬q) = p∧¬(¬q) = p∧q
所以,{¬, →} 也是功能完全集。
那麼,有沒有一個聯詞的功能完全集呢?有!我們定義:
- 皮爾士箭頭: p↓q = ¬(p∨q)
- 謝弗豎: p|q = ¬(p∧q)
則分别有,
p∨q = ¬¬(p∨q) = ¬( p↓q) , ¬p = ¬(p∨p) = p↓p;
p∧q = ¬¬(p∧q) = ¬(p|q), ¬p = ¬(p∧p) = p|p;
所以,{↓} 和 {|} 都是功能完全集,也是最小的功能完全集。
在數學上,将 F 和 T 分别看做 0 和 1,這樣以來算術運算也就成了邏輯運算,例如:
p⋅q = p∧q
最後,結合數學運算,将 一元 和 二元 的所有邏輯運算彙總如下:
- 一元邏輯運算:
- 二元邏輯運算:
(好了,就寫到這裡了,以後想到了再補充!本篇力求簡單,盡量不耗費各位的時間,希望大家有機會看到,希望看到的能喜歡!)
補充1:
大家看到 蘊含 p→q 的真值表:
F → T = T,F → F = T
可能會差異。誠然,這和我們日常言語中的感覺不同,實際上,自然語言中的,“如果 p 那麼 q” 含有 邏輯推理的 意思,其相當于:
{p, p→q} ⇒ q
這與 p→q 的語義 并不相同。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!