直覺主義邏輯
類型論驛站寫作目錄:類型論驛站寫作計劃
何為邏輯?斯坦福哲學百科全書的 Logic and Ontology 條目給出了邏輯的四種常見的概念:
- 對於人工形式語言的研究
- 對於形式有效的推理和邏輯結果的研究
- 對於邏輯真的研究
- 對於判斷的普遍特徵或形式的研究
這四種概念在特定的研究場景下表現出極強的一致性,在另一些場景下則表現出明顯的不同。
最為著名的「經典邏輯(classical logic)」是學習邏輯的一個起點,以及其他邏輯作為參照的標杆。經典邏輯側重「真值」,陳述的「真值」是其「絕對」特徵。一個無歧義的合式陳述(well-formed statement)或真或假。假即非真,真即非假,是為「排中律」(Law/principle of excluded middle, tertium non datur)。
基於經典邏輯,我們可以「非構造地」證明一個命題。例如:
(存在兩個無理數 ,使得 為有理數)。
證明:如果 是有理數,那麼我們可以取 ,否則可以取 .
上面的證明雖然在經典邏輯里沒有問題,但我們仍無法確定究竟哪一種情況是正確的。除此之外,我們還可以做出一個構造性證明(constructive proof):對於 ,我們有 .
這種「構造式」的推理方式對應著「直覺主義邏輯」(intuitionistic logic)。直覺主義邏輯的哲學基礎是,不存在絕對真理,只存在理想化數學家(創造主體)的知識和直覺主義構建。邏輯判斷為真當且僅當創造主題可以核實它。所以,直覺主義邏輯不接受排中律。
BHK釋義(The BHK interpretation)
直覺主義命題邏輯,或稱直覺主義命題演算(Intuitionistic propositional calculus, IPC),的語言和經典命題邏輯的語言是一樣的。
定義1
假設一個命題變數(propositional variables,或譯為變項,為了保持邏輯、數學用語的一致性,類型論驛站中一般採用數學翻譯法)無限集合 ,我們定義邏輯式(formulas)的集合 為滿足下列條件的最小集合:
- 所有謂詞變數和常量 (謬)都是 的元素;
- 如果 ,那麼
變數和常量被稱為原子式(atomic formulas)。子式(subformula)是一個邏輯式(不一定平凡)的構成邏輯式。
否定、等價和真(truth)定義如下:
直覺主義邏輯里的語義不是通過真值表來判斷的,而是通過構建模式來解釋的。這就是著名的BHK釋義(Brouwer-Heyting-Kolmogorov interpretation)。Heyting 是 Brouwer的學生。Kolmogorov有個著名的學生叫Martin-L?f.
- 的構造(或證明)包含 的構造和 的構造;
- 的構造包含一個指數(indicator) 和一個 的構造;
- 的構造是一個把每一個 的構造都轉換為 的構造的函數(方法);
- 不存在 的構造。
練習1:
證明下列命題:
Theorem bot_to_p: False -> P.nnTheorem neglect_Q: P->Q->P.nnTheorem pqr: (P->Q->R)->(P->Q)->P->R.nnTheorem doub_neg: P->~~P.nnTheorem doub_neg_elim: ~~~P->~P.nnTheorem contra_imp:(P->Q)->(~Q->~P).nnTheorem vee_distr: ~(P/Q) <-> (~P/~Q).nnTheorem sum_arrow:((P/Q)->R)<->(P->(Q->R)).nnTheorem ex_mid_doub_neg: ~~(P/~P).nnTheorem ex_mid_impl: (P/~P)->~~P->P.n
參考答案(使用 Coq):
Section BHK_interpretable.nnHypotheses P Q R:Prop.nnTheorem bot_to_p: False -> P.nProof.nintros.nelim H.nQed.nnTheorem neglect_Q: P->Q->P.nProof.nauto.nQed.nnTheorem pqr: (P->Q->R)->(P->Q)->P->R.nProof.nauto.nQed.nnTheorem doub_neg: P->~~P.nProof.nauto.nQed.nnTheorem doub_neg_elim: ~~~P->~P.nProof.nauto.nQed.nnTheorem contra_impP->Q)->(~Q->~P).nProof.nauto.nQed.nnTheorem vee_distr: ~(P/Q) <-> (~P/~Q).nProof.nunfold iff.nunfold not.nsplit.nintros. (*left implies right*)nrefine (conj _ _);auto.nintros (*right implies left*).nelim H0;apply H.nQed.nnTheorem sum_arrow:((P/Q)->R)<->(P->(Q->R)).nProof.nunfold iff.nsplit.nintros.napply H.nsplit; [apply H0 | apply H1].nintros;apply H; apply H0.nQed.nnTheorem ex_mid_doub_neg: ~~(P/~P).nProof.nunfold not.nauto.nQed.nnTheorem ex_mid_impl: (P/~P)->~~P->P.nProof.nunfold not.nintros.nelim H.ntrivial.nintros.ndestruct H.nassumption.nelim H0.nexact H.nQed.nnPrint bot_to_p. (*查看構造*)nPrint ex_mid_impl.nnEnd BHK_interpretable.n
下列邏輯式在經典邏輯里是重言式(tautology),但在直覺主義邏輯里卻沒有構造。
- (Peirce 定律)
- (排中律)
- (雙重否定消除)
- (反證法)
- (De Morgan定律)
- (經典邏輯中蘊含的定義)
自然演繹(natural deduction)
直覺主義邏輯的一個證明系統是自然演繹系統 。其中J代表直覺主義邏輯。NK是經典邏輯的自然演繹系統。
定義2
- 自然演繹里的判斷(judgement)是一個對子,寫作 ,讀作「Gamma證明phi」,包括一個有限邏輯式集合 和一個邏輯式 .
- 簡寫為 ; 簡寫為 ; 簡寫為 ; 簡寫為 .
- 的形式證明(proof)或推導(derivation)是一個滿足下列條件的有限判斷樹:
- 根標記為 ;
- 所有的葉子都是公理(公設,axioms),即形如 的判斷;
- 其他節點的符號都可以從子節點藉助下述法則得到:
(Ax)
( I)
( E)
( I)
( E) ;
( I) ;
( E)
( E)
4. 如果 ,那麼我們稱 是一個定理(theorem)。
弱化(Weakening)和替換(Substitution)
;
經典邏輯的代數語義學
定義3(格,lattice)
- 格是一個偏序 ,其中 的每一個雙元素子集 都有一個最小上限(least upper bound)和一個最大下限(greatest lower bound)。
- 記為 ; 記為 .
- 一個格中的頂端元素通常記為 ,底端元素通常記為 .
定義4(分配格,補)
- 格 是分配的(distributive),當且僅當:
;
- 設格 頂端元素為 ,底端元素為 ,那麼我們稱 是 的補,當且僅當 且
定義5(布爾代數)
- 布爾代數(Boolean algebra)是有頂端和底端元素的分配格 , 中的每一個元素 都有一個補(記為 )。
- 布爾代數通常記為 ,其中 .
定義6(賦值)
布爾代數 的一個賦值(valuation)是任意一個從集合 到 的映射。邏輯式 在 中的值(value)歸納地定義如下:
當 時,我們記作 ;當對於所有 , 時,我們記作 .
定理7
命題邏輯式 是經典邏輯重言式(classical tautology)當且僅當對於所有布爾代數 ,
海廷代數(Heyting algebra)
布爾代數是經典邏輯的一種語義詮釋,而海廷代數則是直覺主義邏輯的代數語義學。在直覺主義邏輯里,我們關注的首要問題是「可證明性」(provability),而非「真值」。
可證明的蘊含關係具備自反性和傳遞性:
Section Heyting_algebra.nnHypotheses phi psi theta: Prop.nnTheorem reflexivity: phi -> phi.nProof.n trivial.nQed.nnTheorem transitivity: ((phi -> psi) / (psi -> theta))-> psi -> theta.nProof.n intros H psi.n elim H.n intros.n auto.nQed.n
下面我們看等價關係。首先我們定義 省略下標,我們有 , . 設 ,那麼 等價關係定義為 然後我們會發現 是一個格。
定義8(偽補,pseudo-complement)
在一個格中, 被稱為 對於 的關係偽補(relative pseudo-complement)當且僅當 是使得 的最大元素。關係偽補如果存在,用 標記。我們將 標記為 。
定義9(海廷代數)
海廷代數是有最高和最低元素的分配格 ,其中所有 都有關係偽補 . 海廷代數的結構是 .
定義10(海廷代數的賦值)
設 是一個海廷代數, 上的一個賦值(valuation)是映射 . 我們定義邏輯式 的值(value) (或記為 )如下:
在海廷代數里,我們使用下述標記:
- 記為 ;
- 對於所有 , ,記為 ;
- 對於所有 , ,記為 ;
- 對於所有 , ,記為 ;
- 對於所有 , ,記為 ;
- 對於所有 ,如果 蘊含 ,記為 (直覺主義重言式).
海廷代數具備完全性(completeness)和健全性(soundness),即 。
克里普克語義(Kripke semantics)
除了海廷代數語義之外,我們還可以為直覺主義邏輯提供可能世界語義學的詮釋,即克里普克語義。
定義11(克里普克模型,Kripke model)
克里普克模型是三元組 ,其中 是一個非空集合,其元素被稱為狀態(states)或可能世界(possible worlds), 是 上的一個偏序, 是 中的元素和命題變數之間的二元關係。 (讀如「迫使」,forces)必須滿足下列單調性條件(monotonicity condition):
這些狀態可以代表知識的狀態。偏序可以視為通過獲取新的知識還擴展狀態,而迫使關係則可以視為在特定的知識狀態下命題變數的真值。
定義12(力迫關係)
對於 ,我們有
定理13(完全性)
類型論驛站寫作目錄:類型論驛站寫作計劃
推薦閱讀:
※一道有趣的邏輯推理題?
※【認真想】少點意見,多點論證
※學習邏輯給你的生活帶來什麼改變?
※哲學 邏輯與方法?
※為什麼人總是告誡自己不要隨意下結論,可這本身不就是一個結論嗎?