考虑以下(无效的)Agda代码
data Example : Example ex → Set where
ex : Example ex
可以使用以下方法在Agda中有效地写出这种类型,即利用Agda的功能,即允许将值先给定类型,再给后给定值
exampleex : Set
ex' : exampleex
data Example : exampleex → Set where
ex : Example ex'
exampleex = Example ex'
ex' = ex
全部编译,Agda正确知道ex : Example ex
但是,尝试使用示例模式来定义示例之外的函数会导致编译器崩溃
test : (e : Example ex) → Example e → ℕ
test ex x = 0
当我将此功能添加到文件中并运行“ agda main.agda”时,agda会显示“ Checking main”,但从未完成运行。不是应该在Agda中进行类型检查吗?
还有,有什么办法可以解决这个问题,并使测试功能可以定义?
答案 0 :(得分:2)
这是Agda中的一个已知问题。您可以在https://github.com/agda/agda/issues/1556的Agda github上找到相应的问题。