Булева алгебра може бути виражена в нетипізованому обчисленні лямбда (наприклад) таким чином.
true = \t. \f. t;
false = \t. \f. t;
not = \x. x false true;
and = \x. \y. x y false;
or = \x. \y. x true y;
Також булева алгебра може бути закодована в System F таким чином :
CBool = All X.X -> X -> X;
true = \X. \t:X. \f:X. t;
false = \X. \t:X. \f:X. f;
not = \x:CBool. x [CBool] false true;
and = \x:CBool. \y:CBool. x [CBool] y false;
or = \x:CBool. \y:CBool. x [CBool] true y;
Чи є спосіб виразити булеву алгебру просто набраним лямбдальним численням? Я припускаю, що відповідь "НІ". ( Наприклад, попередник та списки не є представленими просто набраними лямбда-численнями .) Якщо відповідь дійсно НЕ, чи є просте інтуїтивне пояснення, чому неможливо кодувати булеві просто введені лямбда-числення?
ОНОВЛЕННЯ: Ми припускаємо, що існують базові типи.
ОНОВЛЕННЯ: Негативну відповідь із поясненням знайдено тут (коментар "Ось ескіз на доказ, який показує, що в простому введенні обчислення лямбда з продуктами та нескінченною кількістю базових типів немає булевих".) Це те, що я шукав.