我正在阅读第 7 章——“精益中的定理证明”的归纳类型。
我想知道如何以更扩展或“原始”的形式编写依赖非依赖产品的定义。
看起来教程中给出的定义会自动推断出一些细节:
inductive prod1 (α : Type u) (β : Type v) | mk : α → β → prod1
一些实验允许填写细节
inductive prod2 (α : Type u) (β : Type v) : Type (max u v) | mk : α → β → prod2
但是以完全扩展的形式给出定义,使用 Pi 类型无法进行类型检查:
inductive prod3 : Π (α : Type u) (β : Type v), Type (max u v) | mk : α → β → prod3
正确的书写方式是prod3
什么?
最后,下面的定义是否等同于prod1
and prod2
,即类型检查器是否总能推断出α
and的正确类型全域β
?
inductive prod4 (α : Type) (β : Type) | mk : α → β → prod4