在Coq中是否有一种类似于eapply的策略可以实现“存在”的目标?

在Coq中是否有一种类似于eapply的策略可以实现“存在”的目标?,coq,coq-tactic,Coq,Coq Tactic,在证明过程中,我有以下内容,其中目标是存在的,目标属性是假设之一 H : x ==> y ... ______________________________________(1/2) exists t : tm, x ==> t 我知道我能做到。应用H.来证明当前目标,但我想知道是否有更聪明的策略可以直接使用假设来证明存在目标,比如eapply H 因为这是一个统一,所以不必在exists X中编写X部分就好了。 如果这样的策略不存在,我怎么写呢?有这样一种策略,它被称为eexi

在证明过程中,我有以下内容,其中目标是存在的,目标属性是假设之一

H : x ==> y
...
______________________________________(1/2)
exists t : tm, x ==> t
我知道我能做到。应用H.来证明当前目标,但我想知道是否有更聪明的策略可以直接使用假设来证明存在目标,比如
eapply H

因为这是一个统一,所以不必在
exists X中编写
X
部分就好了。


如果这样的策略不存在,我怎么写呢?

有这样一种策略,它被称为
eexists
。 这正是你所期待的


示例用法:

Variable T : Type.
Variable R : T -> T -> Prop.

Theorem test : forall x y, R x y -> exists t, R x t.
Proof.
  intros. eexists. apply H.
Qed.

存在这样一种策略,它被称为
eexists
。 这正是你所期待的


示例用法:

Variable T : Type.
Variable R : T -> T -> Prop.

Theorem test : forall x y, R x y -> exists t, R x t.
Proof.
  intros. eexists. apply H.
Qed.

谢谢你的回答。似乎
eexists
exists
相同。我仍然要做
eexisty。应用H
,需要计算统一,即y我自己。如果我能做一些像
eexists H.
或者仅仅是
eassumption
的事情来完成统一,那就太好了。@tinlyx我添加了一个示例,您不需要指定
y
。谢谢。一个额外的问题。是否有办法避免
应用H
部分?我可以想象像
eassumption
这样的东西会尝试
在每个假设上应用
。我尝试了
假设
,得到了
错误:没有这样的假设。
@tinlyx
eexists。eassumption.
适用于上述示例<代码>eauto。
也有效,顺便说一句。谢谢你的回答。似乎
eexists
exists
相同。我仍然要做
eexisty。应用H
,需要计算统一,即
y我自己。如果我能做一些像
eexists H.
或者仅仅是
eassumption
的事情来完成统一,那就太好了。@tinlyx我添加了一个示例,您不需要指定
y
。谢谢。一个额外的问题。是否有办法避免
应用H
部分?我可以想象像
eassumption
这样的东西会尝试
在每个假设上应用
。我尝试了
假设
,得到了
错误:没有这样的假设。
@tinlyx
eexists。eassumption.
适用于上述示例<代码>eauto。
也可以,顺便说一句。什么是
eapply
?什么是
eapply