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.