The goal of this paper is to examine the conditions of validity for the rule of β-conversion in TIL, which is a hyperintensional, typed λ-calculus of partial functions. The rule of β-reduction is a fundamental computational rule of the λ-calculi and functional programming languages. However, it is a well-known fact that the specification of this rule is ambiguous (see, e.g., Plotkin 1975 or Chang & Felleisen 2012). There are two procedurally non-equivalent ways of executing the rule, namely β-conversion ‘by name’ and β-conversion ‘by value’. In the λ-calculi conversion by name is usually applied, though it is known that such a conversion is not unconditionally valid when partial functions are involved. If a procedure that is typed to produce an argument value is improper by failing to produce one, conversion by name cannot be validly applied. On the other hand, conversion by value is valid even in the case of improperness. Moreover, we show that in a typed λ-calculus the specification of λ-closure is also not unambiguous. There is an interpretation of this specification under which β-reduction by name is not valid even when the argument procedure does not fail to produce a value. As a result, we present a universally valid rule of β-reduction by value.
substitution, validity, β-reduction by name, β-reduction by value, λ-Closure, λτ-Closure
*Príspevok je chránený zákonom o autorskom práve a právach súvisiacich s autorským právom (autorský zákon).