[英]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
應該被讀作從X
到Y
的 function ,當你在Prop
時,它應該被讀作X
暗示Y
(盡管 Curry-Howard 這些是相同的)。
當 function 返回Prop
時,它通常被視為謂詞或屬性。 所以forall P: Set -> Prop
可以讀作“對於每個Set
值的屬性......”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.