@MISC{Barendregt94discriminatingcoded, author = {Henk Barendregt}, title = {Discriminating Coded Lambda Terms}, year = {1994} }
Bookmark
OpenURL
Abstract
A coding for a (type-free) lambda term M is a lambda term pMq in normal form such that M (and its parts) can be reconstructed from pMq in a lambda definable way. Kleene[1936] defined a coding pMq K and a self-interpreter E K 2 ffi such that 8M2 ffi E K pMq K = M: (1) In this style one can construct a discriminator \Delta K 2 ffi such that 8M;N2 \Delta K pMq K pNq K = ae true (j xy:x) if M j N ; false (j xy:y) else. (2) The terms E K and \Delta K are complicated. They depend on the lambda definability of functions on the integers dealing with coded syntactic properties. Inspired by a construction of P. de Bruin (see Barendregt [1991]) Mogensen [1992] constructed a different coding pMq and an efficient self-interpreter E2 ffi such that 8M2 EpMq = M: (3) This construction does not use an encoding of syntax as numbers but directly as lambda terms. This results in a much less complex E. Mogensen's construction was simplified even further in Bohm et al. [19...