是否在coqtop中启用显式类型索引?

是否在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

在Coq中,有一个类型层次结构,每个类型表示前一个类型,即类型0:类型1、类型1:类型2等等。在
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中阅读更全面的宇宙级别和约束说明:。

您想使用
设置打印宇宙