自从我开始阅读交互式精益教程以来,一个问题就是唠叨我:Prop
中单独的Type
层次结构的目的是什么?
据我所知,我们有以下Universe层次结构:
Type (n+1)
| \
| Sort (n+1)
| |
Type n | (?)
| \ |
... Sort n
| |
Type 0 ... (?)
| \ |
nat Prop
| |
0 p ∧ q
|
⟨hp, hq⟩
?
的边缘实际上是存在的还是我刚刚制作它们(可能)?Sort n
和Type n
。为什么精益可以区分它们? Prop
的奇怪之处在于它一方面就像一个归纳类型(例如,它关闭的意思是p ∧ nat
没有意义)但另一方面又像一种类似的使用(例如,通过为p : Prop
构建证明值来显示类型 p
。我怀疑这与区别有关,但我无法表达出来。是否有一些基本的论文来阅读这篇文章?
答案 0 :(得分:2)
nat索引的Universe只有一个层次结构Sort u
。来自Chapter 3 of Theorem Proving in Lean:
实际上,类型
Prop
是Sort 0
的语法糖,是上一章描述的类型层次结构的最底层。此外,Type u
也只是Sort (u+1)
的语法糖。
在Extended Calculus of Constructions中介绍了在其基础上具有不可预测的底层宇宙Prop
和预测层次结构Type u
的想法。精益将Sort
作为单个通用层次结构引入,以便定义可以使用Sort u
覆盖所有Universe,而不需要Prop
和Type u
的单独定义。
相比之下,Idris和Agda的底层宇宙并没有做任何特殊的事情,因此他们在整个层次结构中使用了一个名称。