在霍特书中,大多数类型创建者是多余的吗?如果是这样,为什么?


14

Hott的第1章和附录A中,介绍了几种基本类型族(宇宙类型,从属函数类型,从属对类型,副产品类型,空类型,单位类型,自然数类型和标识类型)以构成基础用于同伦类型理论。

但是,在给定的Universe类型和相关函数类型看来,您可以构造所有其他“原始”类型。例如,Empty类型可以改为

ΠT:U.T

我认为其他类型的构造也可以类似于它们在纯CC中的构造(即,仅从定义的归纳部分派生类型)。

在第5章和第6章中介绍的归纳/ W类型明确地使其中许多类型变得多余。但是归纳/ W类型似乎是该理论的可选部分,因为存在关于它们如何与HoTT相互作用的公开问题(参见至少在本书出版时)。

因此,我对为什么将这些附加类型表示为原始类型感到非常困惑。我的直觉是,基础理论应尽可能少,并且将冗余的Empty类型重新定义为该理论中的原始元素似乎非常武断。

做出这个选择了吗

  • 出于某些我不知道的元理论原因?
  • 由于历史原因,要使类型理论看起来像过去的类型理论(不一定是基础理论)?
  • 计算机接口的“可用性”?
  • 对于我不知道的证据搜索有什么好处?

类似于:Martin-Löf类型理论的最低要求https: //cs.stackexchange.com/questions/82810/reducing-products-in-hott-to-church-scott-encodings/82891#82891


它们是多余的,但不是您所建议的那样。您应该问自己“最低限度”的目的什么?我们关心这个目的吗?
安德烈·鲍尔

1
我认为按照惯例,技术工作是最少的,如果显然方便或另有明确说明,则不需要做最少的事情。该书甚至在其他地方都遵循此原则,例如在定义截断类型(由规则定义,但显然不是最少的)时。例如,如果我看到用0、1、10定义的nat,后继和幂运算,我会感到困惑,但至少可以看到为什么它在符号上很方便。霍特是一个更为复杂的研究领域,我想知道我是否遗漏了任何明显的东西。
user833970

1
我很想听听他们如何有害。我应该对此提出一个新问题吗?
user833970

1
@AndrejBauer我想知道为什么它们也会有害。我认为基本语言应该最少的理由是occam剃刀背后的原因,这是毫无道理的增加的复杂性。为什么停在那里?为什么不同时添加列表,字符串,对,三元组,向量?那些选择似乎是任意的,什么理由呢?编辑:我只是注意到这个问题有答案;但我将在此处保留此评论只是为了指出为什么我也会对此感兴趣。
MaiaVictor

1
我会写一篇博客文章。
安德烈·鲍尔

Answers:


14

让我解释一下为什么建议的空类型编码不起作用。我们需要明确说明宇宙的水平,而不是一味地将它们扫一扫。

当人们说“空类型”时,它们可能意味着以下两种情况之一:

  1. 单一类型里面是空的相对于所有类型的。这种类型具有消除规则:每和类型的家庭,有一个地图。n A E U n e n AE AËñ一种ËüñËñ一种Ë一种

  2. 甲族类型的,一个用于每个宇宙水平,使得是“空类型的 ”。这种类型的必须满足,很明显,并且还为:每类型家庭,有一个地图。 k E k U k E kU k A E kU k e k AE kAËķķËķüķËķüķ一种ËķüķËķ一种Ëķ一种

没有任何条件,当人们说“空类型”时,他们期望上面的第一个含义。

我们如何获得?第一次尝试可能类似于 但这恰恰是在地毯下扫地的方式,造成混乱。我们必须写下明确的宇宙水平。如果我们写类似 那么我们得到一系列类型为的序列,每个级别。从上面的意义上,我们可能希望该序列为空类型,但不是,因为在但应该在。E = Π T U ËE k = Π T U k

Ë=ΠŤüŤ
E 0E 1E 2k E k U k + 1 U k
Ëķ=ΠŤüķŤ
Ë0Ë1个Ë2ķËķüķ+1个üķ

另一个尝试是 但是现在您必须解释“ ”应该是什么。你也许会说,有一种宇宙级别的,所以 你有现在陷入陷阱,因为我会问:生活在哪个宇宙中?生活在哪个宇宙中?这是行不通的。Π Ñ 大号ë = Π Ñ 大号

Ë=ΠñΠŤüñŤ
Πñ大号Ë 大号
Ë=Πñ大号ΠŤüñŤ
Ë大号

有一种解决方法,称为强制性宇宙。这是一个神奇的宇宙,具有以下属性:给定,类型驻留在(而不是从一层)。然后,至少再次位于,并将具有预期的消除符。但是我们仍然没有完成,因为现在我们必须担心消除器的方程式,正如Neel指出的那样。üüüΠXüXüüΠXüXü

可以安排命令性的宇宙。但是,蒂埃里·科昆德(Thierry Coquand)的一个著名定理(如果我没记错的话)表明,拥有两个强制性宇宙,一个包含在另一个中,会导致矛盾。

这个故事的寓意是:只是直接将空类型公之于众并停止编码。


这是使空类型公理化的令人信服的理由,但是我仍然对将所有较重的东西公理化的理由仍然感到好奇。
MaiaVictor

@MaiaVictor:相对于什么?
安德烈·鲍尔

抱歉?我只是说您有说服力的理由,特别是为什么要公理化空类型是一个好主意。但是OP还询问了其他问题:“宇宙类型,从属函数类型,从属对类型,副产品类型,空类型,单元类型,自然数类型和标识类型”(我认为这也是在系统上建议的原语) HoTT书)。(我显然不要求您证明所有这些理由,只是表达我的兴趣。)
MaiaVictor

1个=XüXX

@IngoBlechschmidt好奇地学习什么样的问题!对我来说看起来不错...
MaiaVictor

15

您在问几个相似但截然不同的问题。

  1. 为什么HoTT的书不对数据类型使用Church编码?

    教会编码在Martin-Löf类型理论中不起作用,有两个原因。

    ñķ<ñ

    其次,即使您使用Church编码定义了像自然数这样的数据类型,也要使用这些类型做证明,您仍需要归纳原理来证明有关它们的知识。要导出Church编码的归纳原理,您需要使用基于雷诺参数化的参数,而如何将参数化原理内化为类型理论的问题仍未完全解决。(最新技术是Nuyts,Vezzosi和Devriese在ICFP 2017上发表的论文《依赖类型理论的参数化量词 -请注意,这是写完HoTT书之后!)

  2. 接下来,您要问为什么基础不是最小的。这实际上是类型理论基础的独特社会学特征之一-类型理论家将具有少量规则的规则视为技术上的便利,而没有太多的基础意义。拥有正确的规则集,而不是最小的规则集,远比这重要得多。

    我们开发类型的理论被用于由数学家和程序员,这是非常,非常重要的是理论型内进行的证据是那些数学家和程序员视为正确的方式正在做。这是因为数学家通常认为具有良好风格的论点通常是使用研究领域的关键代数和几何原理构成的。如果必须使用复杂的编码,则会丢失或掩盖很多结构。

    这就是为什么即使命题经典逻辑的类型理论表示也总是给出所有逻辑连接词的原因,即使它在形式上等效于仅具有NAND的逻辑。当然,所有布尔连接词都可以用NAND编码,但是这种编码使逻辑结构变得模糊。


感谢您的回答!我需要阅读(和您的)论文,这可能更有意义。但是,我认为宇宙层次结构旨在使其看起来像您可以做谓词:例如(λA:U.λa:Aa)(ΠA:UA→A)会分解为(λA:Un +1.λa: Aa)(ΠA:Un.A→A)。我确实认为不解释这一点是一个奇怪的编辑选择,我知道的每本逻辑书都指出了几种其他的最小编码,例如CNF,DNF,NAND等。任何习惯设定理论的人都希望对Nats进行“自然”编码,以证明该理论。但这可能只是我的经典偏见。
user833970

在我的最后一条评论中应该是“强制性的”
user833970

ŤüñŤüñüñ+1个üñ

也许我对宇宙层次结构有误解。我以为我们从不关心类型属于哪个特定的Universe,仅当我们要验证证明时才可以分配Universe号。因此从技术上讲ΠT:UT是在Universe上建立索引的类型族。就像多态恒等式一样,它是一个基于宇宙索引的类型族。但是,我们对多态身份没有相同的问题吗?如果您能对最后两句话进行扩展,我将不胜感激。
user833970

当您说它不具有正确的消除特性时,您的意思是,一旦确定了Universe,高级Universe中的某些类型就不能通过ΠT:Un.T术语直接合成?
user833970
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.