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: Abhishek Anand <abhishek.anand.iitg AT gmail.com>
  • To: coq-club <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] Why do we have "Prop < Set" ? Why not just "Prop ≤ Set" ?
  • Date: Wed, 18 Jan 2017 11:10:05 -0500
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=abhishek.anand.iitg AT gmail.com; spf=Pass smtp.mailfrom=abhishek.anand.iitg AT gmail.com; spf=None smtp.helo=postmaster AT mail-qk0-f175.google.com
  • Ironport-phdr: 9a23:hQcvaRRBzak6GO/drbcH16YWjdpsv+yvbD5Q0YIujvd0So/mwa67bReN2/xhgRfzUJnB7Loc0qyN4vymAj1Lsc3J8ChbNscTB1ld0YRetjdjKfDGIHWzFOTtYS0+EZYKf35e1Fb/D3JoHt3jbUbZuHy44G1aMBz+MQ1oOra9QdaK3Izkn9y1rpbUekBDgCe3Ked5KwzzpgHMvOEXh5FjI+A/0E2ajGFPfrF/z2NpPlKenF7V4M628NY3+i5Quukh+s0GWKPzeah+TL1EAxwpNmk04IvgshyVHljH3WcVTmhDykkAOAPC9hyvBpo=

Going by the general rule that Ui:Uj if i<j, I suspect that Prop < Set would allow the following:
Check (Prop:Set)
which fails in Coq 8.5pl3.

So the stronger constraint may allow some new well-typed terms and potentially complicate arguments about normalization/consistency etc.




On Wed, Jan 18, 2017 at 9:27 AM, Matej Kosik <5764c029b688c1c0d24a2e97cd764f AT gmail.com> wrote:
Hi,

I have noticed that in Coq, we have the following universe constraint:

  Prop < Set

I am wondering what is the reason for that?
Wouldn't

  Prop <= Set

suffice in this case?

The code that makes the decision is here:

  https://github.com/coq/coq/blob/trunk/kernel/uGraph.ml#L716

I wonder whether it is necessary to do:

  enforce_univ_lt Level.prop Level.set empty

as now, or we could simply do

  enforce_univ_leq Level.prop Level.set empty

I've created an experimental branch where I did the change:

  https://github.com/matej-kosik/coq/commit/2fcbb0ced3bc32210ae9fbf4acc40804841c9200

ran some tests:

  https://ci.inria.fr/coq/view/coq-contribs/job/coq-contribs/653/console
  https://ci.inria.fr/coq/view/opam/job/opam-install/22/console

and I do not see any breakage but the major question is, would this kind of change make Coq inconsistent
(enable us to prove False)
or not?

Thank you in advance for any insight on this.
--
Matej Košík




Archive powered by MHonArc 2.6.18.

Top of Page