Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Strange subtyping

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Strange subtyping


Chronological Thread 
  • From: Helmut Brandl <helmut.brandl AT gmx.net>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Strange subtyping
  • Date: Fri, 15 Jun 2018 13:22:12 -0500
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=helmut.brandl AT gmx.net; spf=Pass smtp.mailfrom=helmut.brandl AT gmx.net; spf=None smtp.helo=postmaster AT mout.gmx.net
  • Ironport-phdr: 9a23:pBTbSR/jQOqLbP9uRHKM819IXTAuvvDOBiVQ1KB40ukcTK2v8tzYMVDF4r011RmVBdids6oMotGVmpioYXYH75eFvSJKW713fDhBt/8rmRc9CtWOE0zxIa2iRSU7GMNfSA0tpCnjYgBaF8nkelLdvGC54yIMFRXjLwp1Ifn+FpLPg8it2O2+553ebx9UiDahfLh/MAi4oQLNu8cMnIBsMLwxyhzHontJf+RZ22ZlLk+Nkhj/+8m94odt/zxftPw9+cFAV776f7kjQrxDEDsmKWE169b1uhTFUACC+2ETUmQSkhpPHgjF8BT3VYr/vyfmquZw3jSRMMvrRr42RDui9b9mRwPnhykaNzA28m/ZhMNzgqJVvhyvoAdyw5LNYIGQKPZ+fr/RcNEcSGFcXshRTStBAoakYoUNEeUBOeNYr5Thp1ATsBa+HxOjBOXyxT9Mm3T72q063PolEQHDwQwgA8gCv2/OrNrvMqcdTOS1wbLHzTXGYPJawzH955bUch04p/yHQLF+cdLJxEUxCg/JkE+cpZL7Mz6XzOgBrmqW4/B+We6yk2IrtgJ8rzq1yssyloXEhJgZxk7Z+Slj3oo5O921RUhmatC+CpRQrTuVN45uT8MiXW5ovCE6x6UDuZ68YSgK1I4rxxHaa/2IaYSI5AzsVPqJLTd5gnJqZq6/ig6s/US91OHwTNe43EhIoyZfj9XBtGoB2wLO5sSfT/ty5Eah2TKB1wDJ7eFEJFg5larFJJ4lx74wi4YTvV7YES/sgkr2irKZdkE/9+in7uTmba/qppmCOI9okg3+KLghmtSjAeQkNQgDR3SU+eOl1LH64UL5RKhKgeYtn6nCsJHaINwbqbSjDw9U1IYj8Re/AC283NQWh3lUZG5CLRmAls3iP0zECPH+F/a2xVq2wxlxwPWTHrDlB4jRZlLZmbHtef4p60NYzRcvi9pF7pRYDpkOJeK1XELt4o+LRiQlOhC5lr60QO520ZkTDDrWU/2pdZjKuFrN3doBZuyFZYsbojH4eqoq4u6oi3IlywZEIfuZmKAPYXX9JcxIZl2DaCu+jdIRV2EHolhmFbG4uBi5STdWIk2Kcec86zU8Ud70CIDeWsaihazH2iqnTMVb

Thanks for all your comments and hints. I am not yet sure if the CIC is not
more complicated than necessary.

To the best of my understanding the main drivers for the type system of Coq
are

- consistency
- strongly normalizing
- expressiveness

In order to be consistent only the top type of a type hierarchy can be
impredicative. This requirement should be satisfied by using

- Prop < Set < Type(1) < Type(2) < …. (Subtype relation)

- Prop : Set : Type(1) : Type(2) : …. (Axioms)

where ‘Set’ is treated as a shorthand for ‘Type(0)'.

This is nearly the same as described in the reference manual except that the
reference manual excludes ‘Prop: Set’ which has already been remarked by
Matthieu. If ‘Prop: Set’ were valid then the type system would be simpler. We
just have a linearly ordered type hierarchy both in the axioms and the
subtype relation, the top type is impredicative and represents propositions
and the second type represents programs.


Furthermore the product rules would be simpler and probably the template
polymorphism rule would not be necessary because Type(0) already represents
Set.

Inductive list (A:Type): Type := nil: list A | cons: forall (hd:A) (tl:list
A), list A

with the consequence that list of propositions and all other types are well
typed and that ‘list nat’ has type Set without any sort replacement.

Is this reasoning correct or have I overlooked something important?

Regards
Helmut




Archive powered by MHonArc 2.6.18.

Top of Page