Il faut que tu m'aide un peu, je suis complétement largué, juste un petit indice
Les fonctions calculables sont, entre autres, equivalentes a:
- des machines turing
- des programmes WHILE
- des programmes de registres
- des fonctions partielles mu-recursives
Il suffit donc de considerer une de ces categories, les autres sont equivalentes (ce qu'on demontre en informatique theorique).
Prenoms donc les fonctions partiells mu-recursives. En toute generalite, il faudrait considerer des functions f : N^k -...-> N,
ou bien des fonctions de strings f: (\Sigma^*)^k -...-> \Sigma^*. Mais il existe un isomorphisme entre les fonctions de strings
et celles de N^k, donc on se concentre sur celles de N^k. Grace a la fonction de Cantor, qui transforme deux chiffres un
un seul chiffre, <x,y> = "un chiffre unique qui represente x et y", on peut donc se limiter aux fonctions f: N -...-> N.
On peut toujours representer une fonctions f: N-...->N qui est partielle et mu-recursive par un string de longueur finit. A cause
de ca, on peut denombrer toutes les fonctions f: N-...->N de l'ensemble P(1) (l'ensemble des fonctions mu-recursives partielles
d'un argument) comme suit:
\psi(0): la 0-ieme fonction de P(1),
\psi(1): la 1-ere fonction de P(1),
etc...
Par exemple, \psi(0)(25) = f(25), si f est la 0-ieme fonction de P(1), si f(25) est definit.
A ce niveau la, tu peux utiliser la methode de diagonalisation pour definir une fonction qui n'est pas dans P(1).
Essayes le...