大多数从属类型系统对于归纳类型都具有严格的阳性条件。有人知道违反条件会导致系统不一致的例子吗?
大多数从属类型系统对于归纳类型都具有严格的阳性条件。有人知道违反条件会导致系统不一致的例子吗?
Answers:
实际上有可能放松严格的积极性并保持一致。例如,仅具有一个阳性条件就足够了。也就是说,我们可以接受类似的类型定义
递归类型变量出现在偶数个箭头的左侧,并保持一致性。
但是,允许这种归纳类型的理论没有集合论模型-您不能将类型解释为集合,也不能将术语解释为集合的元素。在这种情况下,我们说 与它的双幂集同构(即, ),这违反了Cantor定理。
由于依赖类型理论通常用于形式化数学,因此,即使是一致的,他们的设计人员通常也不愿意添加与集合论语义不兼容的原理。
编辑:我添加此编辑以响应安德烈(Andrej)的问题。类型 如果将其添加到(例如)Agda,则保持一致;完全没有问题。只有将非严格的积极性与排除的中间因素相结合,我们才有问题。
从参数的角度可以最好地看出为什么安全的直觉(IMO)。在系统F中,我们可以显示出对于任何可定义函子使用参数, 类型 确实是归纳型。
现在,回想一下一个可定义的函子 是类型运算符 ,与操作员一起
现在,我们可以为double powerset定义类型运算符
而且因为 仅发生肯定的情况,我们还可以为其定义地图操作符:
所以我们知道 是合法的归纳类型。