簡體   English   中英

使用Coq Proof Assistant證明(p-> q)->(〜q->〜p)

[英]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,在這里您將不得不通過結合PimpQPtrue來證明它。盡管這很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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM