如何在Coq中解构函数(如H:~(forall x:x,px))?

如何在Coq中解构函数(如H:~(forall x:x,px))?,coq,Coq,我一直在努力证明一个Coq中的引理,就像这样 Goal forall (X : Type) (p : X -> Prop), (exists x, ~ p x) <-> ~ (forall x, p x). 我被这个卡住了 1 subgoal X : Type p : X -> Prop H : ~ (forall x : X, p x) ______________________________________(1/1) exists x : X, ~ p x

我一直在努力证明一个Coq中的引理,就像这样

Goal forall (X : Type) (p : X -> Prop), 
(exists x, ~ p x) <-> ~ (forall x, p x).
我被这个卡住了

1 subgoal
X : Type
p : X -> Prop
H : ~ (forall x : X, p x)
______________________________________(1/1)
exists x : X, ~ p x

现在,我的想法是,也许我可以用某种方式破坏H来进步。或者有更好的方法来完成这件事?请帮忙,提前谢谢

是的,你需要一个额外的公理 如果您这样做:

Require Import Classical.
Check classic.

现在使用
classic
,您可以进行证明。

您需要经典逻辑来证明这个方向(排除中间或双重否定消除定律或任何其他等效公式)。因此,我可以尝试断言一个新函数,该函数将H转换为所有x:x,~px?这与:@Lolo有关,那么这是否意味着这是不可证明的?在Coq的基本逻辑中,这是不可证明的,但是,用排除中间来扩展逻辑并证明它不是问题;但是有道理,Coq的基本逻辑更一般,因为它也容纳了与经典公理相冲突的世界。
Require Import Classical.
Check classic.