K 公理

K 公理Thomas Streicher相等类型设计的另一条消去规则, 它不能代替 J 公理.

K 公理有些类似单位类型的消去规则. 和 J 公理类似, 它也有计算规则. 该规则非常强, 因此蕴含了比 J 公理更多的定理, 但也对相等类型的语义解释带来了更多限制.

J 公理对形如 的类型进行消去, 其中 , 而 K 公理则考虑形如 的类型, 它认为该类型唯一的实例就是 .

这间接否认了泛等公理, 代入 就可以看出一个反例: 泛等公理认为自然数类型上的任何一个自同构都可以构成一个 的实例, 不同的自同构给出不同的实例, 而 K 公理只承认其中的平凡自同构.

“相等” 在英语中是以字母 I 开头的单词, 它的下一个字母 J 被 J 公理占用, 因此叫 K 公理.

1定义

类似 J 规定, 定义 K 公理也需要如下值存在:

这对应相等类型的自反性, 注意这里没有要求它是相等类型的构造规则, 只需要它存在即可.

定义 1.1. K 公理类型规则如下:

有时可以从语境中推导出 所以也可以省略掉, 直接写 .

计算规则如下:

2性质

引理 2.1 (相等证明唯一). 考虑如下命题成立: 换言之, 如下命题成立:

在使用 类型的等价形式中, 将两个类型相同的参数分开写是为了使得证明更可读.
证明. 首先借助 J 公理简化问题: 可以看出子问题的类型如下: 再通过 K 公理证明即可:

从这个证明中可以萃取出一个 J 公理的推论, 即 2.1 可以转化为上面的子问题.

3相关概念

相等类型包含了相等类型的定义和 J 公理的变种.

J 公理是相等类型的另一条消去规则.

K 公理虽然在同伦类型论中不成立, 但对于某些类型是可以证明出来的, 这些类型就是集合 (类型论), 也就是-类型 的类型. 这个原理类似于排中律类型论中虽然只能是公理, 但在 “两个自然数是否相等” 这件事上的排中律我们依然可以证明.

4参考资料

Thomas Streicher (1993). “Investigations into intensional type theory”. Habilitationsschrift, Ludwig-Maximilians-Universität München.