[Ur] Ur and full dependent types system
Adam Chlipala
adamc at impredicative.com
Sun Jul 31 18:32:04 EDT 2011
Alexander Gryzlov wrote:
> Can anyone tell where in the lambda cube falls Ur's type system? I
> understand that it is not a fully dependently typed system, but what's
> missing? Type-level unions maybe?
>
Many people have very different definitions of "dependent types" than
the one I like to use. My definition is that a type system is dependent
when types can contain values that aren't determined until runtime.
This is a bit imprecise; a heavier definition works in terms of the idea
of a directed graph of the different syntactic classes in a programming
language, with "describes" edges between them. For instance, in ML,
types "describe" expressions, but expressions do not "describe" types.
In contrast, the Calculus of Constructions has just one syntactic class
which is used to describe itself. A type system is dependent when the
"describes" graph has a cycle.
According to this definition, Ur just doesn't have dependent types. No
qualifications about "full" or whatever else.
Ur is a superset of System F_omega. I'm not so familiar with the
details of the lambda cube, but I believe F_omega falls on it. Ur
should fall in the same corner.
More information about the Ur
mailing list