coq-证明某些表达式不会终止

时间:2014-03-01 01:03:04

标签: coq

我需要证明这个定理。

        Theorem expr_not_terminate:
          ~(forall (e : expr) (s : state),
            exists (v : value),
              evalExpr e s v).
        Proof.
          unfold not.
          intros. 

一旦我做'介绍'它就会在假设中带来'H:forall(e:expr)(s:state),存在v:value,evalExpr e s v'。我无法做任何事情。我该如何打破这个假设?任何想法?

1 个答案:

答案 0 :(得分:2)

您可以展示一个特定的表达方式和一个伪造声明的特定状态,并使用例如specialize策略来实例化您的假设。然后在上下文中使用该假设(可能是感应)来驱动矛盾,允许你显示错误。