语言背后的代数学(十):Curry-Howard-Lambek correspondance


回顾

上文我们介绍了笛卡尔闭范畴,它给出了简单类型化演算系统的语义,

我们还看到了笛卡尔闭范畴与柯里化之间的关系。


结合《你好,类型》系列文章,

到目前为止我们已经有了,类型理论,逻辑学和范畴论的知识基础了。

现在我们介绍Curry-Howard-Lambek correspondence,将三者联系起来。


1. 类型方面



参考《你好,类型(二):Lambda calculus》,

我们来回顾一下简单类型化演算系统。

1.1 语法


例子:

1.2 类型

基本类型(basic types),

一般类型(general types),


例子:

1.3 类型推导规则

(1)


(2)


(3)


其中,


2. 逻辑方面



参考《你好,类型(四):Propositional logic》,

我们构建一个只包含逻辑联接词的命题逻辑系统。

2.1 逻辑推导规则

(1)


(2)


(3)

2.2 Curry-Howard correspondence

我们看到,只要将逻辑系统中的,替换成简单类型化演算中的

那么这两个系统从推导规则上来看是一致的。


逻辑中的命题,对应了简单类型化演算中的类型,

逻辑中命题的证明,对应了简单类型化演算中的项(的类型断言)。


命题,可以这样理解,

如果该命题可证,则存在将的证明转换为的证明的构建过程(construction)。

命题,可以这样理解,它是的证明序对(pair)。


考虑到以上命题逻辑与类型之间的对应关系,

我们可以说,proofs as programs


3. 范畴论方面



结合《语言背后的代数学(九):笛卡尔闭范畴》,

我们给出了简单类型化演算的范畴论解释。

3.1 对象

将简单类型化演算系统的类型,解释为笛卡尔闭范畴中的对象。

3.2 箭头

将带有自变量项,解释为从自变量类型到项类型的箭头。

3.3 Curry-Howard-Lambek correspondance

根据简单类型化演算系统中的推导规则,

我们可以为范畴添加对象和箭头之间的约束条件,


(1)


(2)


(3)


是一个箭头,和的定义,

可以参考前一篇文章中关于笛卡尔闭范畴的定义。


笛卡尔闭范畴作为简单类型化演算系统的语义模型,

范畴中箭头之间约束关系,与类型推导规则是一致的,

而根据Curry-Howard correspondence,类型推导规则与命题逻辑又是一致的。


因此,类型理论,逻辑学和范畴论产生了关联,

这种三者的对应关系,称为Curry-Howard-Lambek correspondance


总结



本文介绍了Curry-Howard-Lambek correspondance,

它将本来毫无关系的三个学科联系在了一起,

类型理论与程序和计算相关,逻辑学与证明(论)相关,

范畴论与模型(论)和代数学相关。


本系列文章到此结束了,与代数学和范畴论相关的内容其实还有很多,

例如,quotient algebra,comonad,adjoint functor,free monoid,等等概念,

书山有路勤为径,学海无涯苦作舟,让我们一起努力吧。


参考

你好,类型(一):开篇

你好,类型(四):Propositional logic

语言背后的代数学(九):笛卡尔闭范畴

Curry–Howard correspondence

Curry-Howard-Lambek correspondence

The Curry-Howard Correspondence, and beyond

Lectures on the curry-howard Isomorphism

Intuitionistic logic