阿格达语中这两种平等定义有什么区别?

What's the difference between these two definitions of equality in Agda?

提问人:Turion 提问时间:8/15/2015 更新时间:8/15/2015 访问量:140

问:

我安装了 Agda 并开始玩。我试图定义一个相等类型,并提出了以下解决方案:

data _≡_ {A : Set} : A -> A -> Set where
  refl : {x : A} -> x ≡ x

但是,在 Ulf Norell 和 James Chapman 的教程中,他们是这样定义的:

data _==_ {A : Set}(x : A) : A -> Set where
  refl : x == x

与我的版本有什么区别(除了选择不同的角色)?推荐哪一个?

平等 AGDA

评论

1赞 daniel gratzer 8/15/2015
它们产生不同的归纳原理,后者提供了更容易使用的归纳原理。不确定你会注意到在 Agda 中,你无论如何都只使用模式匹配。你写的那个是 Martin-Lof 给出的原始定义,但另一个是 Agda 的标准库中使用的定义。
2赞 effectfully 8/15/2015
相关。但似乎阿格达变得更聪明了,现在在可能的情况下将指数变成参数。

答: 暂无答案