Suppose that *i* codes a URM program, *M*, that acts on input variables *x* and *y* to compute a function λ*xy*. *f*(*x*, *y*). It is certainly trivial to modify program *M* to compute λ*x*. *f*(*x*, *a*) instead. In computer programming terms, we replace an instruction such as “read *y*” by one that says “*y* ← *a*”.

In URM terms, since the input variables *X*11, *X*111, … are initialized *before* the computation starts, the way to implement the suggested “decommissioning” of *y* as an input variable—opting rather to initialize it with the number *a* explicitly, *first thing* during the computation—is to do the following, assuming *x* and *y* of *f* are mapped to *X*11 and *X*111 of *M*:

(1) Remove *X*111 from the input variables list, *X*11, *X*111, and

(2) Modify *M* into *M*′ by adding the instruction *X*111 ← *a* as the very first instruction.

The mathematical details are as follows.

**2.6.0.31 Definition. (Code Concatenation)**

Start Free Trial

No credit card required