在 Coq 中将 `not A` 转换为 `A -> False`
Transform `not A` into `A -> False` in Coq
我想通过假设 A
并找到 False
来证明 not A
。将目标 not A
转换为 A -> False
的最短且最通用的方法是什么?
我尝试了 exfalso
,但它并没有将 A
添加到我的假设中...
最快的方法是做intro x
,它会给你x : A
。
not A
其实定义为A -> False
,所以已经是你想要的了:
not = fun A : Prop => A -> False
: Prop -> Prop
如果您真的想将目标更改为 A -> False
,unfold not
就可以了。
最后exfalso
是用False
替换当前目标的策略。目的是声明当前上下文不一致。
我想通过假设 A
并找到 False
来证明 not A
。将目标 not A
转换为 A -> False
的最短且最通用的方法是什么?
我尝试了 exfalso
,但它并没有将 A
添加到我的假设中...
最快的方法是做intro x
,它会给你x : A
。
not A
其实定义为A -> False
,所以已经是你想要的了:
not = fun A : Prop => A -> False
: Prop -> Prop
如果您真的想将目标更改为 A -> False
,unfold not
就可以了。
最后exfalso
是用False
替换当前目标的策略。目的是声明当前上下文不一致。