Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Why do we have "Prop < Set" ? Why not just "Prop ≤ Set" ?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Why do we have "Prop < Set" ? Why not just "Prop ≤ Set" ?


Chronological Thread 
  • From: Matej Kosik <5764c029b688c1c0d24a2e97cd764f AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Why do we have "Prop < Set" ? Why not just "Prop ≤ Set" ?
  • Date: Thu, 19 Jan 2017 23:04:28 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=5764c029b688c1c0d24a2e97cd764f AT gmail.com; spf=Pass smtp.mailfrom=5764c029b688c1c0d24a2e97cd764f AT gmail.com; spf=None smtp.helo=postmaster AT mail-wm0-f41.google.com
  • Ironport-phdr: 9a23:onuojRWrpei9L9MhVL3HuFiFte/V8LGtZVwlr6E/grcLSJyIuqrYbBaPt8tkgFKBZ4jH8fUM07OQ6PG8HzBZqs/d7zgrS99lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBoKevrB4Xck9q41/yo+53Ufg5EmCexbal8IRiyogjdrMYbjZZtJqosxRbEoGZDdvhLy29vOV+dhQv36N2q/J5k/SRQuvYh+NBFXK7nYak2TqFWASo/PWwt68LlqRfMTQ2U5nsBSWoWiQZHAxLE7B7hQJj8tDbxu/dn1ymbOc32Sq00WSin4qx2RhLklDsLOjgk+2zRl8d+jr9UoAi5qhJi3YDUboGbOvlwcKzTctwVR3ZOUMlKWixdAY6xdZcDA/YPMOtaqYT2ulsArQG5BQmpHO7hzSVHhmPo0q04zu8vFAbG3BchH9INrX/Zq9X4OaUTXO260KbE0SvPYvdN1jr864XFcQwureyQUr5sbMXd10YiGBnbglqOrYHoPS+a2fkPvmWa4OdgW/mii2Eiqw5rozivwt0ghZXOhoIQ013J8zhyzoUtJdCgSkN2bsSoHIZOuyyaLYd7Qd0uT3tntSon0rEKp4O3cSYQxJko2hLTcf2KfoaS7h7+SeqcJypzimh/d7KlnRmy9FCtyu3iWcmw11ZHti9FncPNtnAJzhDS5M2HRudk8kev1juDyhrf6u5DIUAzmqrbL4AuzqQsmZoUtETPBi72mEPog6+Kbkgp+Oel5/76brn4ppKQLYx5hh/kPqkhh8CzGeE4PRIPX2if9+S8zrrj/UjhTbhKjPA7k6bUv4zGKcgFoqO2GA5Y34Ug5hmjEjupzMgUkmQZIF9KYh2LkZbmNlXMLf/kEPiygVWhnThlx/3dMb3hB4/CLnnHkLv7Ybl97EtcxBIpzd9D/5JUFq0BIPXrV0Dts9zYFwY1PBCww+b6E9pwzZgeWGKKAq+BKqzeq16I5uQ1I+mNfoAZojj9K+J2r8Lp2HQ+gBoWebSj9ZoRcnGxWPp8cGuDZn+5p94dHGVCnQ0lTe+i3ADdD2JYPyzjVfxstjpiA9qqV9vKHI3837eNg3nnELVZY2lHDhaHFnK+JNbMYOsFdC/HepwpqTcDT7X0E4I=

On 01/19/2017 05:31 PM, Jonathan Leivent wrote:
>
>
> On 01/19/2017 11:20 AM, Matej Kosik wrote:
>> ...
>> Coq < Check (forall x : Set, x) : Set.
>> Toplevel input, characters 0-32:
>> > Check (forall x : Set, x) : Set.
>> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> Error:
>> The term "forall x : Set, x" has type "Type@{Set+1}"
>> while it is expected to have type "Set".
>>
>>
>> So this is not the counter-example that would show that, when I start
>> "coqtop -noinit" it would be the case that:
>>
>> Set not only has all the inhabitants of Prop, but it also has some such
>> inhabitants, which are not in Prop.
>>
>> (in which case we could relax "Prop < Set" to "Prop ≤ Set").
>>
>> Are there such counter-examples?
>
>
> I think you are missing some implications of what Bruno Barras said here:
>
>> The reason why Prop:Set does not hold (although it is consistent in the
>> default settings of Coq: think of Set as Type(0) and Type(i) as Type(i+1))
>> is that Coq allows to make Set impredicative, and
>> we expect this to be an extension of Coq without the option set (all
>> theorems of Coq without the option are theorems of Coq with it).
>> With this option set and Prop:Set, Coq would then contain system U which
>> is inconsistent.

I was not aware of that but I did not want to suggest modification of Coq so
that

Check Prop : Set.

succeeds.

When reading the above note, I was assuming that Bruno reacts to Théo.
(where Théo expressed his surprise that Set is not the type of Prop)
(which consequently surprised me that he could assume something like that)

The way how I interpreted Bruno's note is that the desirable property

"All theorem provable in Coq if Set is predicative (the default situation)
should also be provable in Coq if Set is impredicative (i.e. if we use
-impredicative-set option)."

would be violated only if it would be the case that "Prop:Set", which is not
what I was suggesting.

My question is, would that property be also violated if we relax "Prop ≤ Set"
only for the case when Set is predicative
and keep it as is (Prop < Set) in case when Set is impredicative?

If yes, is there a theorem such that:
- it is provable if Set is predicative and we have relaxed "Prop < Set" to
"Prop ≤ Set"
- and at the same time non-provable if Set is impredicative and we have kept
the original "Prop < Set" constraint.

>
> (this, by the way, would be a great addition to the FAQ).
>
> Note that when -impredicative-set is used, then
>
> Check (forall x : Set, x) : Set.
>
> succeeds. I think that plus the design constraint on Coq Bruno mentioned
> above - all theorems without -impredicative-set are theorems with
> -impredicative-set - might imply that Prop can't bet <= Set
> even without -impredicative-set.
>
> -- Jonathan



Archive powered by MHonArc 2.6.18.

Top of Page