用Coq中归纳谓词上的递归定义函数

用Coq中归纳谓词上的递归定义函数,coq,Coq,我试图在Coq中重新实现我的一些Agda代码。我的问题是,我的Agda函数之一是由归纳谓词结构上的递归定义的 在我的Coq代码中,我试图遵循相同的样式,但有一个模式匹配限制,不允许使用Prop中的type分析值的结构,从而在Set中生成结果。我的问题是:有没有一种方法可以在产生集合结果(比如sumbool)的同时,通过对证明进行递归来定义函数 包含再现错误的所有定义的代码如下。问题在于,您需要在证明中包含信息来构建树。具体来说,您需要一些拆分(s1,s2),以便s1++s2=s/\s1

我试图在Coq中重新实现我的一些Agda代码。我的问题是,我的Agda函数之一是由归纳谓词结构上的递归定义的

在我的Coq代码中,我试图遵循相同的样式,但有一个模式匹配限制,不允许使用Prop中的type分析值的结构,从而在Set中生成结果。我的问题是:有没有一种方法可以在产生集合结果(比如sumbool)的同时,通过对证明进行递归来定义函数


包含再现错误的所有定义的代码如下。

问题在于,您需要在证明中包含信息来构建树。具体来说,您需要一些拆分
(s1,s2)
,以便
s1++s2=s/\s1