简体   繁体   中英

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

I'm brand new to Coq and working through Mike Nahas's tutorial here: nahas_tutorial.v . Specifically, I'm having trouble understanding the statement given below:

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

Here's my interpretation so far, corrections welcome.

The statement Set -> Prop is a proposition which can be expanded to forall s: Set, Prop which I understand as "for every proof (read instance) of a Set , we also have a proof (instance) of a Prop ".

Thus forall P: Set -> Prop can be roughly read as "for every proof that a set gives rise to a proposition".

Then for (forall x, ~(P x)) , my guess is that x is inferred to be of type Set by Coq, and that it's read as "every set gives rise to an unprovable/false proposition".

And for ~(exists x, P x) , I read that as there exist no sets which imply the existence of a true proposition under P.

These seem logically equivalent. I'm just struggling with the language. Can P be interpreted as a function which maps from the space of sets to the space of propositions? I've used the phrases "give rise to" and "imply existence of"; is this correct? Is there a more correct way to state this?

Thanks for any and all assistance!

EDIT: For anyone who has a similar question, my confusion mostly amounted to an ignorance of the Curry-Howard isomorphism.

My interpretation (perhaps still a bit shaky) is now that the theorem reads "For every predicate (boolean-valued function) P ranging over elements of type Set , if the image of every set under P is false, then there's no set for which P yields True ."

Set -> Prop belongs to Type , not Prop . When you're in Type , X -> Y should be read as a function from X to Y , and when you're in Prop , it should be read as X implies Y (though by Curry-Howard these are the same).

When a function returns a Prop it's usually considered a predicate or a property. So forall P: Set -> Prop can be read as "for every Set -valued property..."

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM