簡體   English   中英

如何在Coq中證明(p-> q)->(〜p \\ / q)

[英]How to prove (p -> q) -> (~ p \/ q) in Coq

我正在嘗試使用公理在Coq中證明(p-> q)->(〜p / q):

Axiom tautology : forall P:Prop, P \/ ~ P.

我試圖通過應用p-> q將〜p / q轉換為〜p / p。 所以做這樣的事情:

Theorem Conversion: forall (p q: Prop),(p -> q) -> (~ p \/ q).
Proof.
  intros p q.
  intros p_implies_q.
  (do something here, change ~p\/q into ~p\/p)
  apply tautology...

但是我不知道該怎么辦。 如果有更好的方法,請告訴我。 謝謝!。

使用tautology一種方法是destruct策略。 這使您可以簡化為p為true和p為非true的情況。

Axiom tautology : forall P:Prop, P \/ ~ P.

Theorem Conversion: forall (p q: Prop),(p -> q) -> (~ p \/ q).
Proof.
  intros p q.
  intros p_implies_q.
  destruct (tautology p) as [p_true | p_not_true].
  - (* prove ~p \/ q using p *)
  - (* prove ~p \/ q using ~p *)
Qed.

您能看到在每種情況下如何證明~p \\/ q嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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