假设对矛盾的证明否定

时间:2012-09-26 20:06:43

标签: coq

我有一堆规则,这基本上要求某些命题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 *)

有人可以确认我是否以正确的方式解决这个问题(否则,我应该怎么做?)

1 个答案:

答案 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.

我认为这应该有用。