Для кодирования значений true и false можно использовать любые неравные лямбда-термы, но удобнее определить их следующим образом:
true λх у. х
false λх у. у
Используя эти определения, можно определить условное выражение:
if Е then E1 else Е2 Е Е1Е2.
Действительно при Е = true имеем:
if true then E 1 else E 2 true E 1 E 2
= (λx у. х) E 1 E 2
= E 1
а при Е = false получаем
if false then E 1 else E 2 = true E 1 E 2
Определим стандартные логические операторы:
not р if р then false else true
p and q if p then q else false
p or q if p then true else q