A pure type system is a typed lambda calculus specified by a set of sorts , an axiom relation
, and a dependent-product relation
. Its expressions include variables, sorts, applications,
annotated abstractions
,
and dependent products
.
The axiom relation specifies which sorts classify other sorts, while the product
relation specifies admissible domain, codomain, and resulting sorts. Relations need
not be functional.
A legal expression is either the subject or expected type of a derivable judgment in a valid finite context. Full beta reduction includes the rule
The substitution avoids capture, and reductions may also act within abstraction annotations and either component of a dependent product. Weak normalization means that every legal expression in every valid context has some terminating beta-reduction sequence. Strong normalization means that every beta-reduction sequence from every such expression is finite.