代码之家  ›  专栏  ›  技术社区  ›  Jeremy Salwen

将具体假设应用于存在目标的Coq策略

  •  0
  • Jeremy Salwen  · 技术社区  · 7 年前

    考虑下面的例子:

    Theorem example: forall (P: nat->Prop), P (1+2+3) -> (exists x, P x).
    Proof.
    intros. 
    apply H 
    

    apply H

    Unable to unify "P (1 + 2 + 3)" with "exists x : nat, P x".
    

    所以我知道我可以用这个策略 exists 1+2+3 申请在这里工作,或者 this other stackoverflow question 有一种更复杂的方法来使用正向推理 H 把它变成存在的形式。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Tej Chajed    7 年前

    你不需要推理,你只需要评估:

    Theorem example: forall (P: nat->Prop), P (1+2+3) -> (exists x, P x).
    Proof.
    intros.
    eexists.
    apply H.