[英]Proving (p->q)->(~q->~p) using Coq Proof Assistant
我對Coq相當陌生,正在嘗試露絲和瑞恩的樣本引理。 使用自然演繹的證明是微不足道的,這就是我要使用Coq證明的。
assume p -> q.
assume ~q.
assume p.
q.
False.
therefore ~p.
therefore ~q -> ~p.
therefore (p -> q) => ~q => ~p.
我陷入第3行assume p
。
有人可以告訴我從自然推論到Coq關鍵字是否存在一對一的映射?
NNPP
是沒用的!
Theorem easy : forall p q:Prop, (p->q)->(~q->~p).
Proof. intros. intro. apply H0. apply H. exact H1. Qed.
您可以像下面這樣開始您的證明:
Section CONTRA.
Variables P Q : Prop.
Hypothesis PimpQ : P -> Q.
Hypothesis notQ : ~Q.
Hypothesis Ptrue : P.
Theorem contra : False.
Proof.
這是當時的環境:
1 subgoal
P : Prop
Q : Prop
PimpQ : P -> Q
notQ : ~ Q
Ptrue : P
============================
False
您應該能夠繼續進行證明。 它將比您的證明更為冗長(在第4行中,您剛剛寫了q,在這里您將不得不通過結合PimpQ
和Ptrue
來證明它。盡管這很trivial
... :)
實際上並不難。
只是玩耍,引入了雙重否定,事情就自動消失了。 這就是證明的樣子。
Theorem T1 : (~q->~p)->(p->q).
Proof.
intros.
apply NNPP.
intro.
apply H in H1.
contradiction.
Qed.
da!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.