標籤:

證明論學習筆記4:直覺主義邏輯和相繼式演算

目錄:類型論驛站寫作計劃

上一篇:證明論學習筆記3:自然演繹

下一篇:證明論學習筆記5:賦值系統

在討論直覺主義邏輯之前,我們先看一下用相繼式演算(sequent calculus)表示的經典邏輯的自然演繹規則:

相繼式式的經典邏輯( mathcal{C} )自然演繹規則

  • 合取引入: frac{Gamma vdash A phantom{two} Delta vdash B}{ Gamma, Delta vdash Awedge B}wedge i
  • 合取消除: frac{Gamma vdash Awedge B}{Gamma vdash A}wedge e_1,frac{Gamma vdash Awedge B}{Gamma vdash B}wedge e_2
  • 析取引入: frac{Gamma vdash A}{Gamma vdash Avee B}vee i_1,frac{Gamma vdash B}{Gamma vdash Avee B}vee i_2
  • 析取消除: frac{Gamma vdash Avee Bphantom{tw} Delta,Avdash Cphantom{tw} Theta,Bvdash C }{Gamma,Delta,Theta vdash C}vee e
  • 箭頭引入: frac{Gamma,A vdash B}{Gamma vdash A	o B}	o i
  • 箭頭消除: frac{Gamma vdash Aphantom{tw}Deltavdash A	o B}{Gamma,Deltavdash B}	o e
  • 否定引入: frac{Gamma,Avdash B}{Gammavdash A	o B}
eg i
  • 否定消除: frac{Gammavdash Aphantom{tw}Delta vdash 
eg A}{Gamma,Deltavdash ot}
eg e
  • 謬誤沒有引入規則
  • 謬誤消除: frac{Gamma vdash ot}{Gamma vdash A}ot e
  • 全稱引入: frac{Gamma vdash A(y)}{Gamma vdash forall x.A(x)}forall i
  • 全稱消除: frac{Gamma vdash forall x.A(x)}{Gamma vdash A(t)}forall e
  • 存在引入: frac{Gamma vdash A(t)}{Gamma vdash exists x.A(x)}exists i
  • 存在消除: frac{Gamma vdash exists x.A(x)phantom{tw} Delta,A(y)vdash B }{Gamma,Delta vdash B}exists e
  • 雙重否定: frac{Gamma vdash 
eg
eg A}{Gamma vdash A}
eg
eg

在全稱引入中, y 不能在 GammaA(x) 中自由出現;在存在消除中, y 不能在 GammaA(x) 或者 B 中自由出現。

除了「雙重否定」之外,其餘的規則要麼是引入規則,要麼是消除規則,具有很好的對稱性。將「雙重否定」這一規則刪去,我們就得到了直覺主義邏輯 mathcal{I} .

但值得注意的是,直覺主義邏輯否定的只是經典邏輯中 ALeftrightarrow 
eg
eg A 的一個方向。由於證明必須具有構造性,我們無法證明 
eg 
eg ARightarrow A ,但是卻可以證明 ARightarrow 
eg
eg A 。先對 Avdash A
eg Avdash 
eg A 應用否定消除,得到 A,
eg Avdash ot ,再應用否定引入規則,得到 Avdash 
eg A	o ot ,而 
eg A	o ot 恰恰是 
eg
eg A 的一未歸約式。

從實際證明的角度來講,有些自然演繹規則是很有用的,例如合取引入規則 frac{Gamma vdash A phantom{two} Delta vdash B}{ Gamma, Delta vdash Awedge B}wedge i 。如果我們要找到 Gamma,Delta vdash Awedge B 的證明,只需要分別找到 Gammavdash ADeltavdash B 的證明就好了。但是,有些規則對於尋找證明來說幫助不大,例如合取消除規則。如果要證明「張三是老師」,沿著合取消除規則,我們可以證明「張三和李四是老師」。但「張三和李四是老師」的證明其實比「張三是老師」的證明更難。此外,我們也無法運用否定消除規則來證明 Gammavdash ot

為此,根岑提出了一種新的子邏輯式概念(參見:證明論學習筆記1:預備知識):

根岑子邏輯式(Gentzen subformula):

  • ot 是所有邏輯式的子邏輯式
  • AA
eg A 的子邏輯式
  • ABBvee C, Bwedge CB	o C 的子邏輯式
  • 如果 forall x.Bexists x. BA 的子邏輯式,那麼 B[x:=t] 也是 A 的子邏輯式。其中 t 是所有不包含 x 的項。

定義(子邏輯式特性,subformula property):

證明法則 frac{Gammavdash A}{Gamma vdash A} 擁有子邏輯式特性,如果 Gammacup{A} 中的每一個邏輯式都是 Gammacup{A} 中一個邏輯式的子邏輯式。

子邏輯式特性可以用來逆推證明。自然演繹規則里的引入規則都具備子邏輯式特性。但它的消去規則都不具備子邏輯式特性。為了確保子邏輯式特性,我們可以將消去規則刪除,增加新的一組引入規則,即在語境中引入邏輯運算符的規則,我們稱之為「左引入規則」,與之前介紹的引入規則(「右引入規則」)相對應。

簡而言之,如果引入的運算符出現在 vdash 左側,則為左引入規則,如果引入的運算符出現在 vdash 右側,則為右引入規則。根岑的 mathcal{I} 規則羅列如下:

結構規則(structural rules)

  • Gamma,Avdash A (包含)
  • frac{Gammavdash Cphantom{tw}Delta,Cvdash A}{Delta,Gamma vdash A} cut (切)
  • frac{Gammavdashot}{Gammavdash A}mono_r (右單調)
  • frac{Gammavdash A}{Gamma, Bvdash A}mono_l (左單調)

邏輯規則(logical rules):

  • 右合取: frac{Gamma vdash A phantom{two} Delta vdash B}{ Gamma, Delta vdash Awedge B}wedge r
  • 左合取: frac{Gamma, A, B vdash C}{Gamma, Awedge B vdash C}wedge l
  • 右析取: frac{Gamma vdash A}{Gamma vdash Avee B}vee r _1,frac{Gamma vdash B}{Gamma vdash Avee B}vee r_2
  • 左析取: frac{Gamma, A vdash Cphantom{tw} Delta, Bvdash C}{Gamma,Delta, Avee B vdash C}vee l
  • 右箭頭: frac{Gamma,A vdash B}{Gamma vdash A	o B}	o r
  • 左箭頭: frac{Gamma vdash Aphantom{tw}Delta,Bvdash C}{Gamma,Delta, A	o Bvdash C}	o l
  • 右否定: frac{Gamma,Avdash B}{Gammavdash A	o B}
eg r
  • 左否定: frac{Gammavdash A}{Gamma,
eg Avdash ot}
eg l
  • 右全稱: frac{Gamma vdash A(y)}{Gamma vdash forall x.A(x)}forall r
  • 左全稱: frac{Gamma, A(t)vdash C}{Gamma,forall x.A(x)vdash C}forall l
  • 右存在: frac{Gamma vdash A(t)}{Gamma vdash exists x.A(x)}exists r
  • 左存在: frac{Gamma, A(y) vdash C}{Gamma,exists x.A(x) vdash C}exists l

除了「切」之外,上述規則均滿足子邏輯式特性。根岑於是又提出了著名的「切消定理」,即所有用到切的證明均可用沒有用到切的證明來代替。

目錄:類型論驛站寫作計劃

上一篇:證明論學習筆記3:自然演繹

下一篇:證明論學習筆記5:賦值系統

參考文獻:

Basic proof theory

Handbook of Logic in Computer Science


推薦閱讀:

證明論學習筆記2:希爾伯特系統

TAG:證明論 | 邏輯 |