我有一堆规则,这基本上要求某些命题P永远不会成立。我现在必须使用Coq证明P是假的。为了在纸面上这样做,我会假设P持有然后到达矛盾,从而证明P不能持有。
我不太确定如何假设P代表这个证据,这就是我寻求帮助的地方。 我目前的代码:
Variables {…} : Prop.
Hypothesis rule1 : … .
Hypothesis rule2 : … .
.
.
.
Hypothesis rule6 : … .
Variable s : P. (* Assume that P holds for proof by contradiction *)
(* other Coq commands *)
(* proof is done *)
有人可以确认我是否以正确的方式解决这个问题(否则,我应该怎么做?)
答案 0 :(得分:5)
你想要做的是证明:
Theorem notP := ~ P.
归结为:
Theorem notP := P -> False.
因此,对于P类型的变量,您需要证明目标为False。
我相信你这样做的方式是可以接受的,尽管你可能想把Variable s : p.
放在一个部分中,这样你就永远无法在其他你不想要的地方找到它...
Section ProvingNotP.
Variable p : P.
Theorem notP: False.
Proof. ... Qed.
End ProvingNotP.
我认为这应该有用。