簡體   English   中英

如何在 Coq 中證明以下內容?

[英]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

  • ~PP -> 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.

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