用户: Trebor/HOTT 规则

记录一些规则.

待办:

更系统的变量名称选取

1资料来源

目前有参考价值的资料只有

三次研讨会的录屏和对应的幻灯片:

第一次, 幻灯片

第二次, 幻灯片

第三次, 幻灯片

Mike Shulman 的 GitHub 项目

2基础

基础类型论是带有 的类型论. 我们用 等指代上下文, 或称类型组, 也就是一组类型的列表, 其中每一个类型都是在它之前的上下文中的. 对应地, 则是一组表达式. 这称为替代或者表达式组. 空上下文写作 , 空替代写作 .

我们用 表示表达式的类型判断. 表示类型的合法性判断. 在下面的规则中, 统一省略一个上下文前缀 . 如果某个判断前面有写出上下文, 则认为是在 的基础上添加.

对于上下文和替代, 有如下的规则:

如果引入简写, 我们使用 表达消除简写的方式. 而 表示判断相等.

3相等类型

引入依赖相等类型:其中 表示上下文的等式.其中 表示将 中的 项取出来.

依赖相等类型的元素可以通过 构造.1

我们用 简写 , 简写 .

4相等类型的计算规则

相等类型有特殊的计算规则.

对应地, 也可以计算.

其中 的左右两侧分别是 .

对于右下角是变量的情况, 我们也有规则:这样, 我们可以得到一些可容许的等式.

这些等式大致和替代满足的等式相同. 在之后我们也会一直保持这些等式.

5单值公理

对于 , 也就是 来说, 我们需要得到单值公理. 因此我们引入等价性:其中 代表 . 我们不使用通常的定义 , 因为这两个定义的等价性依赖于道路的拼接; 而我们类型论中暂且没有.

我们规定并且 . 但是反之则不添加 . 在语义层面, 是因为 HOTT 的立方范畴语义不支持这个 -定律; 在操作层面, 这条定律因为等式的其他规则而极难判定.2 因此, (其中 ) 不会进一步计算.

类型展开, 可以得到九个分量. 它们分别是:

为一一对应关系.

是转化函数.

证明转化是沿着一一对应关系的.

证明转化结果是唯一的. 在不会混淆的情况下, 我省略前三个参数, 只写后面两个参数.

证明这个一一对应是命题.

剩余四项与前面对称.

对于 的情况, 我们引入这九个分量对应的原语:

已经引入了. 注意到第三节当右下角是变量时我特意漏了一条规则, 现在可以自然地补上: 在计算上需要等于 . 因此根据 的计算法则可以导出它等于 .

对应一般类型论的 coetransp 函数.

在 Cubical Agda 中称作 transport-filler.

给出道路的复合.

给出高阶的等式.

剩余四项与前面对称.

这九个原语的判断等式必须与 一起. 因此我们需要对 -类型的情形写出它们的等式. 很显然, 如果 是变量, 并且 时, 退化为常函数; 退化为 . 但是 仍然是道路复合; 而 基本上证明了 J 定律.

规则如下.

(...)

,

, , etc.

6对称

我们尽量使用下标 指代左侧; 指代右侧; 指代等式本身.

定义对称 .

表达式组之间的对称操作 是缩写, 这和依赖相等类型与表达式组的相等同理.

脚注

1.

但是它并非构造器.

2.

尚未确定是否可以判定.