我试图证明forall P Q R : Prop, P -> Q -> (P -> Q -> R) -> R
。我的证明如下。
Goal forall P Q R : Prop, P -> Q -> (P -> Q -> R) -> R.
Proof.
intros P Q R H1 H2 H3.
apply H3 in H1.
exact H1.
exact H2.
Qed.
在H1中应用H3时,将出现两个目标。但是,我想像apply H3 in H1 and H2
更直接地获得R。但是我找不到这样的方法。我该如何实现?
我已经知道以下内容也可以。但这不是我想要的。我不想增加目标。
Goal forall P Q R : Prop, P -> Q -> (P -> Q -> R) -> R.
Proof.
intros P Q R H1 H2 H3.
apply H3.
exact H1.
exact H2.
Qed.
答案 0 :(得分:4)
您可以直接将H1
和H2
应用于H3
,而无需使用apply
策略。
您的H3
的类型为P -> Q -> R
(该函数接受P
和Q
的证明,并返回R
的证明)。因此,表达式H3 H1 H2
的类型为R
。
通过此操作,您可以将证明简化为以下内容:
Goal forall P Q R : Prop, P -> Q -> (P -> Q -> R) -> R.
Proof.
intros P Q R H1 H2 H3.
apply (H3 H1 H2).
Qed.
实际上,您的证明与上述证明完全相同,因为所有apply
战术所做的都是将函数应用于参数。