【发布时间】:2015-09-27 12:50:17
【问题描述】:
我刚开始玩 idris 和一般的定理证明。我可以遵循互联网上大多数基本事实证明的示例,所以我想自己尝试一些任意的东西。所以,我想为map的以下基本属性写一个证明项:
map : (a -> b) -> List a -> List b
prf : map id = id
直观地说,我可以想象证明应该如何工作:获取任意列表 l 并分析映射 id l 的可能性。当 l 为空时,很明显;什么时候 l 是非空的,它基于函数应用保持相等的概念。 所以,我可以这样做:
prf' : (l : List a) -> map id l = id l
这就像一个 for all 声明。我怎样才能把它变成所涉及的函数相等的证明?
【问题讨论】:
-
Cubical Agda 可以做到。