Đại số Boolean có thể được biểu thị bằng phép tính lambda chưa được xử lý theo (ví dụ) theo cách này.
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;
Ngoài ra đại số boolean có thể được mã hóa trong Hệ thống F theo cách này :
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;
Có cách nào để biểu thị đại số boolean trong phép tính lambda được gõ đơn giản không? Tôi cho rằng câu trả lời là KHÔNG. ( Ví dụ: Người tiền nhiệm và danh sách không thể biểu thị được trong phép tính lambda đơn giản .) Nếu câu trả lời là KHÔNG thực sự, có một lời giải thích trực quan đơn giản, tại sao không thể mã hóa booleans trong phép tính lambda được gõ đơn giản?
CẬP NHẬT: Chúng tôi giả định rằng có các loại cơ sở.
CẬP NHẬT: Câu trả lời tiêu cực với lời giải thích đã được tìm thấy ở đây (Nhận xét "Đây là bản phác thảo bằng chứng cho thấy phép tính lambda được gõ đơn giản với các sản phẩm và vô số loại cơ sở không có booleans.") Đây là những gì tôi đang tìm kiếm.