[英]How to easily prove the following in Coq such as using only assumptions?
[英]How to prove the following in Coq?
如何在 Coq 中證明以下內容?
(p->q)->(~q->~p)
這是我的開始:
Lemma work : (forall p q : Prop, (p->q)->(~q->~p)).
Proof.
intros p q.
intros p_implies_q not_q.
intros p_true.
Lemma work : (forall p q : Prop, (p->q)->(~q->~p)).
Proof.
intros p q.
intros p_implies_q not_q.
intros p_true.
apply not_q.
apply p_implies_q.
auto.
Qed.
一些備注:
每當您有A -> B
形式的目標時,您都可以使用intros H
命令將H: A
添加到您的前提列表中,並留下目標B
。
~P
是P -> False
的語法糖。 因此,如果您的目標是~P
,那么intros H
會將H: P
添加到您的前提列表並將目標減少到False
如果您的目標是Q
並且您有一個前提H: P -> Q
,則執行命令apply H
會將您的目標更改為P
連續的intros
命令可以合並為一個,因此證明可以縮短為
Proof. intros pq p_implies_q not_q p_true. apply not_q. apply p_implies_q. auto. Qed.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.