将一种类型提升到更高的宇宙

时间:2017-02-23 12:47:27

标签: agda dependent-type

在我正在进行的形式化中,我需要将单元类型从在Universe Set上定义的Agda标准库提升为类似Set a的多态类型。

我该怎么做?我知道我可以定义另一种类型,例如:

record Unit {l} : Set l where
   constructor unit

这是宇宙多态的。但是,我认为应该有一个更惯用的解决方案来解决这个问题。有人可以给我一个解决方案,或者是否无法向我解释原因?

1 个答案:

答案 0 :(得分:3)

事实上,在搜索标准库时,我找到了Level模块中所需的工具。解决方案是使用类型Lift

record Lift {a ℓ} (A : Set a) : Set (a ⊔ ℓ) where
  constructor lift
  field lower : A

单位类型

 record ⊤ : Set where
   constructor tt

可以使用Lift ⊤提升到更高的Universe级别。我发现解决方案是以下answer的一部分。