编码–解码法

编码–解码法同伦类型论中的一种证明给定一点的道路空间和其它类型同构的手法.

本文假设读者对同伦类型论相关的概念有基本的了解, 例如道路空间、相等类型及其归纳公理 J 规则高阶归纳类型等.

1类型论相关背景

考虑到类型论目前并不属于主流数学, 这里给出一些本文用到的 (同伦) 类型论基本概念:

宇宙 (类型论) : 所有类型的类型.

为把一个函数 应用到一条道路上的操作, 在 J 规则中有证明.

为类型转换操作, 同样参见 J 规则.

无交并类型.

圆周 (同伦类型论) .

空类型 .

本词条借助较为简单的无交并类型来正式介绍编码–解码法, 然后再引入编码–解码法处理较为复杂的圆类型的例子.

方便起见, 类型均使用 的语法来代替 .

2例子: 无交并

无交并类型是一个有两个构造函数的类型, 这两个构造函数满足如下性质:

单射: 由 可以得到 .

不交: 由 可以得到 .

现在尝试证明它.

无交并的编码

给定 , 定义:

读者应该能根据上面的定义推断出 . 这就是「编码–解码法」这个名字里的「码」了. 使用模式匹配可以更直观地观察到它的行为:

考虑 , 有:

注意我们得到的是一个类型之间的等值关系, 左边是 上的环路空间, 右边是 对应的码. 借助 我们可以得到一个从左到右的函数, 然后再把 喂给它:

上面的这个构造就是无交并类型的编码操作了. 定义:

不难看出:

分别令 或者 就可以分别构造证明前面说的单射和不交两个性质:

的话, 那么 , 所以 的类型也就是 .

的情况留给读者.

观察编码操作的类型, 它可以看作是一个参数化的函数, 从 . 这个函数的输入是从定点 出发的道路空间, 输出是这个定点周围的「码」. 接下来我们将会定义它的逆, 以证明这个函数是一个同构.

无交并的解码

从编码操作的类型可以很轻易地看出解码操作应有的类型:

我们借助 来定义解码操作.

如果 , 那么参数类型 , 此时返回类型也随之变为 , 通过 即可简单实现这个转换.

如果 , 那么 , 此时返回类型是什么已经不再重要.

因此:

编码和解码互逆

接下来我们需要证明编码和解码两个函数互逆. 证明很直接, 其中一个方向是使用 J 公理直接得到结果, 另一个方向是使用模式匹配, 留作习题.

注 2.1.立方类型论中, 由于 Swan 问题导致 计算性质较差, 比起同伦类型论还需要额外多出一些步骤.

3例子: 圆

圆类型类似的性质如下:

闭环: 由 可以得到 (一条圆上的环路) .

基本群: 任何 都生成自形如 的表达式, 其中 或者 . 用构造主义逻辑的话来讲, 就是存在一个整数 使得 和自己相连 次得到的道路等价于 , 其中负数代表反向相连.

我们尝试证明它们. 这个证明用到了泛等公理的性质 ( 规则):

其中 是指取出 中对应的函数. 在立方类型论中, 如上性质是类型论中的计算性质.

除此之外, 我们还需要用到整数上由 操作形成的自同构:

圆周的编码

由于圆周的构造子不需要参数, 因此定义「码」如下:

读者应该能推断出 . 不难看出:同样的, 在立方类型论中如上性质由计算即可得到.

用类似的思路可以定义编码操作:

其中 是整数. 不难看出,

(未完待续)

4参考文献

Daniel R. Licata, Michael Shulman (2013). “Calculating the Fundamental Group of the Circle in Homotopy Type Theory”. arXiv: 1301.3443. (doi) (web)