我对Coq很新,我正在尝试Ruth和Ryan的样本引理。使用自然演绎的证明非常简单,这就是我想用Coq证明的。
assume p -> q.
assume ~q.
assume p.
q.
False.
therefore ~p.
therefore ~q -> ~p.
therefore (p -> q) => ~q => ~p.
我被困在第3行assume p
。
有人可以告诉我是否存在从自然扣除到Coq关键字的一对一映射?
答案 0 :(得分:3)
NNPP
没用!
Theorem easy : forall p q:Prop, (p->q)->(~q->~p).
Proof. intros. intro. apply H0. apply H. exact H1. Qed.
答案 1 :(得分:2)
你可以这样开始你的证明:
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
...... :)
答案 2 :(得分:0)
实际上并不那么困难。
刚刚玩过,引入了双重否定,事情自动失败。这就是证明的样子。
Theorem T1 : (~q->~p)->(p->q).
Proof.
intros.
apply NNPP.
intro.
apply H in H1.
contradiction.
Qed.
Ta daaaa!