Type 1
的居民Type
既不是Type
也不是居民x
的例子是什么?在Idris REPL中探索时,我无法想出任何东西。
更准确地说,我正在寻找除Type
之外的Idris> :t x
x : Type 1
以下产生以下内容的数据:
{{1}}
答案 0 :(得分:7)
我不是类型理论专家,但这是我的理解。在Idris tutorial中有一个 12.8 Cumulativity 部分。它说有一个Universe类型的内部层次结构:
Type : Type 1 : Type 2 : Type 3 : ...
任何x : Type n
隐含x : Type m
代表任何m > n
。还有一个例子说明它如何防止类型推断中的可能循环。
但我认为此层次结构仅供内部使用,并且不可能创建Type (n+1)
中不在Type n
中的值。
另请参阅nLab中有关universes in type theory和type of types的文章。
也许idris-dev存储库中的这个issue也很有用。 Edwin Brady在那里指的是Design and Implementation paper(参见第3.2.2节)。
答案 1 :(得分:5)
我不是伊德里斯专家,但我希望
Type -> Type
也在Type 1
。
我也期待
Nat -> Type
如果你非常幸运(不太确定这个)
List Type
那么大。
这个想法是你可以在每个级别进行所有类型构建操作。每次使用一个级别的类型作为值时,那些结构的类型都会生成一级。