陷入无限倒置循环Coq

时间:2017-04-26 22:25:55

标签: coq theorem-proving

我有一个归纳关系,如下所示,标题为后缀。我试图证明相关的定理 suffix_app 。我的一般想法是使用后缀xs ys 这一事实来表明xs等于ys,或者它是ys上的一系列元素 cons 'd。

{{1}}

然而,当我使用反演时,实际上没有办法“到达”等于ys的术语。因此,我陷入了目前在代码中看到的那一点。

1 个答案:

答案 0 :(得分:1)

您的证据只需在任何结构上进行归纳,例如:

Theorem suffix_app (X: Type) (xs ys: list X) :
  suffix xs ys -> exists ws, xs = ws ++ ys.
Proof.
induction 1 as [|x xsp ysp hs [zs zeq]]; [now exists []|].
now exists (x :: zs); rewrite zeq.
Qed.

出于实际原因,您可能希望使用不同的计算版本的后缀。