簡體   English   中英

證明 Prop 中的兩個居民不相等?

[英]Prove two inhabitants in Prop are not equal?

是否有可能有一些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.

直覺上,我認為不會,因為這可以讓我們“區分”證明,但是如果不計算AB就不能做到這一點。 然而,Coq 明確禁止我們檢查證明,因為它們必須在運行時被擦除。 因此,只有Prop應該能夠檢查Prop (由於擦除),但檢查始終是計算性的,因此Prop不能檢查Prop 因此,沒有任何東西可以檢查Prop ,並且無法證明上述定理ANeqB

  • 如果我上面的解釋是不正確的,你能解釋一下為什么會這樣嗎?
  • 如果定理ANeqB不能被證明,你能給我指出這個事實的證明嗎?
  • 如果定理ANeqB可以被證明,你能告訴我我的直覺在哪里失敗嗎?

編輯:

令我震驚的是,由於我們可以將證明無關性作為一個額外的公理( Axiom proof_irrelevance: forall (P:Prop) (p1 p2:P), p1 = p2. ),因此無法在 Coq 中證明定理ANeqB --- 如果可以,但是允許proof_irrelevance作為額外的公理是不合理的。

這改變了我的問題,然后:

  • 是否可以證明某些居民ABANeqB proof_irrelevance更強:它表明我們不能證明A <> B [實際上,我們可以證明A = B的更強有力的陳述] 對於所有A, B
  • 如果不是,有人可以提供證明ANeqB不能在 Coq 的基於公理系統中得到證明嗎?

我想你可能在想別的東西。 Prop本身並不是無關緊要的證據。 它肯定有可區分的元素。 例如, 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.

相反,可能證明無關的是Prop元素 在公理中

Axiom proof_irrelevance: forall (P: Prop) (p q: P), p = q.

pq本身不是Prop Prop某些元素的元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM