Rappel: Machine RAM
L'exécution d'un programme sur une instance de machine RAM
Pour décrire l'exécution d'un programme, on donne quelques définitions de manière à formaliser les idées assez intuitives liées au déroulement d'un programme.
Définition: On note |
Définition: L'état d'un programme P
de longueur n (ie avec n instructions) est une paire (i, |
Définition: Un calcul P est une liste d'états de P noté S1, S2, S3,....Sk tels que Si+1 est le successeur de Siet Sk est un état terminal. |
ie Si est l'état des variables à la ligne d'instruction numéro i.
Ensembles Calculables, Fonction calculables
Soit P un programme sur une instance
de machine RAM utilisant les variables
X1,X2, X3 ...Xn
(n1) et soient r1,
r2, ...rm des nombres données.
On forme l'état des variables
par les équations:
Soit l'état initial S1=(1,).
Deux cas sont possibles:
1. Il existe un calcul S1, S2, S3,....Sk de P commencant par S1. Dans ce cas notons
P(m)(r1, r2, ...rm) la valeur de Y dans l'état terminal Sk.
2.Il n'existe pas de calcul commencant par S1. Dans ce cas
P(m)(r1, r2, ...rm) n'est pas définie.
Définition: Pour tout programme P, et m |
Théorème: Un ensemble E est calculable si est seulement si E et Ec sont récurssivement énumérable. |
Note: Ec représente l'ensemble complémentaire de E.
Théorème: Si E est calculable alors E est récurssivement énumérable. |
Soit E un ensemble. Un prédicat est une fonction dont
les valeurs osnt prises dans l'ensemble {VRAI,FAUX}. Par exemple
l'ensemble des prédicats définis sur les naturels est donc
: {Nk {VRAI,FAUX} |
k
0}. On définit ici un prédicat
PE:
PE(x) <=> x E
Les prédicats sont des fonctions totales. Ainsi
PE: E={x| P(x)=1}
Définition: L'ensemble E est dit calculable si PE est calculable. |
Définition: Une fonction est dite calculable si elle est partiellement calculable et totale sur Nn où n est le nombre de variable de la fonction. |