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