RECHERCHE :
Bienvenue sur le site de Michel VOLLE
Powered by picosearch  


Vous êtes libre de copier, distribuer et/ou modifier les documents de ce site, à la seule condition de citer la source.
 GNU Free Documentation License.

Petit résumé du théorème de Gödel

15 juin 2002

(cf. Complexité et complication)

Le théorème de Gödel [Gödel] a été publié en 1931. Il démontre que si l’on construit un système logique pour formaliser la théorie des nombres entiers, ce système contiendra au moins une formule A qui est vraie mais qui est telle que ni A, ni sa négation non-A ne pourront être formellement démontrées dans le cadre du système.

Russell et Whitehead avaient tenté de fonder l'ensemble de la logique sur une base axiomatique. Gödel a démontré avec son théorème que ce but était hors d'atteinte puisque, quel que soit le nombre (fini) des axiomes retenus pour fonder un système logique, il existera toujours des propositions vraies que l'on ne pourra pas démontrer dans le cadre de ce système. 

Cette découverte a été déchirante pour beaucoup de mathématiciens. "Karl Menger avait commencé sa carrière en s'intéressant à la logique et aux fondements des mathématiques. La publication du fameux théorème d'impossibilité de Gödel lui porta un coup dont il ne se remit jamais. (...) Y penser le déprimait et, alors qu'il me racontait cette histoire, il s'enferma peu à peu dans un silence sombre qui dura jusqu'à la fin du repas" (Herbert Simon, Models of my Life, MIT Press 1996, p. 101).

La démonstration de Gödel est très technique et sa lecture est difficile. Voici une description schématique de son raisonnement, tel qu’il le présente lui-même dans l’introduction de son article :

1) Supposons qu’il existe une Théorie Complète (TC) fondée sur un nombre fini d'axiomes et permettant, si l’on considère une phrase quelconque, de décider sans jamais se tromper si cette phrase est vraie ou non.

2) Considérons la phrase « TC ne dira jamais que la présente phrase est vraie ». Nommons cette phrase G, ce que nous noterons : G = « TC ne dira jamais que G est vraie ».

3) Soumettons G à TC et demandons à TC de dire si G est vraie ou non.

4) Si TC dit que G est vraie, alors G est fausse. Mais alors comme TC a dit que G était vraie, TC a commis une erreur. Cependant par hypothèse TC ne se trompe jamais. Donc TC ne dira jamais que G est vraie.

5) Si « TC ne dit jamais que G est vraie », G est vraie. Mais d'après ce que nous venons de voir TC ne pourra jamais le dire.  

6) Il ne peut donc pas exister de Théorie Complète, c’est-à-dire de théorie permettant, quelle que soit la phrase que l'on considère, de dire si elle est vraie ou non.

Ce raisonnement rappelle le paradoxe fameux qui met en scène un Crétois disant : « Les Crétois ne disent que des mensonges ». 

Application à l'informatique

Un des résultats importants de la théorie de l'informatique ([Sipser] p. 165), c'est qu'il est impossible de concevoir un programme capable de vérifier tous les programmes. Ce résultat est une application du théorème de Gödel. 

Supposons en effet qu'un tel programme P existe. 

1) Si le programme A est juste, P(A) = v (v pour « vrai »). 

2) Soumettons à P le programme G = « P(G) = f » (f pour « faux »).  

3) Si P(G) = v, le programme P(G) = f est faux ; donc P[P(G) = f ] = P(G) = f, ce qui est contraire à l'hypothèse. Si P(G) = f, alors on a P[P(G) = f ] = P(G) = v, ce qui est encore contraire à l'hypothèse. 

4) Ainsi G ne peut pas être vérifié par P. Il ne peut donc pas exister de programme capable de vérifier tous les programmes.

Certes on peut définir des méthodes de vérification efficaces et les outiller de sorte qu'elles soient faciles à utiliser. Mais ces méthodes, aussi efficaces soient-elles, ne garantissent pas que tous les programmes qu'elles valident soient corrects.

Retour à "Sortir de l'embarras"