Vous êtes sur la page 1sur 9

Math ematique des programmes et programme des math ematiques

Colloque La seconde vie de la logique math ematique E.N.S. 6 Avril 1992

Jean-Louis Krivine
Equipe de Logique math ematique, Universit e Paris VII, C.N.R.S. e-mail krivine@logique.jussieu.fr

Quest-ce que les math ematiques, et pourquoi en fait-on? Voil` a bien une question philosophique fondamentale a ` laquelle tout math ematicien doit faire face un jour ou lautre. Or il se trouve que, dans mon domaine de recherches, a ` la fronti` ere entre la logique math ematique et linformatique, des outils puissants ont et e d ecouverts, gr ace auxquels il me semble possible dapporter une r eponse a ` ce probl` eme. Cest du r esultat de ces r eexions que je vais vous parler ici. Pour attaquer cette question, jemploierai la m ethode habituelle du scientique : se laisser dabord guider par lintuition sans trop se poser de questions, cest-` a-dire armer les choses sans les d emontrer vraiment, simplement parce quelles simposent avec assez de force ; puis en tirer des cons equences, et voir si c a marche. Comme on dit famili` erement, c a passe ou c a casse! Je partirai de lid ee ou plut ot de la constatation suivante : quand on fait de la recherche math ematique, on a toujours limpression dexplorer une r ealit e pr eexistante, et non pas de cr eer quelque chose ex nihilo. Prenons un exemple tir e de la th eorie des nombres, le c el` ebre th eor` eme des nombres premiers. Supposons que je cherche un equivalent du ni` eme nombre premier. Je vais commencer par faire des exp eriences, calculer le 100i` eme nombre premier (541), puis le 1000i` eme (7919), le 2000i` eme (17389), le 10000i` eme (104729) si jai beaucoup de courage. Ensuite, jexaminerai les r esultats, et mon intuition, ou mon exp erience me sugg` erera la formule n log(n). Je voudrai alors men assurer, cest-` a-dire d emontrer cette formule, soit par mes propres moyens, soit en cherchant dans la litt erature. Au bout du compte, l equivalent n log(n) se r ev` elera exact. Y a-t-il ici la moindre di erence avec la d emarche du physicien qui cherche une loi naturelle? Non : tout au long de ce travail, jamais le moindre doute ne maura eeur e sur la r ealit e de ce que je consid erais avec tant dattention, et qui ma demand e tant deorts. Mais dailleurs, qui peut s erieusement douter de la r ealit e de ces objets math ematiques par excellence que sont les nombres entiers? Comment une chose, aussi concr` etement et universellement utilis ee pourrait-elle ne pas exister mat eriellement? La seule question qui se pose est : o` u se trouvent-ils? vous me direz : quon me montre lentier 3! Je vais donc essayer maintenant de d ebusquer cet animal, l` a o` u il se cache. Prenons tout dabord un autre domaine des math ematiques, pour lequel, je crois, le travail 1

sera plus facile : les espaces vectoriels de dimension nie. A quelle r ealit e correspondentils? On a envie de dire quil sagit de lespace qui nous entoure, qui serait un espace vectoriel de dimension 3. Mais cette r eponse ne tient pas longtemps : en relativit e restreinte, cest plut ot un espace de dimension 4, en relativit e g en eralis ee, cest une vari et e de dimension 4, etc. Alors, o` u se trouvent vraiment les espaces vectoriels, les vari et es, . . . ? On r epondra que ce ne sont que des repr esentations de lespace qui nous entoure, et non pas lespace lui-m eme. Ils nexistent donc r eellement que dans notre t ete. Mais sous quelle forme sy trouvent-ils? Voil` a la question essentielle ; la r eponse nous fournira le concept fondamental pour toute la suite. Ce nest pas pour rien quil est nomm e deux fois dans le titre : cest le concept de programme. Voyons cela un peu en d etail, sur lexemple des espaces vectoriels. Nous avons admis que la notion despace vectoriel est un outil pour repr esenter lespace dans lequel nous nous trouvons. Or, nous avons un outil evident pour nous rep erer dans les trois dimensions de lespace, ce sont nos deux yeux. En somme, la notion despace vectoriel doit etre quelque chose, qui se trouve dans notre cerveau, et qui a un rapport avec nos yeux. De quoi sagit-il donc? R eponse : les yeux ne sont que les capteurs, qui envoient au cerveau linformation indispensable au rep erage dans lespace. Mais cette information, compos ee des millions de points color es (quon appelle pixels en informatique) que les cellules de nos r etines envoient au cerveau, est encore sans structure, informe. Pour voir la profondeur, la hauteur et la largeur, le cerveau doit traiter cette masse de donn ees a ` l etat brut au moyen dun outil ad equat. Or, un outil de traitement de linformation, cest exactement ce que lon appelle un programme, ou un logiciel. Nous avons tous, dans le cerveau, ce programme qui traite linformation issue des yeux, et qui nous permet de voir. Cest un logiciel remarquablement bien fait, les sp ecialistes dintelligence articielle essaient de limiter et narrivent qu` a de grossi` eres approximations. Une exp erience tr` es simple montre dailleurs ce qui se passe quand ce programme ne fonctionne pas : vous connaissez s urement ces images, form ees de carr es color es (de tr` es gros pixels). Si on les regarde de pr` es, elles nont aucun sens, on ne voit rien, car linformation reste non trait ee, telle que les yeux la fournissent. Mais si on les eloigne un peu, un visage appara t : le programme de la vision a fonctionn e, il a trait e linformation, et on voit une image. Revenons a ` la notion despace vectoriel : sa nature devrait etre claire maintenant. Il sagit, evidemment, dune (petite) partie de ce programme, ce quen informatique on appelle un module de programmation. Il en est de m eme des notions despace euclidien, de vari et e, etc. Cette analyse soul` eve quelques objections imm ediates. Tout en y r epondant, jen proterai pour introduire quelques notions dinformatique, indispensables pour la suite. Dabord une objection na ve : un chien ou un chat a, tr` es certainement, un programme pour la vision qui est tr` es voisin du n otre. Pourtant, la notion despace vectoriel lui est probablement inconnue! La r eponse est simple : de toute fa con, la notion despace vectoriel est inconnue a ` limmense majorit e du genre humain. Cest une chose de poss eder un programme qui fonctionne, cen est une autre de pouvoir l ecrire. Par exemple, lorsque vous vous servez dune calculette ou dun traitement de texte, vous disposez dun programme en etat de marche. Mais vous navez pas ce quon appelle le source du programme, cest-` a-dire son 2

texte ecrit et comment e, qui nest connu que de celui qui a programm e la machine que vous utilisez. Cest la di erence, fondamentale en informatique, entre ce quon appelle le source (abr eg e de programme source) et le code qui est totalement incompr ehensible, mais qui fait marcher la machine. En r esum e, tout le monde se sert de ses yeux, et donc du programme de la vision. Mais seuls ceux qui ont quelques notions de math ematiques connaissent un peu du source de ce programme, sous la forme, par exemple de la th eorie des espaces euclidiens. Une petite digression pour expliquer un peu plus pr ecis ement les termes informatiques de source et de code que je viens dutiliser : le programme source est un texte tout a ` fait compr ehensible, ecrit dans un langage de programmation. Mais ce nest pas lui qui est pr esent dans la machine : on le transforme dabord en code, qui est une suite de bits, cest-` a-dire de 0 et de 1, et, de ce fait, absolument herm etique ; cette op eration, quon appelle compilation, est tr` es facile a ` r ealiser, a ` laide dun programme quon appelle naturellement un compilateur (question en passant : comment a et e compil e le compilateur?). La compilation sapparente donc a ` un codage, cest-` a-dire a ` la transformation dun message en clair en un message crypt e. Bien entendu, son but n etait pas de crypter le texte du programme, mais simplement de le rendre utilisable par lordinateur ; mais le r esultat est l` a. Du coup, lop eration inverse, de passage du code au source, quon appelle d ecodage ou d ecompilation, ressemble a ` celle qui consiste a ` casser un message secret. Elle est donc extr emement dicile, et a ` vrai dire, carr ement impossible la plupart du temps. Passons a ` une deuxi` eme objection : il existe, en math ematiques, des espaces vectoriels de grande dimension, 23 par exemple, ou m eme innie. Ces espaces nont assur ement rien a ` voir avec lespace r eel dans lequel nous evoluons. Dans ces conditions, pourquoi la notion g en erale despace vectoriel ferait-elle partie du programme de la vision? La r eponse est dans la notion informatique de module de programmation, un terme que jai d ej` a utilis e plus haut. Voici ce dont il sagit : quand on veut ecrire un programme dune taille imposante (et dieu, qui la ecrit, sait que c a doit etre le cas pour le programme de la vision), on le d ecompose en parties ind ependantes, plus petites, quon appelle modules. Chacun de ces modules est lui-m eme d ecompos e, et ainsi de suite. On arrive, de cette fa con, a ` des programmes de taille raisonnable, que lon peut ecrire, parce quon peut les comprendre. Lavantage, aussi, si chacun de ces modules est bien comment e, est quils peuvent resservir comme briques pour la construction dautres programmes. Or, chacun de ces modules a une port ee beaucoup plus g en erale que ce qui est strictement n ecessaire. Pour donner un exemple, supposons que vous ayez a ` r esoudre num eriquement une equation particuli` ere, disons x3 7x + 1 = 0. La fa con la plus simple de proc eder est de programmer une m ethode g en erale, la dichotomie par exemple, valable pour toutes les fonctions continues. Vous cr eerez donc un tel module, que vous appliquerez seulement dans ce cas particulier. Mais, puisquil peut resservir pour une autre equation, vous le conserverez soigneusement dans la m emoire de lordinateur, dans ce quon appelle en informatique une biblioth` eque de programmes. La th eorie des espaces vectoriels est exactement lun de ces modules de programmation, il fait partie dune biblioth` eque a ` laquelle le programme de la vision fait appel. Mais, bien entendu, il est evidemment r eutilis e tr` es souvent ailleurs. Pour aller un peu plus loin, jaurai besoin maintenant de donner quelques explications 3

simples sur la fa con dont sont install es les programmes dans un ordinateur. Tr` es grossi` erement, lorganisation des programmes dans une machine consiste en : une couche inf erieure, appel ee syst` eme dexploitation, ou syst` eme tout court, et une couche sup erieure qui est form ee des programmes dapplication; on parle donc de programmes syst` eme par opposition a ` programmes dapplication. Le syst` eme dexploitation est un tr` es gros programme (lun des plus connus, le syst` eme UNIX, comporte actuellement plusieurs centaines de millions de caract` eres, et sa documentation occupe une vingtaine de gros volumes). Il g` ere les fonctions de base de la machine : le d emarrage, les m emoires de masse (unit es de disques durs, de bandes, de disquettes, . . . ), les communications entre la machine et ses utilisateurs (claviers et ecrans), ses p eriph eriques (comme les imprimantes, et les autres dispositifs que peut commander lordinateur, par exemple des robots) ; et aussi les communications avec les autres ordinateurs, a ` travers ce quon appelle un r eseau. Le syst` eme dexploitation est, en g en eral, livr e avec la machine, car lordinateur ne peut pas fonctionner sans lui. Cest un programme qui tourne en permanence, mais que lutilisateur courant ne voit pas. Ce quil voit, ce sont les programmes dapplication, qui sont ecrits au niveau au-dessus : ce sont ces programmes qui permettent a ` lordinateur de se rendre utile. Par exemple, ce sont des programmes de comptabilit e ou de gestion dentreprise, ou encore de calcul math ematique, ou de traitement de texte, etc. Ces programmes dapplication d emarrent a ` partir du syst` eme dexploitation et y reviennent. Lutilisateur courant utilisera des programmes dapplication tout faits. Lutilisateur plus exp eriment e pourra ecrire ses propres programmes dapplication. Mais, sauf exception, il na pas acc` es au syst` eme dexploitation : en eet, sil est incomp etent ou malveillant, il peut mettre lordinateur en panne, ou encore acqu erir des informations qui ne lui sont pas destin ees, et en faire un mauvais usage! Les seuls utilisateurs ayant acc` es au syst` eme dexploitation, quon appelle les superutilisateurs, sont normalement les ing enieurs syst` eme qui soccupent de maintenir la machine en etat de fonctionnement. Il y a une cl e, ou un mot de passe, mis en place par celui qui a install e le syst` eme dexploitation, cl e dont la connaissance permet de passer en super-utilisateur. Or, comme chacun sait, tout ce qui est interdit provoque lenvie denfreindre linterdiction. Ainsi sont apparus les hackers qui tentent de prendre le contr ole du syst` eme dexploitation dordinateurs auxquels ils ne devraient pas avoir acc` es, dans le but de d etruire ou dacqu erir de linformation, ou, tout simplement, pour samuser. Le math ematicien se trouve dans une situation tout a ` fait comparable a ` celle du hacker : il est en face dune machine (le cerveau, le sien mais aussi celui des autres) qui lui a et e livr ee en etat de marche, donc avec son syst` eme dexploitation, mais sans documentation et sans cl e! Il se trouve rel egu e au simple niveau dutilisateur courant, et encore ne peut-il utiliser que des programmes tout faits, il na m eme pas le droit de programmer la machine. Situation tout a ` fait intol erable et humiliante. Comme tout bon hacker, son but ultime est de se hisser au rang de super-utilisateur. Comment faire? On devine que c a ne va pas etre de la tarte, et, disons-le tout de suite, pour vous epargner le suspense, ce but ultime nest pas encore atteint. Mais, a ` mon avis, on nen est peut- etre pas si loin. Quand on se trouve devant une machine inconnue, sans aucune documentation, le seul 4

moyen dapprendre a ` sen servir et a ` la programmer (sans parler darriver a ` ma triser son syst` eme dexploitation), cest de sarmer de patience et la faire fonctionner, en la surveillant attentivement pour d ecoder, petit a ` petit, les programmes qui sy trouvent (programmes dapplication, ou programmes syst` eme). Cest plus dicile a ` d echirer que les hi eroglyphes, car, non seulement on na pas de pierre de Rosette, mais on ne sait m eme pas dans quels caract` eres cest ecrit . . . Le math ematicien sest donc arm e dune longue patience on peut bien le dire, puisque quil travaille depuis plus de trois mille ans. Il a commenc e a ` d ecoder des programmes dapplication, on en a vu un exemple tout a ` lheure avec la th eorie des espaces vectoriels. La moisson est maintenant fantastiquement riche et vari ee : cela a commenc e avec la g eom etrie, puis lalg` ebre, puis lanalyse r eelle, les fonctions de variable complexe, la th eorie des nombres, et enn le d eveloppement explosif des math ematiques au XX` eme si` ecle. Poursuivons notre comparaison entre le math ematicien et le hacker, pour la pr eciser un peu. Habituellement, le hacker travaille seul, et sattaque a ` une seule machine. Son outil, cest tout simplement un clavier et une console, branch es sur le r eseau, ou directement sur lordinateur qui lint eresse. Son arme, cest sa connaissance plus ou moins approfondie du syst` eme dexploitation de la machine qui lint eresse. Mais on peut imaginer un gang de hackers, sattaquant simultan ement, chacun de leur c ot e, a ` des machines identiques et se communiquant, au fur et a ` mesure, le r esultat de leurs essais, cest-` a-dire ce quils ont appris sur la fa con dont est programm ee la machine. Leur ecacit e deviendrait alors vraiment redoutable. Sils sont assez nombreux, ils pourraient publier des articles sous le manteau et tenir des colloques clandestins. Pour verser carr ement dans la ction, imaginons que le travail de ces pirates s etale sur plusieurs g en erations, les parents l eguant a ` leurs enfants leurs r esultats et le soin de poursuivre lattaque jusqu` a la victoire nale. Ce sc enario invraisemblable est pourtant une image, a ` peine caricatur ee, de ce que nous faisons, nous les math ematiciens ; pas etonnant que lon nous prenne souvent pour de doux dingues. Mais on peut maintenant se demander o` u sont le clavier et la console qui permettent lacc` es a ` la machine qui nous int eresse ici, a ` savoir le cerveau, et de faire tourner les programmes que lon a r eussi a ` d ecoder. La r eponse a ` cette question nous expliquera aussi pourquoi, a ` la di erence du hacker, le math ematicien ne peut travailler seul. Mais il faut dabord dire un mot sur ce quon appelle un r eseau dordinateurs. Il sagit dun ensemble dordinateurs, reli es entre eux par cable, par t el ephone, ou par radio, et qui peuvent echanger ainsi des informations, cest-` a-dire des textes ou des programmes. A partir de lun quelconque dentre eux, on peut donner des ordres a ` nimporte quel autre. Cest extr emement utile, car cela permet a ` chaque utilisateur davoir acc` es a ` la puissance de calcul, aux m emoires de masse et aux p eriph eriques de chacune des machines du r eseau. Le r eseau peut etre local, par exemple a ` l echelle dune entreprise, dun laboratoire ou dune universit e. Mais il y a aussi un r eseau a ` l echelle mondiale, dont lutilisation la plus courante est le courrier electronique, mais qui permet tous les usages dont je viens de parler. Bien entendu, le syst` eme dexploitation de chaque machine comporte des programmes sp ecialis es tr` es complexes, qui servent a ` la communication a ` travers le r eseau ; on les appelle des protocoles de communication. Il faut comprendre que le dialogue entre 5

deux ordinateurs est tr` es protocolaire, et qu` a la moindre formule de politesse oubli ee, lordinateur oens e coupe imm ediatement la communication. Ces formules de politesse sont, en eet, indispensables pour sassurer que la ligne fonctionne bien, que chacun est pr et a ` communiquer avec lautre, etc ; bref, que linformation pourra etre transmise absolument sans aucune erreur, ce qui est essentiel lorsque lon transmet des programmes (alors que quelques erreurs sont sans importance quand on transmet un texte). Le r eseau des math ematiciens, si lon peut dire, sest constitu e au cours des si` ecles. Les moyens physiques de communication etaient les m emes que pour les autres activit es humaines, cest-` a-dire la parole et le texte ecrit. Mais les math ematiciens ont cr e e, ou plus exactement d ecouvert, petit a ` petit, leur protocole de communication : ainsi est apparu le langage math ematique, avec son etrange litanie daxiomes, de lemmes, de propositions, de th eor` emes et de d emonstrations. La communication math ematique ne peut se faire qu` a travers ce protocole, dont le r ole est bien dassurer la transmission de linformation sans aucune erreur. Il permet a ` un math ematicien dessayer, sur un coll` egue b en evole et consentant, de faire tourner un programme (cest-` a-dire un th eor` eme avec sa preuve), quil a d ecouvert, ou plus exactement d ecod e, dans son propre cerveau. Pour cela il faut (et il sut!) que le coll` egue en question veuille bien faire leort de comprendre la preuve ; les signes de sa compr ehension sont susamment manifestes pour quil ne puisse y avoir de doute (grognements approbatifs, remarques pertinentes, ou m eme am elioration de la preuve, ou du r esultat, etc). Cest ainsi que lon sassure que le programme que lon a reconstitu e est bien valable, et quil peut aller sajouter a ` la somme des math ematiques d ej` a d ecouvertes. R esumons-nous : un protocole de communication est un programme dont le but est de permettre l echange dinformation entre deux ordinateurs. Les math ematiciens ont d ecouvert, dans le cerveau, un programme de ce type, ou qui pouvait servir a ` cela, et lont fait fonctionner : cest le langage math ematique, qui a ni par aboutir a ` ce quon appelle la m ethode axiomatique. Mais alors, cela devait arriver, quelques-uns parmi nos chercheurs en math ematiques se sont dit que ce programme etait tout aussi int eressant, et peut- etre m eme plus, que dautres, comme objet d etude. Cest la naissance dune nouvelle branche des math ematiques : la logique math ematique, et, pour etre plus pr ecis, la th eorie de la d emonstration. Son but est donc dessayer de d ecoder ce protocole de communication. Nous arrivons maintenant a ` un point tr` es int eressant, mais que je ne d evelopperai pas ici. On doit remarquer, en eet, quun protocole de communication est ce quon appelle un programme de bas niveau dans le syst` eme dexploitation, cest-` a-dire quil fait partie du mode de fonctionnement le plus primitif de lordinateur. Cela ne veut pas dire quil soit simple, mais plut ot quil est situ e dans les couches primaires du syst` eme, et, qu` a ce titre, il y occupe une place strat egique. On est donc amen e a ` penser que la th eorie de la d emonstration soccupe de d ecoder des programmes tr` es primitifs dans le cerveau, beaucoup plus que ceux de la vision, de laudition, de l equilibre, etc. Ces programmes sont donc certainement apparus tr` es t ot dans l evolution, et doivent etre communs a ` un grand nombre desp` eces. Mais, bien entendu, il ny a que lhomme qui les ait utilis es comme protocoles de communication. Un autre point remarquable est le suivant : cest en d echirant ces programmes, cest-` adire en faisant de la th eorie de la d emonstration, que les math ematiciens ont commenc e 6

a ` prendre vraiment conscience de la nature de leur activit e. En eet, cest alors qua et e d ecouvert ce que les logiciens appellent lisomorphisme de Curry-Howard, qui dit essentiellement quune preuve math ematique nest pas autre chose quun programme. Il donne aussi le moyen dex ecuter ce programme, qui consiste a ` faire, sur la preuve, une op eration appel ee elimination des coupures. Il sagit l` a dune importante d ecouverte de logique, et il se se constitue actuellement un dictionnaire, o` u chaque notion de th eorie de la d emonstration se trouve traduite en termes de programmation. Cest une equivalence tout a ` fait etonnante, dont voici quelques exemples: Th eorie de la d emonstration R` egle logique D emonstration Elimination des coupures dune d emonstration Preuve par r ecurrence Th eor` eme Axiome R` egle de labsurdit e (de faux, d eduire nimporte quoi) Programmation Instruction Programme Ex ecution dun programme Boucle for Type, sp ecication D eclaration de variable Instruction exit

Bien s ur, tout ceci n ecessiterait des explications d etaill ees, quil nest pas possible de donner ici. Mais, a ` propos, il est temps de se rappeler la promesse que je vous ai faite, de vous montrer lentier 3. Il doit donc sagir, comme pour toutes les notions math ematiques, dun module de programmation, dun el ement, particuli` erement simple, de notre grande biblioth` eque de programmes. Lequel? Si lon sait quen math ematiques, la notion dentier sidentie au raisonnement par r ecurrence, lisomorphisme de Curry-Howard nous donne la r eponse : cest la boucle for i = 1 to 3, cest-` a-dire un programme qui consiste a ` ex ecuter trois fois le programme qui le suit. Une telle instruction el ementaire fait in evitablement partie dun langage de programmation, quel quil soit. Revenons a ` notre analyse de lactivit e math ematique, pour r esumer ce a ` quoi nous sommes parvenus : les concepts, les th eories et les th eor` emes math ematiques ne sont pas autre chose que des programmes, plus pr ecis ement des modules de programmation, qui existent dans notre cerveau, mais, bien entendu, aussi dans celui des animaux qui sont proches de nous (les mammif` eres, par exemple). Cette approche a aussi lavantage de rendre compte du fait que les math ematiques soient utiles : en eet, elles permettent de coordonner laction dun grand nombre de personnes de fa con tr` es pr ecise, puisque tout le monde les comprend de la m eme fa con (ou ne les comprend pas du tout). Cest le propre dun programmme de donner toujours le m eme r esultat, quand, par chance, on arrive a ` le faire fonctionner. Tout cela est bel et bon, me direz-vous, mais voici une objection imparable a ` cette analyse : cest lad equation, quasiment miraculeuse, entre les math ematiques et les lois de la nature, par exemple les lois de la physique. Comment se fait-il, en eet, que la loi

dattraction de Newton, ou la m ecanique quantique, nous permette de pr evoir des ev` enements astronomiques, ou le r esultat dexp eriences a ` l echelle atomique, avec une pr ecision extraordinaire? En fait, lexplication est simple, justement si lon admet que les math ematiques ne sont que le d ecodage de programmes utilitaires que dieu, autrement dit un milliard dann ees d evolution, a ecrits dans le cerveau des etres vivants sup erieurs. Il ny a alors vraiment rien d etonnant a ` ce que ces programmes soient en profond accord avec lenvironnement de ces etres vivants ; sinon, ils rempliraient bien mal leur r ole, qui est dadapter le mieux possible lorganisme quils r egissent a ` cet environnement. Par suite, rien d etonnant non plus a ` ce que, en lisant ces programmes dans notre propre cerveau, nous croyions d ecouvrir des lois de la nature. En dautres termes, et pour mettre les points sur les i, les lois de la physique, comme lattraction newtonnienne, la relativit e g en erale ou la m ecanique quantique, sont bien ecrites, sous forme de programmes, dans le cerveau dun chien ou dune vache (soit dit en passant, et heureusement pour elle, il y a des choses autrement plus complexes dans le cerveau de la vache). En faisant de la physique math ematique, des hommes ont r eussi a ` d ecoder ces programmes, et donc a ` les faire fonctionner selon un mode bien di erent de celui pour lequel ils ont et e ecrits (et cela, malheureusement pour elle, la vache en est incapable). Essayons de donner un autre eclairage, au moyen dune caricature assez grossi` ere. Imaginons que vous ayez a ` programmer un robot, de fa con a ` ce quil puisse se d eplacer dans une pi` ece, sans se heurter aux meubles ni aux murs. Vous commencez par ecrire votre programme en fonction dune pi` ece donn ee, par exemple celle o` u vous vous trouvez maintenant. Mais, sil passe dans la salle a ` c ot e, notre robot aura perdu son adaptation et se cassera immanquablement la gure. Qu` a cela ne tienne, on en prend un autre, et vous modiez votre programme en lui ajoutant une partie destin ee a ` tenir compte de la nouvelle pi` ece. Ce faisant, vous vous rendez compte quil est d eraisonnable dessayer d ecrire un programme pour chaque pi` ece possible, jamais vous naurez le temps, jamais ils ne tiendront dans la m emoire du robot. En plus, vous allez casser trop de mat eriel, avec vos essais! Vous reprenez alors votre travail de programmeur sur de nouvelles bases, en vous demandant ce quon peut dire de g en eral sur toutes les pi` eces o` u pourra se trouver votre robot ; et vous inventez des lois : les pi` eces sont des parall el epip` edes rectangles, les meubles aussi, le plafond est a ` au moins deux m` etres, etc. Ces lois, qui forment une esp` ece de g eom etrie, vont, bien s ur, se retrouver inscrites, sous forme de modules, dans le programme nal. Si maintenant un autre programmeur, ou le robot devenu subitement intelligent, se met a ` d ecoder votre programme, il va evidemment y trouver ces lois, quil baptisera lois de la nature, et, na vement, il s emerveillera de leur extraordinaire similitude avec lenvironnement. Sil avait d ecod e votre premier programme mal fait, il naurait rien trouv e du tout. Mais il na jamais eu loccasion de le faire, car votre premier robot avait et e bien trop vite mis a ` la casse. Je vais dire la m eme chose dune autre fa con encore ; comme vous le voyez, jinsiste car ce point est important. La physique math ematique nexplore pas notre environnement actuel, mais la trace qui en a et e d epos ee dans notre cerveau au cours des a ges par l evolution. Comme Champollion, qui d echirait des hi eroglyphes qui parlent dun pass e 8

tr` es lointain, le physicien th eoricien d echire des programmes ecrits dans le cerveau il y a des dizaines de millions dann ees. Ces programmes expriment certainement des lois tr` es durables de lenvironnement, car elles doivent etre rest ees les m emes tout ce temps-l` a: sinon, lorganisme dont ces programmes r` eglent la vie aurait perdu son adaptation, et nous ne serions pas l` a pour en parler. Cest bien pourquoi la physique math ematique exprime des lois universelles de la nature. Mais, de m eme que lhistorien, ou larch eologue, pour ecrire lhistoire, ne peut cr eer aucun document, et doit se contenter dexploiter ceux qui existent d ej` a, de m eme le physicien ne d ecouvrira jamais, comme loi de la nature, que ce que l evolution a bien voulu en ecrire dans notre cerveau. A vrai dire, quil se rassure, il lui reste quand m eme du pain sur la planche. Je terminerai sur une remarque a ` propos de la m ethode utilis ee ici pour analyser la nature de lactivit e math ematique. Elle para tra a ` beaucoup simpliste et m ecaniste, puisquelle consiste a ` comparer le cerveau a ` un ordinateur. Or, tout le monde vous le dira, le cerveau est tr` es loin de tout ordinateur existant, et il ne fonctionne absolument pas de la m eme mani` ere. Je pense quen disant cela, on fait une lourde erreur, parce quon oublie un d etail important : un ordinateur, de toutes fa cons, ne fonctionne pas du tout. Il nest pas autre chose quune page blanche, il nexiste que par les programmes quon y ecrit. Or ce sont des hommes qui lont programm e, et ils ont fait, consciemment ou non, des eorts gigantesques pour que son fonctionnement ressemble le plus possible a ` celui de leur propre cerveau. Pourquoi cela? 1) parce que cest la seule fa con de rendre la machine utile a ` quelque chose, et 2) parce quils ne savent pas quoi faire dautre. Il para t quon en est actuellement a ` la quatri` eme ou la cinqui` eme g en eration dordinateurs, et on peut alors penser que la simulation commence a ` ne pas etre si mauvaise. En n de compte, ce nest pas notre cerveau qui ressemble a ` un ordinateur, mais cest lordinateur qui essaie a ` toutes forces, par programmeur interpos e, de ressembler a ` notre cerveau. Personne ne dira que, puisquun livre est tr` es di erent dun homme, on ne peut rien apprendre sur lhomme en lisant un livre. Je pr etends quil y a d ej` a beaucoup, et quil y aura de plus en plus, a ` apprendre sur le fonctionnement du cerveau humain en lisant dans un syst` eme dexploitation ou m eme dans le microcode dun processeur. *****************