We generate a constraint set from an expression E by application of the recursive function C (E) to be defined below. Due to the presence of the rule [LIFT] we assume that for each expression there are two constraint variables and related by the constraint . Furthermore, for each binding occurrence of a variable V and each definition of a procedure P there is a constraint variable and , respectively.
The definition of C (E) in Fig. 15 is by cases on E where we omit the obvious
recursive calls
on the subterms. We also use the
abbreviation
for
,
(
).