Pencocokan pola tingkat tinggi adalah masalah yang tidak dapat ditentukan. Itu berarti tidak ada algoritma yang, diberikan persamaan a => b
, di mana a
dan b
adalah istilah terbuka pada kalkulus lambda yang diketik sederhana, menemukan substitusi S
sehingga aS => bS
, di mana =>
singkatan "memiliki bentuk normal Bn yang sama". Namun, manusia dapat menyelesaikan masalah itu secara efisien. Misalnya, diberikan masalah berikut:
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))))))
Setiap manusia dengan pengetahuan yang cukup tentang kalkulus lambda akan dapat memperhatikan F
adalah fungsi "ganda" untuk jumlah gereja, dengan cepat datang dengan solusi yang
F = (λ a b c . (a b (a b c)))
Pertanyaan saya adalah: jika masalah itu tidak dapat dipastikan, bagaimana manusia dapat dengan cepat dan mudah menyelesaikannya?