Logic Elim在Coq证明助手中的双重否定假设?
谁能解释一下为什么我们必须在elim Ha.之后证明Logic Elim在Coq证明助手中的双重否定假设?,logic,coq,proof,Logic,Coq,Proof,谁能解释一下为什么我们必须在elim Ha.之后证明~A 在“elim Ha”之前 之后 这是否意味着~~A true,~A true->A true 据我所知,我只知道规则~E是~A true,A true->False true在Coq中,~p是p->False的符号。如果我没有弄错的话,在形状~P的假设上使用elim与直接使用False\rect(您可以打印False\rect以获取更多信息)作为输入是一样的 这样做,你对Coq说“我知道p成立,所以使用p->False,我可以推导出Fal
~A
在“elim Ha”之前
之后
这是否意味着~~A true,~A true->A true
据我所知,我只知道规则
~E
是~A true,A true->False true
在Coq中,~p
是p->False的符号。如果我没有弄错的话,在形状~P
的假设上使用elim
与直接使用False\rect
(您可以打印False\rect
以获取更多信息)作为输入是一样的
这样做,你对Coq说“我知道p
成立,所以使用p->False
,我可以推导出False
”的证明,它通过矛盾实现了目标。这就是为什么每次您elim
a~P
,Coq都会要求您提供P
的证明。在你的例子中,P
是~A
你想用经典逻辑吗?因为Coq的逻辑默认是直觉的。你需要添加一个公理,使之成为经典<代码>~~A/\~A->A
直观上是有效的,但~~A->A
不是<代码>~(~~A->A)在直觉上是有效的。
1 subgoals
A : Prop
Ha : ~ ~ A
______________________________________(1/1)
A
1 subgoals
A : Prop
Ha : ~ ~ A
______________________________________(1/1)
~ A