是类型主张吗?(确切地说是什么类型?)


25

我已经阅读了很多有关类型系统的文章,并且大致了解了为什么引入它们(以解决Russel的悖论)。我也大致了解了它们在编程语言和证明系统中的实际意义。但是,我对类型是什么的直观认识并不完全正确。

我的问题是,宣称类型是命题是否合法?

换句话说,语句“ n是自然数”与语句“ n具有类型'自然数'”相对应,这意味着所有涉及自然数的代数规则都适用n。(也就是说,代数规则是语句。那些对自然数成立的语句对n也成立。)

那么这是否意味着一个数学对象可以具有不止一种类型?

此外,我知道集合不等于类型,因为您不能拥有所有集合的集合。我是否可以说,如果集合是类似于数字函数的数学对象,则类型是一种超数学对象,而按照相同的逻辑,一种则是超元数学对象?(在某种意义上,每个“元”都表示更高的抽象级别...)

这与范畴论有某种联系吗?


5
一个密切相关的问题:证明/程序和命题/类型
Marc Hamann

1
另一个相关的讨论:Lambda结石的分类
Marc Hamann

发现了另一个不错的文章在这里scientopia.org/blogs/goodmath/2009/11/17/...
Rehno Lindeque

1
从某种意义上讲,这可以归结为一个本体论问题。什么是集合,命题等。此外,还有许多人也将类型视为集合。如果要更精确,则可以在小类型(即集合)和Universe类型之间进行区分。对于涉及其中某些内容的不错的阅读,我推荐Martin-Löfs经典论文“直觉类型论”
Tobias

1
有人应该从同伦类型理论的角度来写答案。
罗宾·格林

Answers:


20

类型的关键作用是将感兴趣的对象划分到不同的Universe中,而不是考虑存在于Universe中的所有事物。最初,设计类型是为了避免自相矛盾,但是如您所知,它们还有许多其他应用程序。类型提供了一种对对象进行分类或分层的方法(请参阅Blog条目)。

有些命题是类型的口号,因此您的直觉肯定会为您服务,尽管有诸如Steve Awodey和Andrej Bauer的命题为[Types]的著作,但与此相反,即每个类型都有一个相关的命题。进行区分是因为类型具有计算内容,而命题则没有。

由于子类型化和通过类型强制,一个对象可以具有多个类型

类型通常是按层次结构组织的,其中类型扮演类型的角色,但我不会说类型是元数学的。一切都在同一级别上进行-在处理依赖类型时尤其如此。

类型和类别理论之间有很强的联系。确实,鲍勃·哈珀(Bob Harper,引用Lambek)说过,逻辑,语言(类型所在的地方)和类别构成了三位一体。报价:

这三个方面引起了三个方面的崇拜:逻辑,优先于证明和命题;语言,将程序和类型置于首位;类别,将映射和结构放在首位。

您应该查看Curry-Howard对应关系,以了解逻辑和编程语言(类型是命题)和笛卡尔封闭类别之间的联系,以了解与类别理论之间的关系。


谢谢,第一个链接特别有帮助!在其中,Mark通知类型之间存在“总计关系<”。那么这是否意味着一种类型的所有“命题”也必须在其下方的类型中也包括所有“命题”?我预期这将至少是一个“局部关系<”过度类型....
Rehno Lindeque

1
当我读到它时,原子有一个总的顺序,这仅仅是为了确保有无限数量的原子。
戴夫·克拉克

哦,我看到我对“理解公理”和“无限公理”感到困惑……类型“ nat”(所有自然数的类型)会成为“无限级0类型”吗?
Rehno Lindeque 2011年

3
“三位一体”的确是由于兰贝克。cf. Lambek&Scott(1986)对类型理论的讨论。我听说在麦吉尔,有一篇关于库里-霍华德-兰贝克的书信。
查尔斯·斯图尔特

@查尔斯:我同意兰贝克因他的巨大贡献而被低估,即使具有讽刺意味的是,正在阅读兰贝克和斯科特的书也使我确信“三位一体”是虚假的:在存在潜在的非宗教信仰的情况下,它破裂了。 -终止。
马克·哈曼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.