Ford 化
在类型论中, Ford 化是一种使用相等类型和归纳类型编码归纳族的手法.
例如, 考虑定义如下的有限集合类型:
• | 类型定义为 , 有一个自然数类型参数, |
• | 构造子 , |
• | 构造子 . |
我们可以将它重新定义为如下等价的归纳类型. 对于整组定义, 固定 , 我们给出类型 的构造子:
• | 构造子 , |
• | 构造子 . |
这样每个构造子都返回了 , 符合归纳类型的要求, 于此同时我们使用相等类型规定 的形式.
Ford 化可以将任何归纳族转化为更简单的归纳类型. 归纳族的语义往往非常难以描述, 使用 Ford 化可以大大简化类型论的复杂程度.
Ford 化一词来源于 Conor McBride, 出自企业家 Henry Ford 在 1909 年说过的关于福特品牌汽车颜色的名言:
任何客户都可以让汽车涂成任何他想要的颜色, 只要这个颜色是黑色.
这符合 Ford 化的精神: 汽车可以看作一归纳类型, 类型为而福特汽车则对应如下类型的构造子:Henry Ford 这句话的意思就是他的车只有黑色的, 这也对应如上构造子的归纳族形式:
1应用
Ford 化可以直观地解释很多关于归纳族的现象.
异质相等的宇宙层级
主条目: 异质相等
若 , 那么 , 但 . 造成该现象的原因是两者作为归纳族时, 虽然指标都用到了宇宙, 但只有异质相等会涉及类型之间的 Ford 化. 具体来说, 两者作为归纳族定义如下:
• | 类型定义 和 |
• | 构造子 和 |
对它们分别使用 Ford 化, 构造子会发生如下变化 (注意使用下标的 是 Ford 化的工具, 而接收三个参数的 是我们用于和 类比的相等类型):
• | 和 |
前者的参数类型是 , 后者的参数类型是 , 一目了然.
归纳族的典范形式
归纳族的构造规则比归纳类型的更为复杂. 归纳类型的构造规则完全可以直接视为它的构造子, 而归纳族的构造规则实际上是 Ford 化后的构造子, 而不仅仅是构造子们本身. 为什么是这样呢?
例如在立方类型论中, 它使用的相等类型——道路相等类型上函数外延性定理成立, 这也就是说任何实现不同、但行为相同的算法都相等. 我们可以认为如下证明存在 (为区分不同的相等类型, 此处使用 代表立方类型论中的相等类型)在 Martin-Löf 类型论中, 使用归纳族定义的相等类型 上函数外延性并不成立, 但如果将立方类型论中的 类型加入, 那么函数外延性会不仅在道路相等类型上成立, 在归纳族的相等类型上也会成立, 换言之引入道路相等类型后, 能构造出证明
那么 化简了等于什么呢? 这个问题的答案不唯一, 但 Ford 化给出了一种答案.
使用 Ford 化 后, 它的构造子类型会变为 , 那么可以单纯地认为 .
术语翻译
Ford 化 • 英文 Fording