  Classical (or Boolean) type theory is the type theory that allows the type
inference $\sigma \to \bot) \to \bot => \sigma$ (the type counterpart of
double-negation elimination), where $\sigma$ is any type and $\bot$ is
absurdity type. This paper first presents a denotational semantics for a
simplified version of Parigot's lambda-mu calculus, a premier example of
classical type theory. In this semantics the domain of each type is divided
into infinitely many ranks and contains not only the usual members of the type
at rank 0 but also their negative, conjunctive, and disjunctive shadows in the
higher ranks, which form an infinitely nested Boolean structure. Absurdity type
$\bot$ is identified as the type of truth values. The paper then presents a new
deduction system of classical type theory, a sequent calculus called the
classical type system (CTS), which involves the standard logical operators such
as negation, conjunction, and disjunction and thus reflects the discussed
semantic structure in a more straightforward fashion.
