是否在coqtop中启用显式类型索引?
在Coq中,有一个类型层次结构,每个类型表示前一个类型,即类型0:类型1、类型1:类型2等等。在是否在coqtop中启用显式类型索引?,coq,Coq,在Coq中,有一个类型层次结构,每个类型表示前一个类型,即类型0:类型1、类型1:类型2等等。在coqtop中,但是当我键入检查类型时。我得到type:type,它看起来像一个矛盾,但不是,因为类型是隐式索引的 问题:如何启用类型universes的显式索引?上面提到的@ejgallego的简短回答是启用universe级别的打印: Coq < Set Printing Universes. Coq < Check Type. Type@{Top.1} : Type@{To
coqtop
中,但是当我键入检查类型时。
我得到type:type
,它看起来像一个矛盾,但不是,因为类型
是隐式索引的
问题:如何启用类型universes的显式索引?上面提到的@ejgallego的简短回答是启用universe级别的打印:
Coq < Set Printing Universes.
Coq < Check Type.
Type@{Top.1}
: Type@{Top.1+1}
(* Top.1 |= *)
Coq
从概念上讲,确实存在一个类型层次结构,可以称为类型{1}
,类型{2}
,等等。然而,Coq实际上维护的是宇宙索引的符号以及它们之间的关系(宇宙约束),而不是显式的数字。约束保持一致,因此始终可以以一致的方式为每个符号分配一些明确的数字
在上面的输出中,您可以看到Coq为检查类型内的类型创建了一个宇宙级Top.1
。它的类型总是高一级,这是因为Coq没有另一个带有表达式Top.1+1
的符号。使用Set Printing Universes
时,约束列表也作为注释输出;在这种情况下,它在上下文Top.1
中给出一个符号,并且在右侧没有约束
Coq维护着一个到目前为止已经创建的宇宙级别和约束的全局列表。您可以在CPDT中阅读更全面的宇宙级别和约束说明:。您想使用设置打印宇宙
。