La correspondance de modèle d'ordre élevé est un problème indécidable. Cela signifie qu’il n’existe aucun algorithme qui, étant donné une équation a => b
, où a
et b
sont des termes ouverts sur le calcul lambda simplement typé, trouve une substitution S
telle que aS => bS
, où =>
signifie «a la même forme normale de Bn». Pourtant, les humains peuvent résoudre ce problème efficacement. Par exemple, étant donné le problème suivant:
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))))))
Tout être humain ayant une connaissance suffisante du calcul lambda pourra remarquer F
la fonction "double" des numéros d'église, avec la solution
F = (λ a b c . (a b (a b c)))
Ma question est la suivante: si ce problème est indécidable, comment l’être humain peut-il le résoudre rapidement et sans effort?