Coq 证明道具中的两个居民不相等?
是否可能有一些Coq 证明道具中的两个居民不相等?,coq,proof,formal-verification,Coq,Proof,Formal Verification,是否可能有一些A,B:Prop,以便我们能够提供以下证明: Section QUESTION. A: Prop := <whatever you want> . B : Prop := <whatever you want> . Theorem ANeqB: A <> B. Proof. <a proof of this fact> Qed. 部分问题。 A:道具:=。 B:道具:=。 定理ANeqB:ab。 证明。 Qed。 直觉上,我认为不
A,B:Prop
,以便我们能够提供以下证明:
Section QUESTION.
A: Prop := <whatever you want> .
B : Prop := <whatever you want> .
Theorem ANeqB: A <> B.
Proof.
<a proof of this fact>
Qed.
部分问题。
A:道具:=。
B:道具:=。
定理ANeqB:ab。
证明。
Qed。
直觉上,我认为不是,因为这会让我们“区分”证据,但如果不计算A
或B
,就不可能做到这一点。然而,Coq明确禁止我们检查证明,因为它们必须在运行时擦除。因此,只有Prop
应该能够检查Prop
(由于擦除),但检查始终是计算性的,因此Prop
无法检查Prop
。因此,没有任何东西可以检验Prop
,上述定理ANeqB
无法证明
- 如果我上面的解释不正确,你能解释一下原因吗
- 如果定理ANeqB不能被证明,你能给我一个证明这个事实的证据吗
- 如果定理
可以被证明,你能告诉我我的直觉哪里失败了吗ANeqB
公理证明无关性:forall(p:Prop)(p1p2:p),p1=p2.
),那么定理ANeqB
就不能在Coq中得到证明——如果可以的话,允许证明无关性作为一个额外的公理就不合理了
这转移了我的问题,然后:
- 是否有可能为一些居民
A
和B
证明ANeqB
?(proof\u unrelevance
更强:它表明我们无法证明A B
[实际上,对于所有A,B
,我们能证明A=B
]的陈述越有力。)
- 如果没有,有人能提供一个证据,证明在Coq基于公理的系统中,
ANeqB
不能被证明吗
我想你可能在想别的事情<代码>道具
本身并非证明无关。它肯定有可区分的元素。例如,True-False
Section QUESTION.
Definition A: Prop := True.
Definition B : Prop := False.
Theorem ANeqB: A <> B.
Proof.
unfold A, B.
intro p.
destruct p.
exact I.
Qed.
End QUESTION.
p
和q
本身不是Prop
的元素,而是Prop
的某些元素的元素。谢谢,这完美地回答了这个问题!我发布了另一个问题,如果您感兴趣,您可能会对此有所了解:
Axiom proof_irrelevance: forall (P: Prop) (p q: P), p = q.