語言背後的代數學(九):笛卡爾閉範疇
回顧
上文我們簡單的介紹了一些範疇論相關的內容,
範疇由一些對象和箭頭組成,範疇之間的箭頭稱為函子,函子之間的一族箭頭稱為自然變換。範疇的對象不一定是集合,所有的箭頭也不一定構成一個集合。
如果一個範疇 ,它的對象都是集合,所有的箭頭也構成了一個集合,
1. 定義域和值域
在集合論中,函數自變數所有可取值的集合,稱為函數的定義域,
給定函數在範疇論中,箭頭也有定義域和值域的概念。
箭頭由此,我們還可以定義範疇 中,從對象
到對象
所有箭頭的集合,
2. 笛卡爾閉範疇
笛卡爾閉範疇是一種帶有附加結構的範疇,這個名字雖然不是那麼熟悉,
而實際上,我們經常遇到它。2.1 笛卡爾積
兩個集合 和
的笛卡爾積,是以下所有可能有序對構成的集合,
2.2 笛卡爾積上的函數
,是從笛卡爾積
到
的函數,
我們可以用兩種不同的視角來看待它,
(1)它是一個一元函數,參數取遍 中的所有元素。
原則上,這兩種理解應該是不同的,然而它們卻是等價的。
2.3 柯里化
笛卡爾閉範疇就是反映這一類性質的數學結構,
一個範疇中,定義在乘積對象這就是柯里化(curring)的概念,
將一個二元函數柯里化指的是,將它看成一個一元函數,這個函數返回另一個一元函數。
假設 是一個函數,
用hom-set的術語來表述就是,存在一個一一映射,使得,
2.4 Cartesian Closed
將以上柯里化的概念推廣到範疇論中,我們就有,
一個笛卡爾閉範疇(cartesian closed category)(1) 中存在一個對象
,使得對於任意對象
,有唯一的箭頭
,
(2)對於任意兩個對象 和
,範疇
中存在一個對象
,
(3)對於任意兩個對象 和
,
即, 。
3. 項的解釋
在第六篇中,為了解釋簡單類型化 演算,
現在有了笛卡爾閉範疇,我們準備為每一個基本類型選擇範疇中的一個對象,
而將項常量3.1 封閉項的解釋
我們這樣定義一個含義函數 ,
(1)
3.2 帶有自由變數的項
如果 是一個含有自由變數的
項,
值得一提的是,這裡說明了,項常量 為什麼不能被解釋為範疇中的對象,
其中,類型上下文 的解釋,定義如下,
回顧
本文介紹了笛卡爾閉範疇,是一種具有特殊結構的範疇,
它補充了柯里化這一概念所需滿足的約束條件。接著我們用笛卡爾閉範疇解釋了,
帶有單位類型,乘積類型的簡單類型化參考
你好,類型(六):Simply typed lambda calculus
語言背後的代數學(六):Henkin模型 Small and Large CategoriesClass
Category Theory for Computing Science Cartesian closed category下一篇:語言背後的代數學(十):Curry-Howard-Lambek correspondance
推薦閱讀: