Institut Galil´ee L3 S6 – Ann´ee 2014–2015
Th´eor`eme de la Halte
Soit halt la fonction (math´ematique) qui a comme arguments un programme (ou du moins
son encodage) Pet un arbre det qui indique si JPK(d) converge ou diverge.
Th´eor`eme 1 (Th´eor`eme de la Halte, Turing 1936).halt n’est pas calculable. C’est-`a-dire qu’il
n’existe pas de programme While Htel que JHK=halt.
La preuve se fait par diagonalisation. On suppose que Hexiste et on va utiliser la technique
de la diagonale pour cr´eer une absurdit´e.
Preuves par r´eduction
Pour faire d’autres preuves de non-calculabilit´e, on n’a pas besoin de revenir `a la diagonali-
sation `a chaque fois. L’id´ee est de construire une absurdit´e de la forme :
Si f´etait calculable, alors halt serait aussi calculable.
Une telle implication se construit en faisant une r´eduction de halt vers f. C’est-`a-dire en
trouvant une transformation calculable entre les entr´ees de halt et celles de f. C’est `a dire
qu’il faut une fonction τtelle que f(τ(
·
pPqd
)) = halt(
·
pPqd
). Puisque halt n’est pas
calculable, on ne peut pas calculer le membre droit de cette ´egalit´e. Donc on ne peut pas calculer
non plus le membre gauche. Ce qui implique que soit fsoit τn’est pas calculable.
Autrement dit, si fest calcul´ee par un programme read Xf;Cf;write Yfet que τest
calcul´ee par read Xτ;Cτ;write Yτ, alors on pourrait calculer halt avec le programme :
read Xτ;Cτ;Xf:=Yτ;Cf;write Yf
Comme halt n’est pas calculable, c’est que soit fsoit τne l’est pas non plus. Et donc si τ
est calculable, fne l’est pas.
Ordre sur les fonctions
La notion de r´eduction permet de d´efinir un pr´e-ordre sur les fonctions. On dit que fest plus
facile que g, et on note fvg, si il existe une transformation calculable τtelle que pour toute
entr´ee x, on a f(x) = g(τ(x)). La notation vest faite pour rappeler ≤mais en rempla¸cant le
triangle par un carr´e. C’est pour indiquer que c’est un pr´e-ordre qui se comporte donc beaucoup
comme ≤(en particulier pour la transitivit´e).
Pourquoi cette relation implique que fest plus facile que g? parce que si τcalculable existe,
on a alors la propri´et´e suivante : si gest calculable, alors fest aussi calculable. fest donc plus
facile au sens plus facilement calculable.
`
A l’inverse, si fn’est pas calculable, alors gnon plus (parce que τest calculable). C’est
exactement ce qu’on a fait au d´ebut. On a montr´e (en exhibant τ) que halt videm ; et puis,
puisque halt n’est pas calculable, on a conclut que idem qui est encore plus dure ne peut pas
l’ˆetre.
Th´eor`eme de Rice
D´efinition 1. Soit Aun ensemble de programmes.
On dit que Aest non-trivial si An’est pas vide et que Ane contient pas tous les programmes
(An’est pas vide).
On dit que Aest extensionnel si il ne s´epare pas deux programmes calculant la mˆeme fonction :
Si JPK=JQKalors soit Pet Qsont tous les deux dans A, soit aucun des deux n’est dans A.
Th´eor`eme 2 (Th´eor`eme de Rice).Soit Aun ensemble de programmes non-trivial et extension-
nel. An’est pas calculable.
Jean-Yves Moyen & Luc Pellissier 5