語言背後的代數學(六):Henkin模型

回顧
為了解釋簡單類型化演算 中項,我們介紹了
代數,
但只是做這些對應關係,還是不夠的,
我們還得證明,這樣的解釋是「足夠多的」,
以保證每一個合法尤其是使用集合上的函數,來解釋具有不動點的 項時,
1. 作用結構

從形式系統的角度來看, 項的「應用」,是推導規則的一部分,
項的「應用」,我們可以定義為 代數上的一個作用結構(applicative structure)。
假設 是一個類型為
的
項,我們可以把它「應用於」類型為
的項
,
因此, 代數上的一個作用結構
,指的是這樣的一個映射,
一個有效的作用結構,必須具有外延性條件(extensional),即, ,
它指出集合 的兩個函數,如果在
下的作用效果相同,
2. 項的唯一解釋
有了滿足外延性條件的作用結構之後,
我們就可以歸納的定義出含義函數(meaning function)(1)
其中, 是滿足指派
的環境,
使得,如果 ,則
。
由於以上幾個等式覆蓋了所有的 項,因此這樣定義的含義函數是完全的。
Henkin模型是可靠的,設 是
的任意Henkin模型,
即,如果一個類型斷言是可證的,則它在語義上也成立。
(關於完全性的討論,略)3. 例子
我們可以對具有單一類型 的
演算,定義它的Henkin模型,
我們通過 ,把函數
,作用到參數
上。
由於該項是封閉項,選擇什麼樣的環境 都是無關緊要的。
然後我們再來看下,
其中, 是因為,
綜合以上兩個步驟,
我們從語義上證明了以下等式,
4. 環境模型條件和組合模型條件

以上定義的作用結構 稱為滿足環境模型條件(enviroment model condition),
由於 項有
「抽象」和
「應用」雙重複雜性,所以,建立一個合理的解釋也比較麻煩。
因此,如果存在模型可以解釋所有的 項,那麼使用它也就可以解釋所有
項了。
項比
項更為簡潔,它不包含
「抽象」,只包含
和
這兩個組合子。
類似於 項的「應用」,對於
和
的「組合」,我們同樣可以定義
代數上的一個作用結構。
給定 代數,對任意類型
,如果存在元素
由於所有 項都可以表示成
和
的「組合」,
可以證明,一個滿足外延性條件的作用結構,
如果它滿足環境模型條件,當且僅當它也同樣滿足組合模型條件。總結
本文介紹了Henkin模型作用結構所滿足的條件,環境模型條件和組合模型條件,
它們是等價的,有了它們我們才能給出下文我們開始學習範疇論,為理解笛卡爾閉範疇打好基礎。
參考
你好,類型(三):Combinatory logic
程序設計語言理論基礎下一篇:語言背後的代數學(七):數學結構
推薦閱讀:


