Multi-level type theory

Definition. Multi-level type theory is type theory with support for working internally to one or more universes.

This means we can use as the syntax for dependent products internal to a universe.

Figuring out which universe a syntax is supposed to refer to can be straightforward or tricky, depending on the situation; in an ideal case this is done with some, but minimal extra annotation by the user.