在传统的马丁·洛夫类型理论中,类型和命题之间没有区别。这是“作为类型的命题”的口号。但是有时会有区别的理由。CoC正是这样做的。
CoC有很多变体,但大多数都有
但没有。当我们有无限多的类型Universe并使成为强制性时(这就是Coq所做的),就会显示出另一个区别。具体来说,考虑一个CoC变体,其中我们有和无限多个类型Universe,,和
的形成规则Ť ÿ p Ê:P - [R ø p P - [R ö p P - [R ö p Ť ý p ë 1 Ť ý p ë 2 Ť ý p ë 3 P - [R ø p
Prop:Type
Type:PropPropPropType1Type2Type3PropType1Type2:Type1:Type2:Type3⋮
∏必须解释当是命题或类型而是命题或类型时,如何形成。有四种组合:
∏x:AB(x)AB(x)
A:Propx:A⊢B(x):Prop∏x:AB(x):Prop
A:Typeix:A⊢B(x):Prop∏x:AB(x):Prop
A:Propx:A⊢B(x):Typei∏x:AB(x):Typei
A:Typeix:A⊢B(x):Typej∏x:AB(x):Typemax(i,j)
最有趣的是第二种情况与第四种情况之间的区别。第四条规则说,如果在第个宇宙中,而在第个宇宙中,则乘积在第个宇宙中。但第二条规则告诉我们,是不是只是“一个在底部更多的宇宙”,因为在土地只要,无论有多大。这是强制性的,因为它允许我们定义元素AiB(x)jmax(i,j)Prop∏x:AB(x)PropB(x)AProp通过量化本身。Prop
一个具体的例子是
与
第一个产品存在于,但是第二个在(而不是在,即使我们要量化的元素也是如此)。特别是,这意味着的可能值之一是本身。
∏A:Type1A→A
∏A:PropA→A
Type2PropType1Type1A∏A:PropA→A