布尔的归纳定义

时间:2019-02-16 22:49:54

标签: coq

通常,我试图将自己的布尔类型定义为:

Inductive mybool : Type :=
    | true
    | false.

然后我执行“打印mybool”。但输出显示

Inductive mybool : Set := true : mybool | false : mybool.

为什么设置了“ mybool”而不是“ Type”?

1 个答案:

答案 0 :(得分:3)

Coq使用所谓的“ Universe Minimization”将归纳类型放入尽可能小的Universe中。由于mybool不依赖于任何其他类型,也不进行任何通用量化,因此可以放心地将其置于Type的(第二)最低级别,即Set。最低级别为Prop,但是归纳类型仅在它们只有一个构造函数(对此有一些例外)或显式标注时,才放置在Prop中。

请注意,Coq的宇宙是累积的,因此mybool实际上在Type的每个级别中,但是仅显示了最小级别。