首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

離散數學邏輯等價性證明:∀x(P(x)→A) ≡ ∃xP(x)→A 及相關辨析

     編輯:程式設計綜合問答

問題陳述

證明邏輯等價性:∀x(P(x) → A) ≡ ∃xP(x) → A,其中 A 中不含自由變量 x。並解釋:為什麼左邊不能化為 ∀x(P(x)) → A?

等價性證明

左邊 → 右邊

假設 ∀x(P(x) → A) 為真。即對任意 x,P(x) → A 成立。
要證明 ∃xP(x) → A。
若 ∃xP(x) 為假,則蕴涵式自動為真。
若 ∃xP(x) 為真,存在某 x₀ 使 P(x₀) 為真。由全稱實例化得 P(x₀) → A 為真,結合 P(x₀) 真,推得 A 為真。故 ∃xP(x) → A 成立。

右邊 → 左邊

假設 ∃xP(x) → A 為真。
要證明 ∀x(P(x) → A)。
任取一個 x。若 P(x) 為假,則 P(x) → A 為真。
若 P(x) 為真,則 ∃xP(x) 為真。由假設 ∃xP(x) → A 推得 A 為真,故 P(x) → A 為真。
因 x 任意,得 ∀x(P(x) → A)。

為什麼 ∀x(P(x)→A) 不能化為 ∀x(P(x))→A?

兩者邏輯含義根本不同:

  • ∀x(P(x) → A):對每一個 x,若 P(x) 成立,則 A 成立。即 A 必須在所有滿足 P 的對象上均為真。A 的真值不依賴於特定 x(因 A 無自由變量 x),但前提要求「所有 P(x) 都蕴涵 A」。
  • ∀x(P(x)) → A:若 對所有 x 都有 P(x) 成立,則 A 成立。這是一個整體前提:只有當 P 在整個論域上普遍為真時,才要求 A 為真。

反例說明

設論域為人,P(x):「x 是學生」,A:「下雨了」(無自由變量 x)。

  • ∀x(P(x) → A):「每個人若是學生,則下雨了。」即「所有學生都在下雨天。」
  • ∀x(P(x)) → A:「若每個人都是學生,則下雨了。」即「全人類都是學生這一前提下,下雨了。」

顯然,前者要求所有學生個體下雨,後者只有在極端前提(所有人都是學生)下才要求下雨。兩者不等價。

結論

∀x(P(x) → A) ≡ ∃xP(x) → A 成立(前提 A 不含自由變量 x)。
∀x(P(x) → A) 不能化簡為 ∀x(P(x)) → A,因為量詞作用範圍與蕴涵結構不同:前者是「對每個 x 的蕴涵」,後者是「全稱前提的蕴涵」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved