将HoTT中的产品简化为教堂/斯科特编码


11

因此,我目前正在与某些人一起阅读HoTT书。我声称,通过将递归的类型作为等效类型的灵感,我们将看到的大多数归纳类型都可以简化为仅包含依赖函数类型和Universe的类型。我开始勾勒出我认为这将如何工作的草图,经过一番绊脚石,我得出了我认为是答案的答案。

≡ λ 一个λ b λ Ç üλ Ç g a b i n d

×A,B,C:U(ABC)C
(,)λa:A.λb:B.λC:U.λg:ABC.g(a)(b)
indA×BλC.λg.λp.g(pr1(p))(pr2(p))

这给出了正确的定义方程式(省略了和定义方程式),但这将意味着将具有错误的类型。 p r 2 i n d A × Bpr1pr2indA×B

indA×B:C:A×BU(a:Ab:BC((a,b)))p:A×BC((pr1(p),pr2(p)))

对此似乎没有简单的解决方法。我还考虑了以下定义。

一世ñd一种×λCλGλppCpG

但这只是不进行类型检查。

我的另一个想法是使用将为但尚不清楚如何使它工作。首先,我必须展示如何减少依赖于身份类型的函数类型,事实证明,这种方法比产品更难。另外,没有适当的归纳形式,似乎是无法定义的,因此,即使我允许自己如书中所述的身份类型,也无法接近对的定义üñ一世q一种×Cp[R1个pp[R2pCpüñ一世q一种×üñ一世q一种×

因此,似乎可以在此处定义递归,但不能定义电感。我们可以定义一些类似于电感器的东西,但并不能完全做到。递归让我们执行将这种类型视为逻辑合取的含义的逻辑,但是它不能让我们证明似乎缺乏的产品的东西。

我们可以做出我声称可以实现的减少吗?也就是说,我们是否可以仅使用具有成对函数和电感器且具有与产品相同的定义方程和类型的依赖函数类型和Universe来定义类型?我越来越怀疑我提出了错误的主张。看起来我们能够如此令人沮丧地接近,但并不能完全做到这一点。如果我们不能定义它,那么什么样的论点解释了为什么我们不能?HoTT书中介绍的产品是否增加了系统的强度?


2
据我了解,通常的Church编码为我们提供了一种类型,该类型允许非依赖性消除(递归),但没有依赖性消除(电感)。您的问题可能与有关。我不确定HoTT是否对此有所更改。

这似乎很有帮助。据我了解,我的问题将针对构造(Coq减去(共)归纳)类型的预测演算得到解答。我一直在寻找涵盖这些模型的论文(CoC模型不是CiC模型),但找不到任何模型。您是否有消息来源?
杰克

不幸的是我没有分享的参考。我也有兴趣为这个民间传说事实提供消息来源。

我也一直在寻找有关这一事实的民间传说参考,但似乎找不到解释。
杰克

很好的问题,但是在cstheory.stackexchange.com
Martin Berger

Answers:


7

我经常给的标准参考是Herman Geuvers 在二阶依赖类型理论中不能归纳归纳法,它说没有类型

ñŤÿpË

具有功能

žñ小号ññ

这样

一世ñdΠPñŤÿpËP žΠñP P 小号 ΠññP ñ

是可证明的。这表明确实如此的编码无法像您描述的那样对使用。

经过验证的系统是“建筑演算”的子集,其中包含强大的产品类型和一个Universe。我怀疑这个结果可以扩展到您感兴趣的系统,具体取决于您拥有的系统。

不幸的是,我不知道您问题的完整答案。我怀疑“内部”添加某些参数化原理正是使这些编码与完整归纳原理一起工作所需要的。尼尔·克里希纳斯瓦米(Neel Krishnaswami)的知识是我自己的严格知识,他与德里克·德雷尔(Derek Dreyer)一起写了一篇论文:

结构扩展演算中的内在关系参数化

有趣的是Bernardy,Jansson和Patterson的以下论文(Bernardy对这些主题进行了深思熟虑):

参数化和从属类型

显然,参数化通常与HoTT有很强的关系,但是我不知道细节是什么。我认为Steve Awodey已经考虑了这些问题,因为编码技巧在我们真正不知道消除器应该是什么样的情况下很有用。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.