Answers:
对于依赖类型理论的一个相当简单的版本,Gilles Dowek给出了在非空上下文中无法确定可键入性的证明:
吉尔斯Dowek,typability在不可判定演算
可以在这里找到。
首先,让我澄清一下该论文中证明的内容:他表明,在没有对抽象进行注释的从属演算中,无法确定在非空上下文中显示术语的可键入性。这两个假设都是必要的:在空的上下文中,可键入性降低为简单类型的演算(由Hindley-Milner决定),并且在抽象上带有注释时,通常的类型导向算法适用。
这个想法是将Post对应问题编码为类型转换问题,然后仔细构造一个可输入的术语,前提是这两个特定类型是可转换的。这利用了常态形式的形状的知识,该形式始终存在于该演算中。这篇文章简短且写得很好,因此在这里我将不做更多详细介绍。
现在,在像system-F这样的多态计算中,能够推断类型抽象和应用程序,并如上所述省略上的注释,将是一个不错的选择。这也是无法确定的,但是证明要困难得多,而且这个问题已经存在了很长时间。韦尔斯已解决此事:
系统F中的 JB Wells,可键入性和类型检查等效且不确定。
可以在这里找到。我所知道的是,它减少了系统F中类型检查的半统一问题(这是通用量词的统一取模实例化,并且不确定)。
最后,很容易证明依赖家庭的居住状况是无法确定的:只需将Post问题编码为构造函数索引。这是尼古拉斯·欧瑞(Nicolas Oury)制作的一些幻灯片,概述了这一论点。
至于是否存在“限制”,很大程度上取决于您要对依赖类型进行的处理,并且有许多近似值可以决定,或者至少足够接近才能使用。这些问题仍然是积极研究的一部分。
一种可能的途径是“优化类型”领域,其中类型相关性的表达语言被限制为允许可确定的检查,例如参见“ 液体类型”。即使在这些系统中,全类型推断也是可以决定的。