Kết hợp mẫu bậc cao là một vấn đề không thể giải quyết được. Điều đó có nghĩa là không có thuật toán nào, đưa ra một phương trình a => b
, trong đó a
và b
là các thuật ngữ mở trên phép tính lambda được gõ đơn giản, tìm một sự thay thế S
sao cho aS => bS
, có =>
nghĩa là "có cùng dạng Bn bình thường". Tuy nhiên, con người có thể giải quyết vấn đề đó một cách hiệu quả. Ví dụ, đưa ra vấn đề sau:
a = (λt . t
(F (λ f x . (f (f (f x)))))
(F (λ f x . (f (f x)))))
b = (λ t . t
(λ f x . (f (f (f (f (f (f x)))))))
(λ f x . (f (f (f (f x))))))
Bất kỳ người nào có đủ kiến thức về phép tính lambda sẽ có thể nhận thấy F
là hàm "nhân đôi" cho số nhà thờ, nhanh chóng đi kèm với giải pháp rằng
F = (λ a b c . (a b (a b c)))
Câu hỏi của tôi là: nếu vấn đề đó là không thể giải quyết được, làm thế nào con người có thể giải quyết nó một cách nhanh chóng và dễ dàng?