W 类型

约定. 在本文中,

  • 代表 这样的列表的简写.

类型Martin-Löf 类型论中的一个特殊的归纳类型, 大多数归纳类型都等价于它的某种特化. 它的动机是将值视为某种 “树状结构”, 这种树之间的包含关系构成了一种良基关系. 事实上归纳类型的通用定义差不多就长这样. 从范畴论的视角, 它是多项式函子的始代数.

在数学研究中, 时常会有 “X 是 Y 的特殊情况” 这样的发现, 然后关于 Y 的研究就会变得比 X 更通用. 在类型论中, 如果某个类型 X 等价于另一个类型 Y 的特化, 那么在使用 X 的地方全部改为使用 Y 的特化的话, 依然能做原本能做的数学, 但底层使用的定义就更少了, 从而使得底层理论更简洁. 类型正是这样的一个非常通用的类型. 例如, 某个归纳类型可能有如下数据:

类型本身 ,

构造子 , 其中 可以使用 类型 类型也可以在满足严格正性的情况下使用 .

接下来我们将它转化为一个单参数单构造子的等价的归纳类型:

首先处理无交并类型: 考虑 个类型的无交并, 可以定义一个有 个实例的类型 , 再用一个函数 表示这些类型的并.

任何多元函数都可以用 Curry 化的思想转化为一元函数, 于是我们可以认为 中仅包含一元函数, 其中返回类型中允许出现 , 参数中不允许.

用无交并将多个函数合并为单个函数. 现在可以认为 只能是一种返回 的一元函数或者普通类型了.

多个构造子可以直接取它们的无交并变成单个构造子.

事实也是如此, 类型只需要一个构造子就可以表达丰富多彩的归纳类型.

集合论模型中, 可以证明 类型存在, 但在类型论的研究中, 一般是将 类型作为底层构造引入的, 类似 类型 类型. 在观测类型论中就是这样处理的.

类型有归纳类型归纳族的版本. 它的对偶是余归纳 类型.

1类型规则

这个形成规则最好配合构造规则一起理解.

构造规则

其中, 类型 的实例数量代表了它对应的归纳类型有多少个构造子, 而 代表了对应构造子接受的参数.

假设我们需要用 类型来模拟有两个构造子 的类型, 并假设经过一番操作后我们已经让这两个构造子都只需要接受一个参数. 那么令 为有两个实例 的类型, 于是 就代表了 , 则代表了 .

消去规则

此处直接给出依值类型的版本. 为了简洁, 以下直接将 简写为 .

其中:

2范畴语义

回顾其类型规则在依值类型论的范畴语义中, 用一个态射 表示一族依赖于 的类型, 可以看作纤维化中依赖于底空间的一族纤维. 而 则表示为 , 即纤维化上的纤维化. 这些数据给出了一个复合函子这个复合函子称为多项式函子. 类型是多项式函子的 “最小” 不动点, 这在范畴论中的严格表述是自函子上的代数.