繁体   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