Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Universe Inconsistency?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Universe Inconsistency?


chronological Thread 
  • From: Hugo Herbelin <herbelin AT pauillac.inria.fr>
  • To: sk AT mathematik.uni-ulm.de
  • Cc: coq-club AT pauillac.inria.fr
  • Subject: Re: [Coq-Club] Universe Inconsistency?
  • Date: Sun, 24 Oct 2004 20:15:02 +0200 (MET DST)
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

  Hi,

  This is because type_of is defined at a _fixed_ Type universe, say i:

     type_of : forall T : Type(i), T -> Type(i)

so that it cannot be applied to itself. Indeed (without implicit
arguments) the expression

    type_of T t

  has always type Type(i) whatever t and T are. Then

    type_of Type(j) (type_of T t)

  requires the constraints i=j and j<i which are unsatisfiable.

  If Coq had universe polymorphism (as e.g. the Lego system has), then
type_of would have had type

     type_of : forall T : Type(i), T -> Type(i)

for all i (not for only once). Hence, with universe polymorphism, 
your term would have been typable. But that's not the case of Coq...

  For references on universe polymorphism, you can look at "Type
checking with universes" by R. Harper and R. Pollack in Theoretical
Computer Science 89 (1991).

  Hugo Herbelin




Archive powered by MhonArc 2.6.16.

Top of Page