将具体假设应用于存在目标的 Coq 策略
Coq tactic for applying a concrete hypothesis to an existential goal
考虑以下示例:
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
申请在这里工作,或者,基于 有一种更复杂的方法可以在 [=14= 上使用正向推理] 使其成为存在形式。
但我希望有一些聪明的策略可以在统一时实例化存在变量,而不必显式?
你不需要前向推理,你只需要一个 evar:
Theorem example: forall (P: nat->Prop), P (1+2+3) -> (exists x, P x).
Proof.
intros.
eexists.
apply H.
您在此处明确表示要创建一个存在变量,而 Coq 正在使用统一来实例化它。
考虑以下示例:
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
申请在这里工作,或者,基于
但我希望有一些聪明的策略可以在统一时实例化存在变量,而不必显式?
你不需要前向推理,你只需要一个 evar:
Theorem example: forall (P: nat->Prop), P (1+2+3) -> (exists x, P x).
Proof.
intros.
eexists.
apply H.
您在此处明确表示要创建一个存在变量,而 Coq 正在使用统一来实例化它。