簡體   English   中英

你如何閱讀 coq 量詞`forall P: Set -> Prop`?

[英]How do you read the coq quantifier `forall P: Set -> Prop`?

我是 Coq 的新手,正在閱讀 Mike Nahas 的教程: nahas_tutorial.v 具體來說,我無法理解下面給出的陳述:

Theorem forall_exists : (forall P : Set -> Prop,  (forall x, ~(P x)) -> ~(exists x, P x)).

以上是我目前的解讀,歡迎指正。

語句Set -> Prop是一個可以擴展為forall s: Set, Prop的命題,我將其理解為“對於Set的每個證明(讀取實例),我們也有一個Prop的證明(實例)”。

因此forall P: Set -> Prop可以粗略地理解為“對於每個證明一個集合產生一個命題”。

然后對於(forall x, ~(P x)) ,我的猜測是x被 Coq 推斷為Set類型,並且它被解讀為“每個集合都會產生一個不可證明/錯誤的命題”。

對於~(exists x, P x) ,我讀到因為不存在暗示 P 下存在真命題的集合。

這些似乎在邏輯上是等價的。 我只是在語言上掙扎。 P可以解釋為從集合空間映射到命題空間的 function 嗎? 我使用了“產生”和“暗示存在”這樣的短語; 這個對嗎? 有沒有更正確的方法來 state 這個?

感謝您的任何幫助!

編輯:對於任何有類似問題的人,我的困惑主要是對 Curry-Howard 同構的無知。

我的解釋(也許仍然有點搖擺不定)現在定理讀作“對於每個謂詞(布爾值函數) P范圍內的Set類型的元素,如果P下的每個集合的圖像都是假的,那么沒有集合P產生True 。”

Set -> Prop屬於Type ,而不是Prop 當你在Type時, X -> Y應該被讀作從XY的 function ,當你在Prop時,它應該被讀作X暗示Y (盡管 Curry-Howard 這些是相同的)。

當 function 返回Prop時,它通常被視為謂詞或屬性。 所以forall P: Set -> Prop可以讀作“對於每個Set值的屬性......”

暫無
暫無

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

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