遵循Haskell逻辑,数学和编程之路,您可以找到第48页定理2.12.1 ¬ ? ? ?
及其反义词¬ ? ? ?
该书使用Haskell并假设
? = False
? = True
这将产生Agda类型theorem : (p q : Bool) ? not p ? q
,可以通过轻松证明refl
。
但是,在不假设1和2的情况下可以证明原始定理吗?
试
-- from software foundations (https://plfa.github.io/Negation/) postulate excluded-middle : ? {A : Set} ? A ? ¬ A theorem : ¬ ? ? ? theorem x = {!!}
当然,由于我们无法构建?
,因此不会产生任何解决方案,所以我想需要矛盾的证明吗?另外,我是否假设这假设了排除中间的定律,因此这是附加的假设?
阿格达(Agda)说:
我不确定是否应该使用构造函数refl,因为在尝试解决以下统一问题(推断索引?预期索引)时,我陷入了困境。??在检查表达式时?有类型吗?
谢谢!
这在没有假设的简单阿格达中是可证明的。解决方案是? ? ?
使我们能够将的任何证明?
转化为的证明?
。
open import Data.Unit open import Data.Empty open import Relation.Binary.PropositionalEquality open import Relation.Nullary theorem : ¬ (? ? ?) theorem eq = subst (? A ? A) eq tt