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.