在与 Welder 合作时,我遇到了必须证明的情况:
如果 content(l1) == content(l2) 并且 f 是幂等、关联和交换运算符,则 fold(f,z,l1) = fold(f,z,l2)
在我证明的一个阶段,我想证明对于 x::xs 形式的列表 l1:
折叠(f,z,不带(x,xs)) == 折叠(f,z,不带(x,l2))
where without(x,.) 从列表中删除 x 的出现。因此很明显 without(x,xs) 的大小小于 x::xs 的大小,因此如果 Welder 中允许强归纳,我应该得到相等(内容相等)。
目前,系统只是告诉我没有没有(x,xs)的归纳假设。那么如何对 Welder 进行强感应呢?