Definition 1.3.3 (Full STlambdaC). The types of the full simply typed λ-calculus are generated by the following grammar:

Π:=U|ΠΠ|Π×Π|Π+Π|0|1,

where U is a set of type variables (usually countable).

Its terms are given by ΛΠ given by:

ΛΠ:=V|λV:Π.ΛΠ|ΛΠΛΠ|Π1(ΛΠ)|Π2(ΛΠ)|ι1(ΛΠ)|ι2(ΛΠ)|case(ΛΠ;V.ΛΠ;V.ΛΠ)||!ΠΛΠ,

where V is an infinite set of variables, and is a constant.