  We present gradual type theory, a logic and type theory for call-by-name
gradual typing. We define the central constructions of gradual typing (the
dynamic type, type casts and type error) in a novel way, by universal
properties relative to new judgments for gradual type and term dynamism, which
were developed in blame calculi and to state the "gradual guarantee" theorem of
gradual typing. Combined with the ordinary extensionality ($\eta$) principles
that type theory provides, we show that most of the standard operational
behavior of casts is uniquely determined by the gradual guarantee. This
provides a semantic justification for the definitions of casts, and shows that
non-standard definitions of casts must violate these principles. Our type
theory is the internal language of a certain class of preorder categories
called equipments. We give a general construction of an equipment interpreting
gradual type theory from a 2-category representing non-gradual types and
programs, which is a semantic analogue of Findler and Felleisen's definitions
of contracts, and use it to build some concrete domain-theoretic models of
gradual typing.
