繁体   English   中英

如何证明Coq中的逻辑等价?

[英]How to prove logic equivalence in Coq?

我想证明Coq中的以下逻辑等效性。

(对 - > Q) - >(〜Q->〜p)的

这是我尝试过的。 我怎样才能解决这个问题?

Lemma work : (forall p q : Prop, (p->q)->(~q->~p)).
Proof.
intros p q.
intros p_implies_q not_q_implies_not_p.
refine (not_q_implies_not_p).
refine (p_implies_q).
Qed.

有两件事可能会有所帮助。

首先,在您的第二个intros ,第二个假设不是not_q_implies_not_p ,而仅仅是not_q 这是因为我们的目标是(后intros p_implies_q~q -> ~p ,那么另一个调用intros只带来了这一目标的假设: ~q ,和叶~p作为新的目标。

其次,要记住~p仅仅意味着p -> False ,这使我们能够从目标引入另一个假设~p 这也意味着,你可以使用一个类似的前提下~p证明False ,假设你知道p是真的。

所以你的证明应该开始像

Lemma work : (forall p q : Prop, (p->q)->(~q->~p)).
Proof.
  intros p q.
  intros p_implies_q not_q.
  intros p_true.

暂无
暂无

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

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