Conversation

Both granule and qtt both lack dependent types. Granule has type to kind promotion, and qtt has a sort of useless pi-type, but neither has full blown dependent types. Also, linear types are known to be incompatible with the pi type. I suspect gmtt is incompatible with mltt?
2
1
Also, QTT is full blown dependent types. Their calculus is indeed a minimal calculus, but it doesn't put any restriction, as far as I recall, on dependency. The difference between our work and theirs is that we track data usage in specifications, but they don't, and...
1
2
I guess I must be confused. Here's the syntactic categories from the qtt paper. There are usages and precontexts. Then S, T, U are pretypes, and M, N, O are preterms. I don't see type variables defined for pretypes, so are variables not used on the type level?
Image
3
Computational variables, `x`, can appear in the type `El(M)`, but it seems there isn't a `Type` universe, and so there is no polymorphism in this setting, which makes sense, as it would just add to the complexity of the paper.
1
It avoids an ambiguity between `El((x : A) -> B)` and `(x : El(A)) -> El(B)` when defining the interpretation of the syntax -- if the `El` is slient, these correspond to two different typing derivations that you need to make sure have the same interpretation.
1
2
OTOH, I believe that there have been recent advances in techniques to avoid this problem -- Shulman and Lumsdaine's work on coherence, I think. In some cases, I think an explicit "universe decoder" has readability advantages too.
1
1
Show replies