归纳类型违反严格的阳性条件导致不一致的示例


Answers:


10

实际上有可能放松严格的积极性并保持一致。例如,仅具有一个阳性条件就足够了。也就是说,我们可以接受类似的类型定义

Tμα.(α2)2

递归类型变量出现在偶数个箭头的左侧,并保持一致性。

但是,允许这种归纳类型的理论没有集合论模型-您不能将类型解释为集合,也不能将术语解释为集合的元素。在这种情况下,我们说T 与它的双幂集同构(即, TP(P(T))),这违反了Cantor定理

由于依赖类型理论通常用于形式化数学,因此,即使是一致的,他们的设计人员通常也不愿意添加与集合论语义不兼容的原理。

编辑:我添加此编辑以响应安德烈(Andrej)的问题。类型T 如果将其添加到(例如)Agda,则保持一致;完全没有问题。只有将非严格的积极性与排除的中间因素相结合,我们才有问题。

从参数的角度可以最好地看出为什么安全的直觉(IMO)。在系统F中,我们可以显示出对于任何可定义函子使用参数F, 类型 μFα.(Fαα)α 确实是归纳型。

现在,回想一下一个可定义的函子 F 是类型运算符 F:,与操作员一起

map:α,β.(αβ)FαFβ
满足功能性条件(即, mapid=idmapfmapg=map(fg)。

现在,我们可以为double powerset定义类型运算符

C=λα.(α2)2

而且因为 α 仅发生肯定的情况,我们还可以为其定义地图操作符:

mapC=λf:αβ,a:(α2)2,k:β2.a(λa:α.k(fa))

所以我们知道 T=μC 是合法的归纳类型。


我们能否提出一个仅会造成不一致的示例?如果我们还假设(足够)排除在中间,则您的示例不一致。
Andrej Bauer 2014年

另一个原因是我们可以将FAN定理添加到Agda,然后可以证明所讨论的类型是自然数(同构)。
Andrej Bauer 2014年

我在想 μα.(α2)α应该很糟糕。
Andrej Bauer 2014年

1
啊,我误解了这个问题-关键是严格的积极性是一个充分但不是必要的条件。您的示例(实际发生否定)是不一致的。
Neel Krishnaswami 2014年

是的,我才意识到。我的例子不能成立。
Andrej Bauer 2014年
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.