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