在 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 : Anot A其实定义为A -> False,所以已经是你想要的了:

not = fun A : Prop => A -> False
     : Prop -> Prop

如果您真的想将目标更改为 A -> Falseunfold not 就可以了。

最后exfalso是用False替换当前目标的策略。目的是声明当前上下文不一致。