

The paper deals with the fundamental computational rule of functional programming languages, namely the rule of beta conversion. This rule specifies the way in which a function f is applied to its argument a. There are two possible ways of executing the conversion, to wit ‘by name’ and ‘by value’. It has been proved that these two ways are not operationally equivalent, and, which is worse, the execution by name is not a denotationally equivalent transformation in the logic of partial functions. Since Transparent Intensional Logic (TIL) is a partial, typed lambda calculus, we examine the validity of the rule in TIL, or rather in its computational variant the TIL-Script language. We show that there are contexts in which the rule by name can be validly applied. The main result is the specification of such contexts, and comparison with the reduction by value. To this end, we present a tool that recognizes a context in which a formal parameter of a given calling procedure occurs and interactively navigates the user to a correct way of reduction. In case of an invalid way the program informs the user about the problem and warns against undesirable side effects. As a result, the program proposes to execute the rule by value.