依赖类型的语言提供“ pi类型”,允许类型依赖于输入的值。我的问题是,pi类型的类型是什么?
答案 0 :(得分:3)
类型的类型是Universe。通常,Universe被分层为类型0,类型1,类型2 ...等级别,其中类型n的类型为类型(n + 1)。这样做的原因是,如果我们只有一个类型的Type,则Type的类型必须是Type,通常为leads to paradoxes。
那么forall a: A, P a
的类型是什么(使用Coq语法的pi类型)?如果假设A: Type m
和P: A -> Type n
,则有forall a: A, P a: Type max(m, n)
。如果我们有累积的Universe(如Coq一样),因此m≤n
和A: Type m
暗示A: Type n
,则forall a: A, P a
的类型实际上是大于两个{{ 1}}和m
。
编辑:根据您的评论,n
以->
和A: Type m
作为参数,并返回类型为P: A -> Type n
的{{1}},因此类型pi构造函数的值是forall a: A, P a
,或者用Agda语法是Type max(m, n)
。
答案 1 :(得分:0)
在lambda多维数据集中,Pi类型通过form
规则形成:
G ⊢ A: s1 G, x: A ⊢ B : s2
--------------------------------- (form)
G ⊢ Πx : A. B: s2
{s1,s2}可以为
此form
规则可以在Pure Type System中进一步推广