Institut Galil´ee L3 S6 – Ann´ee 2014–2015
Calculabilit´e
M´emento
Ensembles
On dit qu’un ensemble Xest un sous-ensemble d’un ensemble Y, ou est inclus ou contenu
dans Y(notation : XY) quand tout ´el´ement de Xest aussi ´el´ement de Y. On d´enote par
l’ensemble vide, qui ne contient aucun ´el´ement.
Dans le cas o`u XYon appelle Y\Xle compl´ement de Xpar rapport `a Y. On dit
simplement “compl´ement de X” et on ´ecrit X, lorsque l’ensemble Yest clairement identifi´e par
le contexte.
Fonctions
Fonctions totales
Une fonction totale est d´efinie par trois choses :
1. son ensemble de d´efinition A, appel´e ´egalement son ensemble de d´epart ou son domaine,
2. son ensemble d’arriv´ee B, appel´e ´egalement son co-domaine,
3. et la donn´ee pour chaque ´el´ement aAde exactement une image de a, ´egalement appel´ee
valeur de la fonction en a, dans l’ensemble d’arriv´ee B.
De fa¸con ´equivalente, une fonction totale fest un sous-ensemble de A×Btel que
existence : pour tout aA, il existe au moins un bBtel que (a, b)f;
unicit´e : pour tout aA, il existe au plus un bBtel que (a, b)f.
On dit que fest d´efinie sur Aet `a valeurs dans Bet on note f:AB; la valeur de fen
aest not´ee f(a).
Si besoin, on note ABou BAl’ensemble des fonctions totales de Avers B.
Injection, surjection, bijection ´
Etant donn´ee une fonction f:AB, on dit que
fest injective si pour tout a, a0A,f(a) = f(a0) implique a=a0,
fest surjective si pour tout bB, il existe au moins un aAtel que f(a) = b,
fest bijective ssi fest injective et surjective.
Composition. Soient f:ABet g:BCdeux fonctions ; la compos´ee de fet de gest
la fonction gf:ACd´efinie par
(gf)(a) = g(f(a)).
Image d’un ensemble. ´
Etant donn´ee une fonction f:ABet un sous-ensemble EA,
l’image de Epar fest l’ensemble des images des ´el´ements de E:
f(E) = {f(e) ; eE}.
De mˆeme, si FB, on note f1(F) l’image r´eciproque de F, c’est `a dire le sous-ensemble
de Aconstitu´e des aAdont l’image est dans F:
f1(F) = {aA;f(a)F}.
Ensemble caract´eristique. Tout sous-ensemble Ed’un ensemble Ad´etermine une unique
fonction χE:A→ {0,1}appel´ee fonction caract´eristique de Edans Aet d´efinie par :
χE(a) = (1 si aE
0 si a /E
R´eciproquement ´etant donn´ee une fonction χ:A→ {0,1}, celle-ci d´etermine une unique
partie Aχde Ad´efinie par :
Aχ={aA;χ(a) = 1}.
Par cons´equent, il y a une bijection entre l’ensemble des fonctions de Adans {0,1}et P(A).
Jean-Yves Moyen & Luc Pellissier 1
Institut Galil´ee L3 S6 – Ann´ee 2014–2015
Fonctions partielles
Une fonction partielle est d´efinie par trois choses :
1. son ensemble de d´epart A,
2. son ensemble d’arriv´ee B, ou co-domaine,
3. et la donn´ee pour chaque ´el´ement aAde au plus une image de adans B.
De fa¸con ´equivalente, une fonction partielle fpeut ˆetre vue comme un sous-ensemble de A×B
tel que
unicit´e : pour tous aA, il y a au plus un bBtel que (a, b)f.
C’est-`a-dire que la seule diff´erence entre une fonction totale et une fonction partielle est que
cette derni`ere ne doit pas satisfaire la propri´et´e d’existence. On note f:ABquand fest
une fonction partielle de Adans B. Pour tout aA, on dit que f(a)converge, not´e f(a), s’il
existe bBtel que (a, b)f, sinon on dit que f(a)diverge, not´e f(a) = ou f(a).
Le domaine d’une fonction partielle f:ABest l’ensemble, not´e dom(f), d’´el´ements
aAo`u f(a) converge :
dom(f) = {aA;f(a)↓}.
Composition. La composition de deux fonctions partielles f:ABet g:BCest
la fonction partielle (gf) : ACd´efinie par
(gf)(a) = (g(f(a)) si f(a)et g(f(a)) ,
sinon.
Cardinalit´e
Nest de cardinal infini 0(“Aleph 0”). C’est le plus petit cardinal infini. Les ensembles en
bijection avec Nsont de cardinal 0et sont dits d´enombrables. N,Z,Qet Dsont d´enombrables.
P(N) n’est pas d´enombrable (Cantor, diagonalisation). C’est ´equivalent `a Rqui n’est donc
pas d´enombrable.
le langage While : syntaxe.
While a un seul type de donn´ees : le type Ddes arbres binaires, d´efini par la grammaire
suivante.
D3d,e::= nil |
·
de
La syntaxe des programmes est donn´ee par la grammaire suivante :
Expressions 3E,F::= X(variable)
|d(constante)
|cons E F (cons)
|hd E (“tˆete” / fils gauche)
|tl E (“queue” / fils droit)
|=? E F (test d’´equalit´e)
Commandes 3C,D::= X:=E(affectation)
|C;D(s´equence)
|while E do{C}
Programmes 3P::=read X;C;write Y
Jean-Yves Moyen & Luc Pellissier 2
Institut Galil´ee L3 S6 – Ann´ee 2014–2015
Sucre syntaxique
false nil
true
·
nil nil
if E then C ´equivaut `a
Z:=E;while Z do{Z:=false;C}
if E then C else D ´equivaut `a
Z:=E;W:=true;
while Z do{Z:=false;W:=false;C}
while W do{W:=false;D}
Listes
La liste des n´el´ements [d1,· · · ,dn] de Dest repr´esent´ee par l’arbre
·
d1·
d2·
.
.
.
·
dnnil
Entiers naturels
Chaque entier nNest repr´esent´e par le “num´eral” nDcomme suit :
0 = nil [ ]
n+ 1 =
·
nil n[nil,· · · ,nil
| {z }
n+ 1 fois
]
S´emantique de While
´
Evaluation des expressions
Une m´emoire σ(ou un ´etat de la m´emoire, en anglais store) est une fonction qui associe `a
chaque variable une valeur, c’est-`a-dire un arbre binaire :
σ:Variables D
La d´efinition de EJEKσest donn´ee par induction structurelle sur Eselon les r`egles suivantes :
EJXKσ=σ(X)
EJdKσ=d
EJhd EKσ=
dsi EJEKσ=
·
de
nil si EJEKσ=nil
EJtl EKσ=
esi EJEKσ=
·
de
nil si EJEKσ=nil
EJcons E FKσ=
·
EJEKσEJFKσ
EJ=? E FKσ=(true si EJEKσ=EJFKσ
false sinon
Jean-Yves Moyen & Luc Pellissier 3
Institut Galil´ee L3 S6 – Ann´ee 2014–2015
S´emantique des commandes
L’´evaluation d’une commande modifie la m´emoire. On assocuie donc `a chaque commande une
fonction des m´emoires vers les m´emoires. Comme une commande peut ne pas terminer (boucle
infinie), il s’agit d’une fonction partielle :
JK:Commandes (emoires emoires)
Quand elle est d´efinie, l’´evaluation des commandes v´erifie les r`egles suivantes :
JX:=EK(σ) = (X7→ EJEKσ
Y7→ σ(Y) si Y6=X
JC;DK(σ) = JDK(JCK(σ)) = JDK(σ0) avec σ0=JCK(σ)
Jwhile E do{C}K(σ) = σsi EJEKσ=nil
Jwhile E do{C}K(σ) = JC;while E do{C}K(σ)
=Jwhile E do{C}KJCK(σ)si EJEKσ6=nil
S´emantique des programmes
La s´emantique du langage While est la fonction :
JK:Programmes (DD)
associant `a un programme P=read X;C;write Y une fonction partielle des entr´ees vers les
sorties d´efinie par
JPK(d) = esi JCK(σX
d) = σet σ(Y) = e
o`u σX
dest la m´emoire initiale de P, qui associe d`a Xet nil `a toutes les autres variables.
Codage de While
pViq= [var, i]
pdq= [quote,d]
pcons E Fq= [cons,pEq,pFq]
phd Eq= [hd,pEq]
ptl Eq= [tl,pEq]
p=? E Fq= [=?,pEq,pFq]
pC;Dq= [;,pCq,pDq]
pwhile E do{C}q= [while,pEq,pCq]
pVi:=Eq= [:=,[var, i],pEq]
pread Vi;C;write Vjq= [[var, i],pCq,[var, j]]
Calculabilit´e
1. Une fonction partielle f:DDest While calculable si et seulement si il existe un
programme While Ptel que f=JPK, c’est-`a-dire que pour tout d,eD:
f(d) =, si et seulement si JPK(d) =.
f(d) = eD, si et seulement si JPKd=eD.
2. Un ensemble ADest While d´ecidable si et seulement si il existe un programme While
Ptel que JPK(d)pour tout dD, et en plus dAsi et seulement si JPK(d) = true. Dans
ce cas, la fonction caract´eristique χAest While calculable.
3. Un ensemble ADest While semi-d´ecidable si et seulement si il existe un programme
While Ptel que pour tout dD,dAsi et seulement si JPK(d) = true (mais Ppeut
diverger sur les entr´ees n’appartenant pas `a A).
4. Un ensemble ADest While ´enum´erable si et seulement si soit A=soit il existe un
programme While Ptel que pour tout dD,JPK(d)et A={JPK(d) ; dD}.
“Semi-d´ecidable” est ´equivalent `a “´enum´erable”. C’est-`a-dire qu’un ensemble est semi-d´ecidable
si et seulement si il est ´enum´erable.
Jean-Yves Moyen & Luc Pellissier 4
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
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
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !