Musteranpassung höherer Ordnung ist ein unentscheidbares Problem. Das heißt es gibt keinen Algorithmus, der eine Gleichung gegeben a => b
, wo a
und b
sind offen Begriffe auf dem einfach Lambda - Kalkül eingegeben hat , findet eine Substitution , S
so daß aS => bS
, wo =>
steht für „die gleiche Bn Normalform“. Der Mensch kann dieses Problem jedoch effizient lösen. Zum Beispiel mit dem folgenden Problem:
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))))))
Jeder Mensch mit ausreichendem Wissen über die Lambda-Rechnung wird bemerken können, dass F
die "doppelte" Funktion für Kirchenzahlen schnell mit der Lösung kommt, die
F = (λ a b c . (a b (a b c)))
Meine Frage ist: Wenn dieses Problem unentscheidbar ist, wie kann es der Mensch schnell und mühelos lösen?