直觉类型论
维库,知识与思想的自由文库
|
类型论(英文单词首字母大写)、或直觉类型论、或构造类型论、或Martin-Löf 类型论同时是基于数学构造主义的函数式编程语言、逻辑和集合论。类型论由瑞典数学家和哲学家 Per Martin-Löf 在1972年介入。 Martin-Löf 已经多次修改了它的提议;先是非直谓性的而后是直谓性的,先是外延的而后是内涵的类型论变体。 类型论基于的是命题和类型的同一: 一个命题同一于它的证明的类型。这种同一通常叫做Curry-Howard同构,它最初公式化了命题逻辑和简单类型 lambda 演算。类型论通过介入包含着值的依赖类型扩展这种同一到谓词逻辑。类型论内在化了 Brouwer、Heyting 和 Kolmogorov 提议的叫做 BHK释义的直觉逻辑释义。类型论的类型扮演了类似于集合在集合论的角色,但是在类型论中的函数总是可计算的。
[编辑] 类型论的连结词在类型论的上下文中,连结词是可能使用已给定的类型而构造类型的一种方式。类型论的基本连结词有: [编辑] Π-类型Π-类型,也叫做依赖函数类型,一般化了普通的函数空间,建模其结果的类型可以随它们的输入而变化的函数,比如,对实数的 n-元组写为 [编辑] Σ-类型Σ-类型,也叫做依赖乘积类型,一般化了普通的笛卡尔积,建模第二个构件的类型依赖于第一个构件的有序对,比如类型 [编辑] 有限类型特别重要的是 0 (空类型)、1 (单位类型)和 2 (布尔值或真值)。再次用到 Curry-Howard同构,0 表示假而 1 表示真。 使用有限类型,我们可以定义否定为 [编辑] 等式类型给定 a,b:A,则 a = b 是 a 等于 b 的等式证明。只有一个(规范的) a = b 的居留,并且这是自反性 refl:Πa:A.a = a 的证明。 [编辑] 归纳类型归纳类型的基本例子是自然数 一类重要的归纳类型是象上面提及的向量 Vec(A,n) 的归纳类型家族,它们是归纳生成自构造子 vnil:Vec(A,0) 和 [编辑] 全集全集的一个例子是 U0,它是所有小类型的全集,它包含前面介绍的所有类型的名字。对于每个名字 a:U0 我们关联上一个类型 El(a),这是它的外延或意义。标准上是假定全集的一个直谓性等级: 对于每个自然数 已经研究了更强的全集原理,比如超全集和 Mahlo 全集。在 1992 年 Huet 和 Coquand 介入了构造演算,它是带有非直谓性全集的类型论,从而把类型论同 Girard 的系统 F 合并起来了。这个扩展不被直觉主义者所普遍接受,因为它允许非直谓性的,就是循环的构造,这经常用经典推理来识别。 [编辑] 类型论的形式化类型论通常表示为依赖的有类型 lambda 演算,使用判断:
特别重要的是转换规则,它声称给定 [编辑] 外延和内涵一个基本区别是外延和内涵的类型论。在外延类型论中定义性(就是计算性)等式不区别于需要证明的命题性等式。作为结论类型检查成为不可判定性的。相反的,在内涵类型论中,类型检查是可判定性的,但是很多数学概念的表达是不标准的,因为缺乏外延推理。这是目前对这种折中是否是不可避免的和在内涵类型论中缺乏外延原理是一个特色还是一个缺陷的讨论的一个主题。 [编辑] 类型论的实现类型论已经被用做很多证明助理的基础,比如 NuPRL、LEGO、Coq 和 Agda。最近,依赖类型也作为编程语言设计的特征,比如Dependent ML 和 Epigram。 [编辑] 参见[编辑] 外部链接
|

,则
表示对给定的
是从自然数到实数的函数的类型,它也写为
。使用
的一个项,它对任何一对自然数的函数指派加法对这个数对是
表示
是
。再次使用
,服从
。
的类型,它是通过
和
生成的。
索引的给定类型
}- 来把(依赖的)
。再次用到
,
,
,
,
,
。
