繁体   English   中英

如何在 Coq 中将 P->Q->R 形式的命题同时应用于两个假设 P 和 Q?

[英]How do I apply the proposition of the form P->Q->R to two hypotheses P and Q simultaneously in Coq?

我试图证明forall PQ 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 时,会出现两个目标。 但是,我想更直接地获得 R ,就像apply H3 in H1 and H2一样。 但是我找不到这样的方法。 我如何实现这一目标?

我已经知道以下也可以。 但这不是我想要的。 我不想增加目标。

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.

您可以自己直接将H1H2应用到H3 ,而无需使用apply策略。

您的H3的类型为P -> Q -> R (一个 function ,它接受PQ的证明并返回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策略所做的都是将 function 应用于参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM