universe

universe は、宇宙レベルを表す変数を宣言するコマンドです。universe u と宣言すると、そのスコープ内で u を宇宙変数として使えるようになります。

universe u

#check (Type u)

ここで 宇宙(universe) とは、項が再び型であるような型のことです。たとえば NatBool は型ですが、Lean ではそのような型も項として扱われ、Type という型を持ちます。

#check (Nat : Type)
#check (Bool : Type)

Type 自身も型ですが、Type : Type ではなく Type : Type 1 です。Type 1 の型は Type 2 です。以下、Type 2 の型は Type 3 等と無限に続きます。

#check (Type : Type 1)
#check (Type 1 : Type 2)
#check (Type 2 : Type 3)

一般に Type u の型は Type (u + 1) になります。

#check (Type u : Type (u + 1))