如何应用形式A = B的Coq假设 - > C = D到A = B形式的子目标

时间:2013-11-01 03:53:18

标签: coq

我正在制作一份证据,我目前仍然坚持这一点。我的假设是:

T1E : tree1 = EmptyTree -> isEmpty (leftChild (Node tree1 tree2)) = true

我也有一个假设:

H2 : isEmpty (leftChild (Node tree1 tree2)) = true

我当前的子目标是

tree1 = EmptyTree

好像我应该能够做到

rewrite <- T1E

为了将子目标更改为

isEmpty (leftChild (Node tree1 tree2)) = true

但是当我尝试时,Coq说

Error: Found no subterm matching "true" in the current goal.

如何使用T1E和H2证明我当前的子目标?

1 个答案:

答案 0 :(得分:2)

您可能无法使用T1E来证明自己的目标。从本质上讲,您试图证明A知道“如果A为真,则B为真。”

但是,根据您的情况,在我看来,您应该能够简化H2并获得tree1的矛盾或更多信息,这无论如何应该导致什么你想要的。