Rod*_*iro 4 agda dependent-type
在我正在处理的形式化中,我需要将 Unit 类型从在 UniverseSet上定义的 Agda 标准库提升为像Set a.
我怎样才能做到这一点?我知道我可以定义另一种类型,就像这样:
record Unit {l} : Set l where
constructor unit
Run Code Online (Sandbox Code Playgroud)
这是宇宙多态。但是,我认为应该有一个更惯用的解决方案来解决这个问题。有人可以为我提供解决方案,或者如果无法向我解释原因吗?
事实上,在标准库中搜索了一下,我在Level模块中找到了所需的工具。解决方案是使用类型Lift:
record Lift {a ?} (A : Set a) : Set (a ? ?) where
constructor lift
field lower : A
Run Code Online (Sandbox Code Playgroud)
单位类型
record ? : Set where
constructor tt
Run Code Online (Sandbox Code Playgroud)
可以使用 提升到更高的宇宙级别Lift ?。我找到了阅读以下答案部分的解决方案。
| 归档时间: |
|
| 查看次数: |
332 次 |
| 最近记录: |