标签: coq coq-tactic coinduction
定义一个新类型foo给了我一个递归原则foo_rect,它优雅地抽象了fix。可以用某种方式“翻转箭头”来定义一个同源的等同物(抽象cofix)吗?
foo
foo_rect
fix
cofix
答案 0 :(得分:2)
由于Coq检查cofixpoints的保护条件的非模块化方式,这是不可能的。幸运的是,只要您以特定方式标记定义,Paco library就可以完全按照您的要求解决此问题。
这里有一个很好的Paco库教程:http://plv.mpi-sws.org/paco/tutorial.html