Chapitre 1

Informatique th´eorique: D´ecidabilit´eet Complexit´e

0 Olivier Bournez, Ecole´ polytechnique, [email protected], Gilles Dowek, Ecole´ polytechnique, [email protected], R´emi Gilleron, Lab- oratoire d’Informatique Fondamentale de Lille (LIFL), [email protected], Serge Grigorieff (Coordinateur), LIAFA, CNRS & Universit´e Paris Diderot, [email protected], Jean-Yves Marion (Coordinateur), Nancy-Universit´e, LORIA [email protected] Simon Perdrix, PPS, CNRS & Universit´eParis Diderot, [email protected]. Sophie Tison, Laboratoire d’Informatique Fondamen- tale de Lille (LIFL), [email protected]

1 2CHAPITRE 1. INFORMATIQUE THEORIQUE´ : DECIDABILIT´ E´ ET COMPLEXITE´ Sommaire

1 Informatique th´eorique: D´ecidabilit´eet Complexit´e 1 1.1 Introduction `al’informatique fondamentale ...... 4 1.2 Emergence de la notion de calculabilit´e...... 6 1.2.1 Mod`elesde calcul discrets par sch´emasde programmes 6 1.2.2 Mod`elesde calcul discrets par machines s´equentielles . 7 1.2.3 Mod`elesde calcul discrets par machines `aregistres `a acc`esal´eatoire ...... 8 1.2.4 Grammaires de type 0 de Chomsky ...... 9 1.2.5 Mod`elede calcul discret `aparall´elismemassif : les automates cellulaires ...... 9 1.2.6 Un mod`ele `apart : le Lambda-calcul ...... 11 1.2.7 La th`esede Church et ses diff´erentes versions . . . . . 12 1.2.8 Axiomatisation de la th`esede Church par Gandy . . . 13 1.3 Th´eoriede la calculabilit´e ...... 14 1.3.1 Calculs qui ne s’arrˆetent pas ...... 14 1.3.2 Trois th´eor`emes “positifs” en calculabilit´epartielle . . 15 1.3.3 Deux th´eor`emes“n´egatifs”en calculabilit´epartielle . . 17 1.4 Formalisation de la notion d’algorithme ...... 18 1.4.1 D´enotationnelversus op´erationnel ...... 18 1.4.2 Compl´etudeop´erationnelle ...... 18 1.4.3 L’axiomatisation de la notion d’algorithme par Gurevich 20 1.4.4 Compl´etudeop´erationnelleet r´ecurrence...... 21 1.5 Calculabilit´esur les r´eels...... 22 1.5.1 Analyse r´ecursive ...... 22 1.5.2 Mod`elede Blum, Shub et Smale ...... 23 1.5.3 “General Purpose Analog Computer” de Shannon . . 23 1.5.4 Mod`elesde calcul `atemps continu ...... 24 1.5.5 Calculabilit´equantique ...... 24 1.5.6 Le probl`emede l’unification de ces mod`eles ...... 25

3 4 SOMMAIRE

1.5.7 Calculabilit´eau-del`ade la th`esede Church ? . . . . . 26 1.6 D´eductionet calcul : la nature algorithmique des preuves constructives ...... 27 1.6.1 Les preuves constructives comme langage de program- mation ...... 27 1.6.2 Les logiques et leurs syst`emesformels ...... 28 1.6.3 Les preuves constructives et leurs notations ...... 29 1.6.4 R´eductionde preuve constructive ...... 34 1.6.5 L’interpr´etationde Brouwer-Heyting-Kolmogorov . . . 35 1.6.6 Th´eories...... 37 1.6.7 Autres extensions ...... 39 1.6.8 Elimination des coupures et r´esultatsde coh´erence . . 40 1.7 D´ecidableversus ind´ecidable...... 41 1.7.1 D´emonstrationautomatique : d´ecidabilit´eet th´eories logiques ...... 41 1.7.2 Quelques autres probl`emes ...... 44 1.7.3 D´ecideravec une bonne probabilit´ede r´eponse exacte 45 1.8 A l’int´erieurde la calculabilit´e: la th´eoriede la complexit´e . 46 1.8.1 Limites des ressources physiques ...... 46 1.8.2 Complexit´ede quelques probl`emes ...... 47 1.8.3 Complexit´ed’un probl`eme ...... 49 1.8.4 Classes de complexit´e ...... 51 1.8.5 Caract´erisationdes classes de complexit´e ...... 53 1.8.6 Complexit´eet repr´esentation des objets ...... 54 1.9 Complexit´ealgorithmique de l’information ...... 54 1.10 Une op´erationnalit´eefficace: les automates finis ...... 56 1.10.1 Les automates finis de mots ...... 56 1.10.2 Les extensions des automates de mots ...... 62 1.10.3 Automates finis pour les structures discr`etes...... 65 1.10.4 Automates et applications ...... 67

1.1 Introduction `al’informatique fondamentale

L’informatique fondamentale est un vaste sujet, comme en t´emoignent les 2 283 et 3 176 pages des “Handbooks” [vL90, AGM01]. Couvrir en quelques dizaines de pages, l’ensemble de l’informatique fondamentale nous a sembl´e une entreprise hors de notre port´ee.De ce fait, nous nous sommes concentr´es sur la notion de calcul, sujet qui refl`etele goˆutet la passion des auteurs de 1.1. INTRODUCTION A` L’INFORMATIQUE FONDAMENTALE 5 ce chapitre. La notion de calcul est omnipr´esente et aussi ancienne que les math´ematiques: • Calculs sur les nombres entiers : algorithme d’Euclide calculant le plus grand commun diviseur de deux nombres entiers, crible d’Eratosth`ene donnant les nombres premiers, etc. • Calculs sur les nombres r´eels: m´ethode de Simpson de calcul num´erique d’une int´egrale,m´ethode de Newton d’approximation d’un z´erod’une fonction sur les r´eels,etc. • Calculs g´eom´etriques: aires et volumes divers, algorithme de For- tune donnant le diagramme de Vorono¨ı d’un ensemble de n points A1,...,An du plan (ce diagramme d´ecompose le plan en n r´egions d’influence de formes polygonales : la i-`emer´egionest form´eedes points du plan plus proches de Ai que des autres points Aj, j 6= i), etc. • Tri d’une famille d’objets selon un certain ordre : tris par insertion, ´echange (tri bulle, quicksort), s´election(tri par tas), fusion, distribu- tion. Knuth [Knu73] y consacre 388 pages ! • Calculs sur les textes : recherche de motifs (algorithme de Knuth, Morris & Pratt), compression de texte (algorithme de Ziv & Lempell). • Calculs dans les graphes finis : plus court chemin entre deux sommets (algorithme de Dijkstra), couverture minimale (i.e. ensemble C de sommets tels que tout sommet soit dans C ou voisin direct d’un point de C). Ce n’est qu’`apartir de la premi`eremoiti´edu 20i`emesi`ecleque la notion de mod`elede calcul a ´et´ed´efinieet ´etudi´ee. Nous pr´esenterons de nom- breux mod`elesde calcul au cours de ce chapitre. La vari´et´ede ces mod`eles montre la difficult´e`aappr´ehender la nature et la diversit´edes calculs. Il y a les calculs m´ecaniqueset s´equentiels, les calculs quantiques, et tous les autres calculs qui s’appuient sur des hypoth`esesphysiques de mod´elisation de la nature. Un mod`elede calcul est une repr´esentation math´ematique de ce qui est calculable suivant certaines hypoth`eses sur le monde physique qui nous entoure. Ainsi face `aface, il y a des mod`elesde calcul et des r´ealisationsconcr`etes (les ordinateurs. . . ). Cette dualit´er´esideaussi dans le rapport entre syntaxe et s´emantique, entre l’objet manipul´eet son sens. Notre premi`ere´etape nous conduira `aexplorer diff´erents mod`elesqui calcu- lent les mˆemes fonctions que les machines de Turing, conduisant `ala th`ese 6 SOMMAIRE de Church-Kleene-Turing. Ceci ´etant, chacun de ces mod`elespropose une vision particuli`erequi tisse une notion de calcul. Il y a les calculs s´equentiels et le d´eveloppement de la calculabilit´e.La th´eoriede la calculabilit´ed´efinit une repr´esentation abstraite et alg´ebriquede ce qui est calculable. Un de ses objectifs est ainsi de distinguer ce qui est calculable/d´ecidablede ce qui ne l’est pas, c’est `adire qui est ind´ecidable.Il y a aussi les calculs par automates cellulaires qui sont des machines massivement parall`eleset synchrones. Bien que conceptuellement diff´erents des mod`eless´equentiels, ils calculent pour- tant exactement les mˆemesfonctions que les machines de Turing. La cal- culabilit´eest une formalisation math´ematiquede ce qui est calculable. Elle exprime un point de vue d´enotationel.C’est seulement dans les ann´ees1980 que la notion d’algorithme, consid´er´eecomme objet d’´etude,a r´eellement vu le jour. Cette dualit´ed´enotation/intention se refl`eteen logique avec l’´emergencede la th´eoriede la d´emonstration,o`ules d´emonstrationssont des algorithmes au travers de l’isomorphisme de Curry-Howard.

1.2 Emergence de la notion de calculabilit´e

Il y a plusieurs ouvrages qui sont un bon point de d´epartsur la calculabilit´e pour le lecteur curieux. Les livres de Rogers [Rog67] et Odiffredi [Odi89] sont des classiques qui traitent de la calculabilit´epour le lecteur qui a un penchant pour les math´ematiques.Le livre de Jones [Jon97] a une approche plus orient´eeth´eoriede la programmation et traite de la complexit´e.Le livre de Savage [Sav98] se concentre sur les aspects machines et algorithmiques. Enfin, mˆemesi le livre de Papadimitriou [Pap94] se consacre essentiellement `ala complexit´e,il offre une bonne introduction `ala calculabilit´e.

1.2.1 Mod`elesde calcul discrets par sch´emasde programmes R´ecursivit´eprimitive. Les premi`erestentatives de formalisation math´ematique de la notion de calculabilit´ese sont faites en consid´erant divers proc´ed´esde constructions de fonctions `apartir d’autres fonctions. En termes actuels de programmation, ces constructions correspondent `ades instructions bien connues. C’est ainsi que la premi`ereapproche math´ematiquea ´et´ecelle des fonctions appel´eesaujourd’hui “r´ecursives primitives”. Sur les entiers, il s’agit des fonctions que l’on peut obtenir `apartir de fonctions tr`essimples (fonction constante de valeur 0, fonction successeur, fonctions projections k N → N) par composition et d´efinitionpar r´ecurrence. En termes de pro- grammation imp´erative, ce sont les fonctions programmables avec la seule boucle FOR (donc sans boucle WHILE). Cependant, on s’est assez vite aper¸cu 1.2. EMERGENCE DE LA NOTION DE CALCULABILITE´ 7

(Ackermann, 1928) que cette famille ´etaittrop petite. Syst`emesd’´equationsde Herbrand-G¨odel. La premi`erebonne formal- isation a ´et´eimagin´eepar Jacques Herbrand en 1931, quelques semaines avant sa mort (`a23 ans) dans un accident de montagne. Ayant, fort heureusement, d´ecrit`agrands traits ses id´eesdans une lettre `aG¨odel,c’est ce dernier qui en a assur´ela mise en oeuvre. Cette formalisation, appel´eeau- jourd’hui “syst`emesd’´equationsde Herbrand-G¨odel”,permet des d´efinitions `al’aide de n’importe quel syst`emed’´equationsfonctionnelles. En termes actuels, on peut parler de programmation fonctionnelle. Fonctions r´ecursives de Kleene. C’est Stephen Cole Kleene, 1936 [Kle36] (et ses livres [Kle52, Kle67] d’une grande profondeur), qui introduit la for- malisation moderne la plus utilis´ee, dite classe des fonctions r´ecursives (ou calculables), `al’aide d’une nouvelle construction : la minimisation. Cette k+1 construction permet de d´efinir,`apartir d’une fonction totale f : N → N, k une fonction partielle g : N → N telle que domaine(g) = {~x | ∃y f(~x,y) = 0} g(~x) = le plus petit y tel que f(~x,y) = 0

Sans surprise, on montre que la classe des fonctions r´ecursives `ala Kleene co¨ıncideavec celle des fonctions programmables avec les deux boucles FOR et WHILE. Cette classe co¨ıncideaussi avec celle des fonctions Herbrand-G¨odel calculables.

1.2.2 Mod`elesde calcul discrets par machines s´equentielles Machines de Turing. Quelle que soit la force des d´efinitionsde Herbrand- G¨odelet de Kleene, elles ne permettent pas de r´epondre avec conviction `a la question “peut-on avoir d’autres fonctions calculables ?”. C’est seule- ment avec l’analyse faite par Alan Mathison Turing, 1936 [Tur36, TG95], que cette question peut enfin recevoir une r´eponse n´egative cr´edible.Dans cet article, Turing argumente de fa¸contr`es convaincante sur le fait que ce qui peut ˆetrecalcul´epar un humain qui travaille m´ecaniquement avec un papier et un crayon en un nombre fini d’´etapes est calculable par le disposi- tif qu’il a imagin´e,et est appel´emaintenant “machine de Turing”. Dans sa plus simple expression, ce dispositif est un ruban type machine `a´ecriresur lequel une tˆetede lecture/´ecriturepeut lire et ´ecriredes lettres d’un alpha- bet fini fix´eet peut aussi se d´eplacerd’un cran `ala fois dans les deux sens. L’´ecritureet le mouvement sont r´egispar l’´etatde la machine qui varie dans un ensemble fini fix´e. On montre (c’est p´eniblemais sans r´eelledifficult´e, voir le petit livre classique de Davis [Dav58] et tous ses autres ouvrages) que 8 SOMMAIRE les machines de Turing (modulo des conventions d’arrˆet selon certains ´etats) permettent de calculer exactement les fonctions calculables `ala Kleene.

Machines de Turing avec plusieurs rubans de dimensions quelcon- ques et/ou plusieurs tˆetes. Une extension naturelle de la machine de Turing est de remplacer l’unique ruban par plusieurs rubans. Ou de multi- plier les tˆetes. Ou de consid´ererdes rubans de dimensions 2 ou 3 ou plus (avec des tˆetespouvant se d´eplacerd’une case dans chaque direction). On montre que ceci ne permet pas de d´efinirde nouvelle fonctions.

Machines de Kolmogorov-Uspensky. Afin de tester la robustesse de la d´efinitionde Turing, Kolmogorov et Uspensky, 1958 [KU58], imaginent de remplacer le ruban lin´eairede Turing par un ruban en forme de graphe non orient´equi peut se modifier au cours du calcul. Lecture, ´ecritureet modification du ruban (suppression ou adjonction d’un noeud) se faisant toujours de fa¸conlocale, l`ao`ula tˆetese trouve. On suppose que le graphe reste de degr´eborn´efix´e,c’est-`a-direque le nombre de voisins d’un sommet quelconque est toujours ≤ k pour un k fix´eind´ependant du sommet.

Machines de Sch¨onhage(Storage modification machines). Allant encore plus loin, Sch¨onhage,1980 [Sch80], imagine un ruban en forme de graphe orient´e d´eformabledont le degr´esortant est born´emais pas le degr´e entrant. L’intuition est la suivante. Les arcs du graphe sont vus comme des pointeurs : d’un sommet ne peuvent partir qu’un nombre ≤ k de pointeurs, mais un nombre arbitraire de pointeurs peuvent y arriver. Mais l`aencore, machines de Kolmogorov-Uspensky et machines de Sch¨onhage ne donnent rien de plus que les fonctions Turing calculables.

1.2.3 Mod`elesde calcul discrets par machines `aregistres `a acc`esal´eatoire(Random Access Machines)

Pour mimer le fonctionnement d’un ordinateur tr`esid´ealis´e, Melzak, 1961 [Mel61], et Minsky, 1961 [Min61], imaginent une machine avec une infinit´e de registres, chacun capable de contenir un entier arbitrairement grand. Elgot & Robinson, 1964 [ER64], montrent (voir aussi Cook & Reckhow, 1973 [CR73]) qu’en permettant l’acc`esindirect, c’est-`a-direla possibilit´e d’acc´eder`aun registre `apartir de son num´erolu dans un autre registre, et des op´erationstr`es´el´ementaires sur les contenus des registres, ce mod`ele (appel´e Random Access Machine en anglais) calcule exactement les mˆemes fonctions que les machines de Turing. 1.2. EMERGENCE DE LA NOTION DE CALCULABILITE´ 9

1.2.4 Grammaires de type 0 de Chomsky Un autre mod`elede calcul discret op`erepar manipulation de mots, ce sont les grammaires de type 0 de Chomsky [HMU06]. Il s’agit d’ensembles de r`eglesde la forme P αQ → P βQ (o`u P,Q d´esignent des contextes gauche et droits quelconques et α, β sont des mots fix´es)qui permettent de remplacer un facteur α dans un mot par le facteur β. Partant d’un mot initial, on peut alors d´eriver toute une famille de mots. Avec quelques conventions simples, on peut consid´ererles fonctions dont le graphe est ainsi engendrable. On montre que les fonctions ainsi calculables sont encore celles qui sont Turing calculables.

1.2.5 Mod`elede calcul discret `aparall´elisme massif : les automates cellulaires Le mod`eled´ecritci-dessous ne permet pas non plus d’aller au-del`ades fonc- tions calculables par machines de Turing. En revanche, son efficacit´een temps est de beaucoup plus grande. De plus, le mod`eleest en soi fascinant : nous invitons le lecteur `ataper “Conway Life” sur Google videos pour visu- aliser l’incroyable vari´et´edes comportements de cet automate cellulaire (dˆu `aJohn Horton Conway, 1970) `adeux dimensions qui n’a que deux ´etats. Avec la capacit´etechnologique actuelle d’architectures comportant des millions de processeurs, un des challenges de l’informatique th´eoriqueau- jourd’hui est de cr´eerun nouveau paradigme de programmation pour utiliser pleinement un tel parall´elismemassif. Pour cela, il faut d’abord choisir un type d’architecture pour le parall´elisme massif. Deux questions cl´es: la g´eom´etriedu r´eseaude processeurs et le fonctionnement synchrone ou non. Visionnaire, ici comme dans tant d’autres sujets, John von Neumann a mis en place d`es1949 un cadre th´eorique pour le parall´elisme massif : celui des automates cellulaires. Et il a fait deux choix fondamentaux : fonctionnement synchrone et g´eom´etriesimple `a deux ou trois dimensions. Chacun de ces deux choix a ´et´edepuis fortement questionn´e.D’autres approches ont ´et´ed´evelopp´ees. Aucune n’a donn´ede nouveau paradigme de programmation pour le parall´elisme massif. Si von Neumann visait des mod`elesde dimension 3 imitant certains m´ecanismes de l’activit´ec´er´ebrale,(cf. [vN51] ou M. Delorme [Del99]), l’´etudedes auto- mates cellulaires s’av`ered´ej`afort complexe d`esla dimension 1. Formellement, en dimension 1, un r´eseau d’automates cellulaires index´epar Z (ensemble de tous les entiers) est la donn´eed’un triplet (Q, δ, I0) o`u Q est l’ensemble fini des ´etats, δ : Q3 → Q est la fonction de transition et 10 SOMMAIRE

I0 : Z → Q est la r´epartition initiale des ´etats.Notant It(i) l’´etatde la cel- lule en position i `al’instant t, l’´evolution du r´eseau ob´eit`ala loi suivante : It+1(i) = δ(It(i − 1),It(i),It(i + 1)), i.e. le prochain ´etatd’une cellule ne d´epend que de son ´etatactuel et des ´etatsactuels de ses deux voisines. La notion s’´etend`ades indexations par N ou {1, . . . , n} en rajoutant `a δ des variantes pour le cas des bords (cas i = 0 pour N ou i = 1, n pour {1, . . . , n}). Elle s’´etendaussi `ades dimensions sup´erieureset, plus g´en´eralement, `ades indexations par les sommets d’un graphe de degr´e d born´e(d ´etant le nom- bre maximum de voisins d’un sommet). Le choix de von Neumann du caract`eresynchrone apparaˆıtcomme un axiome puissant pour un d´eveloppement th´eorique. En asynchrone, des th´eor`emes existent certes, mais on n’approche pas du tout la richesse du synchrone. Citons quelques r´esultats,

• En deux dimensions, sur Z × Z, l’automate cellulaire de von Neumann `a29 ´etats,1949 [vN66], qui est auto-reproducteur (au mˆemesens que pour les virus informatiques) et Turing-complet (c’est-`a-direcapable de calculer toute fonction calculable). Am´elior´epar E.F. Codd, 1964 [Cod68] (par ailleurs inventeur des bases de donn´eesrelationnelles) avec 8 ´etatsen mimant des fonctionnements de biologie cellulaire.

• Sur Z × Z encore, l’extraordinaire richesse du populaire Jeu de la Vie de John H. Conway (1970) qui est un automate cellulaire `a2 ´etats.

• La synchronisation possible dans n’importe quelle g´eom´etriede graphe de degr´eborn´e(Pierre Rosenstiehl, 1966 [Ros86]). De plus, ceci peut se faire avec tol´eranceaux pannes (Tao Jiang, 1989 [Jia92], cf. aussi [Yun06, Gri06] pour des am´eliorations ult´erieures).

Le deuxi`emechoix de von Neumann, celui d’une g´eom´etrie simple `adeux dimensions a ´et´evalid´ea contrario par la malheureuse exp´eriencede la “Connection machine” (1980), bas´eesur les travaux de Daniel Hillis [Hil86] et `alaquelle a particip´ele prix Nobel Richard Feynman [Hil89]. Constitu´ee de 65 536 processeurs, elle a ´et´econnect´eecomme un hypercube de di- mension 16. Mais personne n’a su exploiter r´eellement le parall´elismemas- sif ainsi offert. Est-ce si ´etonnant ? qui s’y retrouve pour programmer dans un tel hypercube ? Et ce fut un ´echec commercial qui a gel´epour longtemps l’impl´ementation du parall´elismemassif. Mais aujourd’hui la demande d’un paradigme de programmation massivement parall`elerevient avec force, soutenue par les grands noms de l’industrie informatique. Et cette probl´ematiqueapparaˆıtr´eguli`erement jusque dans des articles du New 1.2. EMERGENCE DE LA NOTION DE CALCULABILITE´ 11

York Times et du Wall Street Journal... Revenant aux id´eesde von Neumann avec la g´eom´etrie´el´ementaire, d’autres voies sont aujourd’hui explor´eespour forger des outils th´eoriquespermettant de maˆıtriserle parall´elisme massif, cf. J. Mazoyer & J.B. Yun`es[MY10].

1.2.6 Un mod`ele`apart : le Lambda-calcul Quelques mois plus tˆotque Turing, et de fa¸conind´ependante, ´etaitarriv´e`ala conviction d’avoir obtenu un mod`elecapturant la notion de calcul effectif : le λ-calcul qu’il avait d´evelopp´edepuis le d´ebutdes ann´ees 1930. L’article [Chu36] pr´esente son argumentation. Sans pouvoir rentrer de fa¸conapprofondie dans le λ-calcul, mentionnons qu’il s’agit d’un langage de termes construit `apartir de deux op´erations(cf. aussi la Remarque en fin du §1.6.4) : • l’application (t u) d’un terme t `aun autre terme u. Son intuition est celle de l’application d’une fonction `aun objet. La difficult´econceptuelle ´etant qu’en λ-calcul tout est fonction, il n’y a aucun typage1. • l’abstraction λx t d’un terme t relativement `aune variable x (qui peut figurer ou non dans t). Son intuition est celle de la fonction qui `aun objet x associe t (qui peut d´ependre de x). Ce langage de termes est compl´et´e par une notion de r´eduction, la β- r´eduction,qui remplace l’application d’un terme u `aune abstraction λx t par le terme t(u/x) obtenu en substituant u `a x dans t (il y a un petit probl`eme de clash de variable li´eesur lequel nous n’insisterons pas). Le λ-calcul est ainsi le premier exemple de syst`emeabouti de r´e´ecriture. Comment le λ-calcul peut-il ˆetreun mod`elede calcul ? O`usont les entiers ? L’id´ee,tr`esoriginale, de Church est d’identifier un entier n au terme Churchn qui repr´esente la fonctionnelle qui it`ere n fois une fonction. Par exemple, le terme Church3 qui repr´esente l’entier 3 est λf λx (f(f(fx)). De la sorte, `a chaque terme t on peut associer la fonction sur les entiers qui associe `aun entier n l’entier p si le terme (t, Churchn) peut se r´eduire`a Churchp. Church et Kleene ont montr´eque les termes du λ-calcul repr´esentent exactement les fonctions partielles calculables (cf. §1.3.1). Le λ-calcul peut ˆetretyp´e,ce qui permet d’assurer la terminaison des r´eductions, et de d´efinirdes fonctions totales. Dans la section 1.6, nous montrerons com- ment un λ-terme peut ˆetrevu comme l’interpr´etationd’une d´emonstration. Pour aller plus loin, nous recommandons les livres [Bar80, HS86, Kri90, Han94].

1Il existe, bien sˆur,des versions typ´eesdu λ-calcul, mais celui consid´er´epar Church n’est pas typ´e. 12 SOMMAIRE

1.2.7 La th`ese de Church et ses diff´erentes versions Le fait que tous les mod`elesconsid´er´esaux §1.2.1 `a1.2.6 conduisent `ala mˆemenotion de calculabilit´ea ´et´etr`esvite r´ealis´e. Ce qui a conduit `ala th`esede Church-Turing, exprim´eeen fait pour la premi`erefois par Stephen Kleene, alors ´etudiant d’Alonzo Church : Ce qui est effectivement calculable est calculable par une machine de Turing. Dans cette formulation, la premi`erenotion de calculable fait r´ef´erence`aune notion donn´eeintuitive, alors que la seconde notion de calculable signifie “calculable par une machine de Turing” [Gan80, Cop02, Ord06]. Les discus- sions originales de Church, Kleene et Turing sont relatives `ades dispositifs algorithmiques de d´eduction,si l’on veut `ala puissance de la d´eduction formelle, et non pas `ala notion de machine ou de dispositif physique de calcul. Comme l’argumente tr`esjustement dans [Cop02], cette th`esea subi un glissement s´emantique historique qui m`enesouvent `ala confondre maintenant avec la th`esesuivante, nomm´eeth`ese M dans [Gan80], et parfois nomm´ee version physique de la th`esede Church: Ce qui peut ˆetrecalcul´epar une machine peut l’ˆetrepar une machine de Turing. Dans cette derni`ere,la notion de machine est intuitive, et est suppos´eeob´eir aux lois physiques2 du monde r´eel[Cop02]. Sans cette hypoth`ese,la th`ese est facile `acontredire, cf. les contre-exemples dans [Ord06] ou dans [CS99]. Observons que cette variante de la th`ese est intimement reli´eeau probl`eme de la mod´elisationde notre monde physique, c’est-`a-direau probl`emede comprendre si les mod`elesde notre monde physique sont correctement reli´es `ace dernier. En fait, une variante proche de la derni`ere th`eseest la suivante: Tout processus qui admet une description math´ematiquepeut ˆetresimul´epar une machine de Turing [Cop02]. Encore une fois (et pour globalement les mˆemescontre-exemples en fait que pour la th`esephysique), si le processus n’est pas contraint de satisfaire les lois physiques de notre monde r´eelalors cette th`eseest facile `acontredire [Cop02]. Ces trois th`esessont ind´ependantes : la premi`ereconcerne la puissance

2Sinon `ases contraintes sur les ressources. 1.2. EMERGENCE DE LA NOTION DE CALCULABILITE´ 13 des syst`emesformels; la seconde concerne la physique du monde qui nous entoure [Smi99, Cop02, Yao03]; la troisi`emeconcerne les mod`elesque nous avons du monde qui nous entoure [Smi99, Cop02, Yao03]. Chacune de ces th`eses, faisant r´ef´erence`aune notion intuitive, ne saurait ˆetrecompl`etement prouv´ee3. Il peut toutefois ˆetreint´eressant de discuter ces th`eses. D’une part, il est possible de chercher `ad´efinirun certain nombre d’axiomes minimaux que doivent satisfaire un syst`emeformel, ou une machine physique pour rendre ces th`esesprouvables. Cela permet de r´eduireces th`eses`ades hypoth`esesminimales sur les syst`emesconsid´er´es,et peut aider `ase conva- incre de leur validit´e[Gan80, DG08, BD08]. D’autre part, si l’on prend chacune de ces th`esesde fa¸concontrapos´ee, chacune signifie que tout syst`emequi calcule quelque chose de non calculable par une machine de Turing doit utiliser un ingr´edient, que nous appellerons ressource, qui soit n’est pas calculable algorithmiquement, pour la premi`ere, soit n’est pas calculable par une machine physique, pour la seconde, soit n’est pas calculable par un mod`elede machine physique, pour la troisi`eme.Dans tous les cas, on peut qualifier (si besoin par d´efinition)une telle ressource de “non-raisonnable”. Il peut alors sembler important de discuter ce qui fait qu’une ressource peut ˆetrenon raisonnable, ind´ependamment de la v´eracit´e de chacune des th`eses,pour mieux comprendre le monde et les mod`elesdu monde qui nous entourent. Enfin, on peut observer que ces th`esesexpriment des faits tr`esprofonds sur la possibilit´ede d´ecrirepar les math´ematiquesou par la logique le monde qui nous entoure [Dow07], et plus globalement sur les liens entre calculabilit´e, math´ematiqueset physique : - la nature calcule-t-elle ? - quels sont les liens entre non-d´eterminisme,chaos, non-pr´edictibilit´e,et al´eatoire[LP09] ?

1.2.8 Axiomatisation de la th`esede Church par Gandy Robin Gandy propose dans [Gan80] de r´eduirela th`esephysique de Church `aquatre principes (assez techniques). L’int´erˆetde cette axiomatisation est que l’on peut alors prouver math´ematiquement que ce qui est calculable par un dispositif physique satisfaisant `aces quatre principes est calculable

3En fait, la notion de calcul, ou de machine, est souvent d´efiniedans nombre d’ouvrages de calculabilit´eou de complexit´e,en supposant ces th`eses(ou l’une de ces th`ese)comme vraie. 14 SOMMAIRE par machine de Turing. Autrement dit, Gandy propose de remplacer la th`esephysique de Church par la th`esequ’un syst`emem´ecaniquephysique d´eterministediscret satisfait `aces quatre principes. Gandy suppose que l’espace physique est l’espace g´eom´etriqueordinaire `atrois dimensions. Suiv- ant [Dow07], on peut dire que l’argumentation de Gandy traduit dans ces quatre principes deux grandes hypoth`eses relatives `ala nature physique : la finitude de la vitesse de la transmission de l’information et la finitude de la densit´ede l’information. La discussion de Gandy se limite aux syst`emes discrets digitaux, et ´ecarteexplicitement les syst`emesanalogiques d`esson d´ebut.D´evelopp´eepour les syst`emesd´eterministes,elle peut s’´etendreaux syst`emesnon-d´eterministes assez facilement. Les principes de Gandy sont satisfaits par tous les mod`elesde calcul dis- crets usuels, y compris ceux qui sont massivement parall`elescomme le jeu de la vie (cf. §1.2.5). En revanche, les deux hypoth`esesphysiques mentionn´ees plus haut, ne sont pas n´ecessairement vraies dans toute th´eoriephysique. Il peut donc ˆetreint´eressant de comprendre ce qui se passe par exemple en m´ecaniquequantique, ou en physique relativiste. Pour la physique quan- tique, nous renvoyons `a[Nie97] pour une discussion des sources de non- calculabilit´e,et les cons´equences`aen tirer sur la th`esede Church ou sur nos mod`elesphysiques. L’article [AD08] discute par ailleurs de principes `a la Gandy qui permettraient de capturer la th´eoriedes calculs quantiques. Mentionnons que l’axiomatisation de Gandy a ´et´esimplifi´eeet ´etendue ult´erieurement par diff´erents travaux de Wilfried Sieg: voir par exemple [Sie99, Sie94, Sie97, Sie08]. Une toute autre axiomatisation de la notion d’algorithme, due `aGurevich, sera vue en §1.4.

1.3 Th´eoriede la calculabilit´e

Nous avons vu plus haut la diversit´edes mod`elesde calcul et le fait remar- quable que tous conduisent `ala mˆemeclasse de fonctions calculables. Fait qui conduit `ala th`esede Church-Kleene-Turing assurant que chacun d’eux est une formalisation de la notion intuitive de calculabilit´e.

1.3.1 Calculs qui ne s’arrˆetent pas Un autre fait important est que, dans chacun de ces mod`eles, il y a des calculs qui ne s’arrˆetent pas. Comme chacun le sait, il n’y a pas non plus de langage de programmation des seules fonctions calculables. Il y a toujours des programmes qui ne terminent pas dans certains cas, exp´eriencebanale de tout programmeur. . . 1.3. THEORIE´ DE LA CALCULABILITE´ 15

D’o`ula notion de fonction partielle calculable (ou fonction r´ecursive par- tielle) : fonction non partout d´efiniedont la valeur l`ao`uelle est d´efinieest donn´epar le r´esultatd’un algorithme. La d´enomination “fonction partielle calculable” n’est pas tr`esheureuse car le qualificatif partiel a un double sens : d’une part, il exprime que la fonction est partielle, c’est-`a-direnon partout d´efinie,d’autre part, la calculabilit´ede cette fonction est partielle car elle ne permet pas de d´ecidersi la fonction est ou non d´efinieen un point mais seule- ment de connaˆıtresa valeur lorsqu’elle est d´efinie. Daniel Lacombe, dans les ann´ees1960, avait essay´e(sans succ`es) d’introduire la d´enominationbien meilleure de “semi-fonction semi-calculable” ou de “fonction partielle par- tiellement calculable” (cf. [Lac60], §1.9). La contrepartie ensembliste de cette notion de fonction partielle calculable est celle d’ensemble calculablement ´enum´erable(ou r´ecursivement ´enum´erable), c’est-`a-dire d’ensemble pour lequel il existe une ´enum´eration des ´el´ementsqui est calculable. Ainsi, si un ´el´ement est dans l’ensemble, on finit par le savoir. En revanche, si un ´el´ement n’y est pas, on n’a a priori aucun moyen de le savoir. Ce ph´enom`enede calculabilit´epartielle peut apparaˆıtrecomme une scorie de la calculabilit´e,en fait, il s’agit d’un trait fondamental qui permet une vraie th´eoriede la calculabilit´e.Il est important de le souligner: Malgr´ele grand nombre de livres intitul´es“th´eoriede la calculabilit´e”,il n’y a pas de th´eoriesignificative de la calculabilit´e.En revanche, il y a une remarquable th´eoriede la calculabilit´epartielle. Citons quelques r´esultatsspectaculaires que nous ´enon¸conspour les fonctions sur les entiers, mais on pourrait le faire pour les fonctions sur toute autre famille d’objets finis : mots, arbres ou graphes finis. . .

1.3.2 Trois th´eor`emes“positifs” en calculabilit´epartielle Th´eor`emed’´enum´eration. Adoptons la convention d’´ecriture f(e, x) = (1) 2 fe(x). Il existe une fonction partielle calculable ϕ : N → N telle que la (1) famille des fonctions x 7→ ϕe (x), e ∈ N, soit exactement la famille des fonc- tions partielles calculables ϕ : N → N. Mˆemechose pour les fonctions avec (k) 1+k k variables et une fonction ϕ : N → N. De mani`ereplus intuitive, la fonction partielle calculable ϕ(1) correspond `ala d´efinition d’un interpr´eteur. (1) (1) Autrement dit, ϕ d´enoteune machine de Turing universelle. Ainsi, ϕe (x) est l’´evaluation du programme e sur l’entr´ee x. Le livre de Jones [Jon97] fait le pont entre la calculabilit´eet la th´eoriede la programmation. La vision en terme de machine de Turing universelle conduit `aune ques- tion naturelle, celle de la complexit´ed’une telle machine. Le nombre d’´etats 16 SOMMAIRE est une mesure qui s’impose. Cependant, ce n’est pas une mesure absolue car si l’alphabet de la machine est riche, on peut coder des ´etatspar des lettres. C’est donc le couple ( nombre d’´etats,nombre de lettres) qui est pris en consid´erationcomme “taille” d’une machine. A l’heure actuelle, les plus petites machines de Turing universelles connues ont les tailles suivantes4 : 2 × 18, 3 × 9, 4 × 6, 5 × 5, 7 × 4, 10 × 3, 19 × 2 (cf. Rogogine and al. [Rog96, KR02, Bai01]; voir aussi [NW06] pour d’int´eressantes variantes de cette question). On ne sait pas quels sont les meilleurs couples possibles, il a seulement ´et´eprouv´e[Pav73, Pav78, Kud96] que, pour tout n, les couples 1 × n, 2 × 3, 3 × 2 ne sont pas des tailles de machines universelles car le probl`emede l’arrˆetde telles machines est d´ecidable,cf. §1.3.3. Th´eor`emedu param`etre(ou s-m-n) (Kleene, 1943). Il existe une 3 fonction calculable totale s : N → N telle que, pour toute fonction partielle 2 calculable f : N → N de programme e, et tout x et y, on a (1) (2) ϕs(e,y)(x) = ϕe (x, y) La fonction s calcule un nouveau programme `apartir d’un programme exis- tant e et d’une entr´ee y. Ce r´esultata des cons´equencesd’une surprenante richesse. Tout d’abord, il dit qu’un programme et une entr´eesont inter- changeables : la grande id´eede John von Neumann pour les ordinateurs ! D’autre part, s sp´ecialiseun param`etredu programme e par y, et en cela le th´eor`emedu param`etrede Kleene est la pierre de base de l’´evaluation par- tielle. Au passage, mentionnons la projection de Futamura-Ershov-Turchin qui construit un compilateur en sp´ecialisant un interpr´eteurd’un langage de programmation avec le programme `acompiler. On se reportera encore aux travaux de Jones [Jon97]. Th´eor`emedu point fixe de Kleene (1938). Quelle que soit la fonc- tion partielle calculable f : N → N, il existe e telle que, pour tout x, (1) ϕe (x) = f(e, x). Ainsi, pour toute transformation de programme, il y a un programme qui fait la mˆemechose que son transform´e.Evidemment, en g´en´eralce programme (ainsi que son transform´e)ne fait rien, c’est-`a-dire ne termine pas. Mais ce n’est pas toujours le cas : ce th´eor`emeest, de fait, un des outils les plus puissants de la calculabilit´e. Ce th´eor`emea de nombreuses cons´equenceset il permet de montrer en g´en´eraldes r´esultats n´egatifsd’ind´ecidabilit´e. Les liens avec la logique ont ´et´eexplor´es, avec le brio qu’on lui connaˆıt,par Smullyan [Smu93, Smu94]. Ceci ´etant, un ex- emple amusant d’application positive est l’obtention d’un programme sans

4La machine 2 × 3 annonc´eeen 2007 par Alex Smith, cf. Wolfram prize, consid`erela question avec des conditions incompatibles avec ce qui est entendu ici. 1.3. THEORIE´ DE LA CALCULABILITE´ 17 entr´eedont la sortie est le programme lui-mˆeme! De tels programmes sont appel´esdes “quines”. Ce th´eor`emedu point fixe est aussi la source d’une th´eoriede la virologie, qui a d´ebut´eavec la th`esede Cohen [Coh86] et l’article de son directeur Adleman [Adl88]. L’implication du th´eor`emedu point fixe dans la virologie a ´et´e´eclairciedans [BKM06]. Enfin, ce r´esultatest aussi employ´een apprentissage [JORS99]. Apr`esces th´eor`emespositifs, voyons deux th´eor`emes catastrophes.

1.3.3 Deux th´eor`emes“n´egatifs”en calculabilit´epartielle

Ind´ecidabilit´ede l’arrˆet. Le domaine de ϕ(1) n’est pas calculable. En d’autres termes, on ne peut pas d´ecider par algorithme si le calcul sur une entr´eedonn´ees’arrˆeteou non. Th´eor`emequi peut aussi ˆetrevu comme th´eor`emeanti-chˆomage: on aura toujours besoin d’un chercheur pour es- sayer de d´eciderce genre de question, pas possible de le remplacer par un programme. Il est aussi difficile de r´esister`ala d´emonstrationde ce r´esultat qu’`aune boite de chocolats pendant la p´eriode des fˆetesde fin d’ann´ee.Pour (1) cela, consid´eronsla fonction partielle f telle que f(x) = 1 si ϕx (x) n’est (1) pas d´efinieet f(x) n’est pas d´efiniesi ϕx (x) est d´efinie. Si le domaine de ϕ(1) ´etaitcalculable, cette fonction f le serait aussi; mais nous allons montrer par contradiction que f n’est pas calculable. Pour cela supposons que r soit un programme de f. En d’autres termes, la fonction f est cal- (1) (1) cul´eepar ϕr . Regardons de plus pr`es f(r). Si f(r) = 1, alors ϕr (r) n’est (1) pas d´efinie,par d´efinitionde f. Puisque ϕr (r) = f(r), nous obtenons une contradiction. Essayons alors l’autre possibilit´e. Si f(r) n’est pas d´efinie, (1) alors ϕr (r) l’est, toujours par d´efinitionde f. Nous obtenons une seconde contradiction. Par cons´equent nous concluons que la fonction f n’est pas calculable. Cette d´emonstrationde l’ind´ecidabilit´edu probl`emede l’arrˆet utilise une construction par diagonalisation, un argument invent´epar Cantor pour montrer que le cardinal de l’ensemble des fonctions des entiers sur les entiers n’est pas d´enombrable. Une autre d´emonstrationconsiste `autiliser un argument quantitatif qui s’appuie sur le paradoxe de Richard [Ric06] et la fonction dite du castor affair´e[Rad62] (en anglais “busy beaver”). Th´eor`emede Rice (1954), version programmes. Quelle que soit la famille P de fonctions partielles calculables, si P n’est ni vide ni pleine (il y a une fonction partielle calculable dand P et une autre non dans P) alors (1) l’ensemble {e | ϕe ∈ P} des programmes qui calculent une fonction dans P n’est pas un ensemble calculable. Ainsi, on ne peut d´ecider aucune question 18 SOMMAIRE non triviale sur la s´emantiquedes programmes, et cela a des cons´equences fondamentales pour la d´emonstrationautomatique et la v´erificationde pro- gramme.

1.4 Formalisation de la notion d’algorithme

1.4.1 D´enotationnelversus op´erationnel Qu’est-ce qu’un algorithme. Si la formalisation de la notion intuitive de calculabilit´eest faite vers 1936, la question de savoir ce qu’est un al- gorithme reste cependant ouverte. En effet, les tr`esnombreux r´esultats ´etayant la th`esede Church montrent qu’il y a bien des formalisations de classes d’algorithmes (ceux associ´esaux machines de Turing, ceux des ma- chines RAM, ceux des programmes C, etc.) qui suffisent `acalculer toutes les fonctions (partiellement) calculables. Mais ces classes sont clairement dis- tinctes : un programme `ala Kleene avec boucles FOR et WHILE peut mimer et ˆetresimul´epar un programme de machine RAM ou un automate cellu- laire mais il n’a rien de commun avec (sauf l’association entr´ee/sortie).Ce sont donc des r´esultatsde compl´etuded´enotationnelle. Mais y a-t-il une no- tion formelle d’algorithme englobant toutes ces classes ? En d’autres termes peut-on obtenir une classe formelle d’algorithmes qui soit op´erationnellement compl`ete ? Soulignons que la th`esede Church ne dit rien `ace sujet : elle est relative au d´enotationnelpas `al’op´erationnel. Les tentatives de Kolmogorov & Uspensky et de Sch¨onhage. Le premier `as’attaquer `ace probl`emeest Kolmogorov vers 1953 [Kol53, KU58]. C’est dans ce but qu’il semble avoir introduit les machines de Kolmogorov- Uspensky (cf. §1.2.2). Mais il ne dispose pas d’outil lui permettant d’argumenter dans ce sens. En fait, on sait depuis les travaux de Yuri Gurevich, [DBG97], que ni ce mod`eleni celui des machines de Sch¨onhage(cf. §1.2.2) ne sont op´erationnellement complets. Cependant, des g´en´eralisationsle sont, cf. §1.4.2 ci-dessous.

1.4.2 Compl´etudeop´erationnelle Les ASM de Yuri Gurevich. Vers 1984, Yuri Gurevich [Gur88b, Gur00]. introduit une notion de machine compl`etement nouvelle, bas´eesur la logique : les machines abstraites `a´etats(en anglais “Abstract State Machines”, orig- inellement appel´ees “Evolving Algebras”). Une ASM est une structure mu- nie de fonctions (les relations sont confondues avec des fonctions `avaleurs Bool´eenes): 1.4. FORMALISATION DE LA NOTION D’ALGORITHME 19

• Certaines fonctions sont fixes. Elles constituent la partie statique de l’ASM et correspondent aux primitives de programmation (ou encore `aune biblioth`eque).

• D’autres peuvent ´evoluer au cours du calcul selon un programme ´ecrit dans un langage qui ne comprend que des affectations, la conditionnelle et une notion de bloc parall`ele. C’est la partie dynamique de l’ASM qui traduit l’environnement (par nature dynamique) du programme.

Ce mod`eleest extr`emement flexible et, en variant partie statique et vocab- ulaire dynamique, on arrive `asimuler “pas `apas” tous les mod`elesde calcul s´equentiel connus (cf. l’abondante litt´eraturecit´ee sur la page web de Gure- vich). On peut mˆemeam´eliorercette simulation “pas `apas” en “identit´e litt´erale”[GV09]. Compl´etudeop´erationnelle des ASM. Ces r´esultatsde simulation pas `apas justifient la th`esede Gurevich (ou th`esedu calcul s´equentiel), ´enonc´ee d`esla premi`erepublication, 1985 [Gur85], de Gurevich sur ce mod`ele:

Toute fa¸con“s´equentielle” de calculer est simulable pas `apas par une ASM.

C’est le premier r´esultatde compl´etudeop´erationnelle! Mentionnons que Gurevich a aussi ´etenduses travaux aux algorithmes par- all`eleset aux algorithmes concurrents, notions plus d´elicatesencore [BG03, BG08]. Compl´etudeop´erationnelledes hyper-KU et des hyper-Sch¨onhage. Yuri Gurevich [DBG97] a montr´equ’on peut simuler pas `apas les ASM par des g´en´eralisationsdes mod`elesde calcul de Kolmogorov-Uspensky et de Sch¨onhage,mod`elesg´en´eralis´esqui sont donc op´erationnellement complets. Dans ces g´en´eralisations, on remplace le ruban-graphe par un ruban hy- pergraphe de rang 3. Dans le cas non orient´e(cas hyper-KU), les arˆetes deviennent donc des hyper-arˆetesqui relient chacune une paire de sommet `aun troisi`emesommet. Dans le cas orient´e(cas hyper-Sch¨onhage), les arcs deviennent des hyper-arcs qui relient chacune un couple de sommets `aun troisi`emesommet. Sans passer aux hypergraphes, il suffit de rajouter aux mod`elesde calcul originaux de Kolmogorov-Uspensky et de Sch¨onhageune fonction injective de l’ensemble des couples de noeuds dans l’ensemble des noeuds ainsi que les inverses de cette injection (qui sont des fonctions partielles) pour qu’ils deviennent op´erationnellement complets. 20 SOMMAIRE

Compl´etudeop´erationnelle du Lambda-calcul. Un travail r´ecent, 2009 [FG10], montre que le comportement d’une ASM est simulable en lambda calcul, une ´etape de calcul de l’ASM ´etant simul´eepar un groupe de k r´eductionssuccessives en λ-calcul, o`u k est un entier fixe ne d´ependant que de l’ASM consid´er´eeet pas des entr´ees.Le λ-calcul est donc au moins aussi riche op´erationnellement que l’est le mod`eledes ASMs. Il est donc op´erationnellement complet. L’approche de Moschovakis. Une autre approche d’un mod`eleop´erationnellement complet a ´et´eentreprise par Yannis Moschovakis [Mos01] en utilisant la no- tion de d´efinitionpar plus petit point fixe. Elle rend compte de la notion d’algorithme `aun niveau plus abstrait que celui des ASM de Gurevich.

1.4.3 L’axiomatisation de la notion d’algorithme par Gure- vich Yuri Gurevich propose d’axiomatiser la notion d’algorithme par les trois axiomes suivants : i. Un algorithme d´etermineune suite “d’´etatsde calcul” pour chaque entr´eevalide.

ii. Les ´etatsd’une suite d’´etatsde calcul sont des structures d’un mˆeme langage logique qui ont toutes le mˆemedomaine.

iii. Le successeur d’un ´etat quelconque ne diff`erede cet ´etatque par ses interpr´etationssur un nombre fini born´ede points donn´espar une famille finie de termes du langage. Cette axiomatisation ainsi que sa justification est ´evidemment intimement li´ee`ala th´eoriedes ASM. Gurevich, 2000 [Gur00], prouve formellement sa th`ese`apartir de ces trois axiomes. Th`esede Church et th`esede Gurevich. Rajoutant un quatri`eme ax- iome, iv. Seules des op´erationsconsid´er´eescomme ind´eniablement calculables sont disponibles dans les ´etatsinitiaux. Nachum Dershowitz et Yuri Gurevich, 2008 [DG08] (qui font suite `a[BD08]), prouvent que tout processus calculatoire qui satisfait ces quatre axiomes v´erifiela th`ese de Church. La beaut´ede cette axiomatisation [DG08] est d’ˆetreg´en´erique,formelle, et bas´ee sur des formalismes commun´ement ad- mis. D’autre part, elle permet de r´eduireprouvablement tout doute sur sa 1.4. FORMALISATION DE LA NOTION D’ALGORITHME 21 validit´een doute sur l’un de ces quatre principes ´el´ementaires. Mentionnons qu’il est possible d’´etendreces r´esultats`ala notion d’algorithme parall`ele[BG03], et de la relier `ala notion d’algorithme quantique [GN03].

1.4.4 Compl´etudeop´erationnelleet r´ecurrence Nous avons mentionn´eau §1.2.1 que la boucle WHILE n’´etaitpas simulable `apartir de la boucle FOR. Lo¨ıcColson [Col91] est all´eplus loin dans cette investigation avec le probl`emesuivant : les algorithmes issus des d´efinitions primitives r´ecursives (c’est-`a-direceux construits avec composition et boucle FOR) suffisent-ils `aobtenir les algorithmes naturels et efficaces de calcul des fonctions primitives r´ecursives ? Colson prouve que non avec un exemple frappant. La fonction (x, y) 7→ min(x, y) qui donne le minimum de deux entiers ´ecritsen unaire est ´evidemment primitive r´ecursive. Un algorithme tr`essimple pour la calculer est de d´ecr´ementer en parall`ele(ou alternative- ment) chacun des deux arguments x, y jusqu’`aque l’un des deux devienne ´egal`az´ero. Cet algorithme suit les ´equationssuivantes: (∗) min(x, 0) = 0 min(0, x+1) = 0 min(x+1, y+1) = min(x, y)+1 et termine au bout de min(x, y) ´etapes. Cependant, cet algorithme ne provient pas d’une d´efinitionprimitive r´ecursive car une telle d´efinition utilise une r´ecurrencesur un argument particulier, et pas sur deux argu- ments `ala fois comme dans les ´equations(*). Colson prouve que tout algo- rithme issu d’une d´efinitionprimitive r´ecursive s’ex´ecuten´ecessairement en un temps proportionnel `a x ou bien proportionnel `a y, donc aucun ne peut travailler comme l’algorithme naturel (et plus rapide) en temps O(min(x, y)). N´eanmoins,Colson observe que la notion de d´efinitionprimitive r´ecursive ´etendueaux fonctionnelles (cf. G¨odel[G¨od58])permet d’obtenir cet algo- rithme : (b) (d) (a) M(0) = λy · 0 C(f)(0) = 0 min(x, y) = M(x)(y) (c) (e) M(x + 1) = C(M(x)) C(f)(y + 1) = f(y) + 1 o`u M : N → (N → N) et C :(N → N) → (N → N). Le lecteur s’en rendra compte en suivant le calcul de min(3, 7) selon ces ´equations: chaque application des ´equations(c) puis (e) est une d´ecr´ementation alternative des deux arguments (on a encadr´eces ´etapes)

(a) (c) (e) (c) min(3, 7) → M(3)(7) → C(M(2))(7) → M(2)(6) + 1 → C(M(1))(6) + 1 (e) (c) (e) (b) → M(1)(5) + 2 → C(M(0))(5) + 2 → M(0)(4) + 3 → (λy · 0)(4) + 3 → 0 + 3 → 3 22 SOMMAIRE

Ce type de r´esultata ´et´eensuite ´etendu`ad’autres familles d’algorithmes, cf. [Fre96, CF98], et `ad’autres fonctions tr`essimples telles le pgcd (plus grand commun diviseur), cf. Yiannis Moschovakis [Mos06] et Lou van den Dries [vdD03].

1.5 Calculabilit´esur les r´eels

Il existe diff´erents mod`elespour capturer les calculs sur les r´eels,mod`eles issus de motivations tr`esdiff´erentes.

1.5.1 Analyse r´ecursive

N´eedes travaux de Turing [Tur36], Grzegorczyk [Grz57], et Lacombe [Lac55], l’analyse r´ecursive consid`erequ’un r´eel α est calculable s’il est possible d’en produire algorithmiquement une repr´esentation, c’est-`a-direune suite d’approximations rationnelles qui converge rapidement vers ce r´eel,c’est-`a- −n dire encore une suite (qn)n∈N de rationnels telle que |qn − α| ≤ 2 pour −n tout n (on peut remplacer (2 )n∈N par toute autre suite r´ecursive (εn)n∈N de rationnels qui tend vers 0). Une fonction est calculable s’il est possible de produire algorithmique- ment une repr´esentation de son image, `apartir de n’importe quelle repr´esentation de son argument. Attention, la simplicit´ede cette d´efinitioncache une difficult´eli´ee`ala repr´esentation discr`etedu continu. Il est facile de montrer que, quelle que soit la base p ≥ 2, un r´eel α est r´ecursifsi et seulement si sa “partie frac- tionnaire” α −bαc (qui est dans l’intervalle [0, 1[) peut se repr´esenter par un mot infini r´ecursifen base p. Mais ceci ne passe pas aux fonctions r´ecursives sur les r´eels. Par exemple, on ne peut pas calculer par algorithme la suite des d´ecimalesen base 10 de 3x `apartir de celle de x. On peut seulement calculer une suite d’approximations de 3x. Ainsi, la repr´esentation par suite de Cauchy r´ecursive et rapide est essentielle pour la notion de fonction cal- culable sur les r´eels. Ce ph´enom`eneest un avatar d’un fait (n´egatif) tr`esimportant de l’analyse r´ecursive.

Th´eor`emede Rice (1954), version r´eels. On ne peut pas d´ecidersi un r´eelest nul. 1.5. CALCULABILITE´ SUR LES REELS´ 23 g - × - f −1 - R - R - - x Figure 1.1: Un GPAC engendrant les fonctions f(x) = cos(x) et g(x) = sin(x)

1.5.2 Mod`elede Blum, Shub et Smale Le mod`elede Blum, Shub et Smale [BSS89, BCSS98] a ´et´eintroduit comme un mod`elepour discuter de la complexit´ealg´ebriquede probl`emessur les r´eels. Dans celui-ci, on se fixe des op´erationsarithm´etiquesr´ealisablesen temps unitaire, et la complexit´ed’un probl`eme est mesur´eeen termes du nombre d’op´erations.Notons que, parmi les op´erationsadmises, il y a le test `az´erod’un r´eel.Ce mod`eleest donc incompatible avec l’analyse r´ecursive. . .

1.5.3 “General Purpose Analog Computer” de Shannon Le General Purpose Analog Computer a ´et´eintroduit par Claude Shannon, 1941 [Sha41], comme un mod`eledes machines analogiques de son ´epoque, en particulier de l’Analyseur Diff´erentiel de Vannevar Bush [Bus31] et des cir- cuits analogiques ´electroniques.Dans la version raffin´eeactuelle, cf. [Gra07], les unit´esde base d’un GPAC donnent les fonctions constantes, l’addition, la multiplication et les op´erateursd’int´egration(u, v) 7→ w o`u

Z t w(t) = u(x)v0(x)dx t0

(avec t0 quelconque). Ces unit´espeuvent ˆetreconnect´ees librement dans un circuit avec retours arri`erespour l’int´egration(feedback connexions). Une fonction est GPAC-engendr´eesi on peut la lire `ala sortie d’un tel circuit, cf. Figure 1.1. Les fonctions GPAC-engendr´eessont exactement les fonctions diff´erentiellement alg´ebriques,c’est-`a-direles solutions d’´equations diff´erentielles p(x, y, y0, y00, . . . , y(k)) = 0 o`u p est un polynˆome(Shannon [Sha41], voir Gra¸ca[Gra07]). Ce sont aussi les composantes des solutions ~0 ~y = (y1, . . . , yk) des syst`emesdiff´erentiels y = p(t, ~y), ~y(0) = ~a, o`u p est un k-uplet de polynˆomeset ~a un k-uplet de r´eels[GC03]. Ces fonctions GPAC-engendrables n’incluent pas toutes celles de l’analyse P 1 r´ecursive : manquent, par exemple, la fonction ζ(x) = n≥1 nx de Riemann R +∞ x−1 −t et la fonction Γ(x) = 0 t e dt, laquelle ´etend aux r´eels(mˆemeaux 24 SOMMAIRE complexes) la fonction factorielle n 7→ n! = 1×2×...×n. On peut cependant retrouver exactement les fonctions de l’analyse r´ecursive (Bournez, Cam- pagnolo, Gra¸ca& Hainry, 2007 [BCGH07]) comme celles qui sont GPAC- calculables au sens suivant (Gra¸ca,2004 [Gra04]) : • un GPAC est r´ecursifsi les r´eelsdes unit´esconstantes et des bornes inf´erieuresdes unit´esd’int´egrationsont tous r´ecursifs, • f : R → R est GPAC-calculable s’il existe deux fonctions g, ε engendr´ees par un GPAC r´ecursifet telles que, pour tout x, on ait ∀t |f(x) − g(t, x)| ≤ ε(t, x) et limt→+∞ ε(t, x) = 0.

1.5.4 Mod`elesde calcul `atemps continu Nous renvoyons `a[BC08b] pour un panorama des diff´erents mod`elesde calcul `atemps continu et de leurs propri´et´esdu point de vue de la calcu- labilit´eou de la complexit´e. En particulier, les mod`elesissus des r´eseaux de neurones formels [SS95], mod`elesde calcul dont la conception est tr`es sch´ematiquement inspir´eedu fonctionnement de vrais neurones (humains ou non)). Mentionnons que, dans plusieurs de ces mod`eles,il est possible d’exploiter le fait que l’on peut coder une suite non calculable dans un r´eel,ou d’utiliser le fait que l’on suppose une arithm´etiqueexacte, pour r´ealiserdes calculs super-Turing: voir par exemple [SF98] pour les r´eseauxde neurones.

1.5.5 Calculabilit´equantique Une machine de Turing quantique. Bien que Feynman ait pressenti l’int´erˆetd’un ordinateur quantique [Fey60, Fey84], le premier mod`elede calcul quantique est la machine de Turing quantique (MTQ) introduite par Deutsch [Deu85] en 1985. Cette machine de Turing est une exten- sion d’une machine probabiliste, o`uchaque transition s’effectue avec une amplitude (un nombre complexe) donn´ee. Les MTQ permettent de rendre compte de ph´enom`enesquantiques comme la superposition, les interf´erences et l’intrication. Bernstein et Vazirani [BV93] ont prouv´el’existence d’une MTQ universelle, c’est-`a-direcapable de simuler efficacement de fa¸conap- proch´eetoute MTQ. Yao [Yao93] a montr´eque les circuits quantiques, intro- duits par Deutsch [Deu89], sont polynomialement ´equivalents aux machines de Turing quantiques. Algorithmes et complexit´equantiques. Deutsch [Deu85], puis Deutsch et Jozsa [DJ92] ont d´emontr´el’int´erˆetdu calcul quantique en consid´erant le probl`emesuivant. Soit X l’ensemble des fonctions f : {0, 1}n → {0, 1} qui 1.5. CALCULABILITE´ SUR LES REELS´ 25 sont ou bien constantes ou bien ´equilibr´ees(c’est-`a-direque f prend aussi souvent la valeur 0 que la valeur 1). Le probl`emeest de d´ecidersi une fonc- tion de X est constante ou ´equilibr´ee.[DJ92] donne un algorithme quantique pour ce probl`emequi utilise un seul appel `al’oracle f, tandis que tout al- gorithme classique d´eterministepour ce probl`emen´ecessite 2n−1 + 1 appels. Si cet algorithme ne pr´esente pas d’application pratique, il est cependant la premi`erepreuve de la sup´eriorit´edu calcul quantique sur le calcul classique. Plus utile, l’algorithme de Grover [Gro96] permet de trouver un ´el´ement √ dans une base de donn´eesnon structur´eede taille n en O( n) requˆetes, alors que Ω(n) requˆetessont n´ecessaires`aun algorithme classique. La principale classe de complexit´equantique est BQP [BV93]. Elle est d´efiniepar analogie `ala classe probabiliste BPP . La classe BQP (resp. BPP ) est celle des probl`emes de d´ecisionqui peuvent ˆetrer´esolusen temps polynomial par une machine de Turing quantique (resp. probabiliste) avec une probabilit´ed’erreur inf´erieure`a1/3. Comme PTIME ⊆ BPP ⊆ BQP ⊆ P SP ACE [BV93], prouver une s´eparationentre BPP et BQP est une question consid´er´eecomme difficile car elle permettrait de r´esoudre le probl`emeouvert PTIME =? P SP ACE. Pourtant plusieurs algorithmes quantiques, comme l’algorithme de Si- mon [Sim94] et celui de Shor [Sho94], semblent t´emoignerd’une telle s´eparation : l’algorithme de Shor permet la factorisation et le calcul du logarithme dis- cret en temps polynomial, alors qu’aucun algorithme classique polynomial n’est connu pour r´esoudreces probl`emes. En revanche, aucun algorithme quantique polynomial pour r´esoudreun probl`eme NP -complet n’est connu, et les classes NP et BQP sont `al’heure actuelle incomparables.

1.5.6 Le probl`emede l’unification de ces mod`eles Dans certains des mod`elesmettant en jeu des r´eels,il est possible d’exploiter le fait que l’on peut coder une suite (non-calculable) dans un r´eel,ou utiliser le fait que l’on suppose une arithm´etiqueexacte pour r´ealiserdes calculs super-Turing: voir par exemple [SF98] pour les r´eseaux de neurones. Il est clairement impossible d’unifier toutes les approches: par exem- ple toute fonction calculable en analyse r´ecursive est n´ecessairement con- tinue, alors que des fonctions discontinues sont calculables dans le mod`ele initial de Blum Shub et Smale [BSS89]. Cependant, si l’on met de cot´e l’approche alg´ebriquedu mod`elede Blum Shub et Smale, certains r´esultats r´ecents ´etablissent l’´equivalence entre diff´erents mod`eles(voir par exemple [BCGH06, BCGH07, GC03]). Il n’est pas cependant clair `ace jour qu’il 26 SOMMAIRE puisse exister un concept unificateur pour les mod`elescontinus analogue `a la th`esede Church pour les mod`elesdiscrets/digitaux: nous renvoyons au survol [BC08b] pour des discussions sur le sujet.

1.5.7 Calculabilit´eau-del`ade la th`esede Church ?

Il est int´eressant de suivre [Ord06], et de faire un rapide panorama (non- exhaustif) de diff´erents moyens d’obtenir des syst`emesou des machines plus puissants que les machines de Turing.

Calculabilit´eavec oracle. La premi`erefa¸con,propos´eepar Turing lui- mˆemedans [Tur39] consiste `aconsid´erer des machines avec oracles, qui cor- respondent `ades boites noires capables de r´epondre `acertaines questions. Cela permet classiquement de “relativiser” nombre de r´esultatsen calcula- bilit´eet complexit´e,mais aussi d’obtenir des mod`elesplus puissants que les machines de Turing (d`esque l’oracle n’est pas calculable). Il y a plusieurs types de machines ou de syst`emesdans l’esprit des machines `aoracles. Cela inclut les machines de Turing coupl´eesde [Cop97], qui sont des machines de Turing connect´ees`aun canal d’entr´ee,ou les r´eseauxde machines qui exploitent le fait qu’un temps de synchronisation peut ˆetreir- rationnel et non-calculable [CS99], ou les machines coupl´ees`ades dispositifs physiques comme les scatter-machines de [BCLT08], ou utilisant des tirages al´eatoiresbiais´escomme dans [OK04].

Machines acc´el´erantes. Une seconde approche consiste `aconsid´ererdes machines acc´el´erantes, c’est-`a-dire`aconsid´ererdes machines qui effectuent leur premi`ereop´erationen temps unitaire, et chaque op´erationult´erieure en un temps ´egal`ala moiti´ede l’op´erationpr´ec´edente. Cette id´ee,anci- enne, d´ej`apr´esente dans [Bla26, Rus35, WK27], est aussi pr´esente dans les machines `atemps ordinal: voir par exemple [Ham02]. Il a ´et´eargument´e que diff´erents syst`emesphysiques pouvaient en r´ealiserdes impl´ementations: voir par exemple [CP02] `apropos de la m´ecaniquequantique, ou [Hog94] `a propos de calculs par trous noirs.

Autres machines. Il est aussi possible de consid´erer diff´erentes variantes des machines de Turing: des machines exploitant un non-d´eterminisme non born´e[STvEB89], travaillant sur des entr´eesinfinies (voir par exem- ple [Wei00] pour une pr´esentation des machines de Turing de type 2), des machines avec une infinit´ed’´etats[Ord02], des machines bruit´ees[AC05], etc. . . 1.6. DEDUCTION´ ET CALCUL : LA NATURE ALGORITHMIQUE DES PREUVES CONSTRUCTIVES27

1.6 D´eductionet calcul : la nature algorithmique des preuves constructives

1.6.1 Les preuves constructives comme langage de program- mation Un des r´esultatsles plus ´etonnants de l’informatique th´eoriqueet de la pro- grammation est le lien profond qui existe entre d´eductionet calcul. La propri´et´edu t´emoin. L’illustration la plus simple de la nature al- gorithmique des preuves est donn´eepar la propri´et´edu t´emoin des preuves “constructives”5 :

D’une preuve constructive d’une formule de la forme ∃y A, il est possible d’extraire un terme u et une preuve constructive de la formule A(u/y)6.

De la mˆeme fa¸con,d’une preuve constructive d’une formule exprimant l’existence d’une fonction, c’est-`a-dired’une formule de la forme ∀x∃y A, il est possi- ble d’extraire un programme calculant une telle fonction : `apartir d’un terme t (l’entr´eedu programme) et de la preuve constructive de la formule ∀x∃y A, on peut (par instanciation) trouver une preuve constructive de la formule ∃y A(t/x) et donc un terme u (la sortie du programme) ainsi qu’une preuve constructive de la formule A(t/x, u/y). Ainsi, le langage des preuves constructives peut-il ˆetrevu comme un langage de programmation dont le m´ecanismed’ex´ecutiondes programmes co¨ıncideavec celui de l’extraction du t´emoindans les preuves, m´ecanismeappel´eaussi r´eductiondes preuves.

Un langage de programmation avec sp´ecificationprouv´ee. Un avan- tage de ce langage des preuves constructives sur les autres langages de pro- grammation est, qu’en plus de la sortie u, le m´ecanismed’extraction fournit une preuve de la formule A(t/x, u/y), c’est-`a-dire une preuve de ce que t and u satisfont bien la sp´ecification A. On imagine combien ce peut aussi ˆetreun outil puissant en intelligence ar- ticielle pour la recherche de preuve de sp´ecification[KV07]. C’est aussi un langage de programmation dont tout programme

5On dit aussi preuve “intuitionniste”. Nous pr´ef´eronsle qualificatif “constructive” car il met l’accent sur le caract`ereop´erationnel,algorithmique donc, alors que le qualificatif “intuitionniste” rel`eve du vocabulaire philosophique. 6A(u/y) est la formule A dans laquelle la variable y est substitu´eepar le terme u. 28 SOMMAIRE termine. Certes, cette propri´et´einterdit au langage d’ˆetreTuring com- plet : d’une part, il ne permet pas de programmer toutes les fonctions calculables partout d´efinies(il en manquera), d’autre part, pour une fonc- tion qu’il permet de calculer, il ne pourra pas en impl´ementer tous les algorithmes de calcul possibles. N´eanmoins,ce langage des preuves con- structives (tout particuli`erement dans ses versions ´etenduesaux th´eories, cf. §1.6.6) est d’une grande richesse expressive, contrairement aux autres langages de programmation dans lesquels tout programme termine (comme le langage de la r´ecursivit´eprimitive avec la seule boucle FOR, cf. §1.2.1). La raison en est qu’il permet d’exprimer toutes les fonctions dont l’existence peut ˆetreprouv´eedans la th´eorieconsid´er´ee. En effet, si on peut prouver l’existence d’une fonction dans cette th´eorie,alors cette preuve d’existence est elle-mˆemeun programme de calcul de cette fonction (dans ce langage des preuves). . . Pour aller plus loin dans cette utilisation des langages de preuves comme langages de programmation, voir l’article de Christine Paulin-Mohring et Benjamin Werner, 1993 [PMW93].

1.6.2 Les logiques et leurs syst`emesformels La notion de prouvabilit´e,c’est d´efinirla famille des formules qui seront dites prouvables, est souvent d´efiniepar rapport `aun syst`emeformel. La prouvabilit´eest donc m´ecanisable.La notion de v´erit´es’exprime par rapport `aune s´emantique. Le lien entre entre prouvabilit´eet v´erit´eest ´etablipar un th´eor`emede compl´etudequi a d´emontr´een 1930 par G¨odel.Il s’´enonce ainsi: Une formule est valide si et seulement si elle est prouvable Rappelons qu’une formule est valide si elle est vraie dans toute interpr´etation du syst`emeformel. Nous renvoyons le lecteur aux livres [CL83a, CL83b] qui serait int´er´ess´epar la logique math´ematique. La logique classique est encore parfois pr´esent´eepar une liste d’axiomes et la r`egle modus ponens, appel´esyst`eme`ala Hilbert. La d´efinitiond’une logique par un syst`emeformel particulier n’est pas anodin. D´esles ann´ees30 avec les travaux de Gentzen, on sait rendu compte que le calcul des s´equents ou la d´eductionnaturelle avait de meilleures propri´et´es(´eliminationdes coupures) que les syst`emes`ala Hilbert. De mˆeme,la m´ethode des tableaux est utilis´eeen d´eductionautomatique. La logique lin´eaire,d´evelopp´eepar Jean-Yves Girard [Gir87], en est aussi un exemple. Intuitivement, chaque formule compte. Autrement A ∧ A n’est 1.6. DEDUCTION´ ET CALCUL : LA NATURE ALGORITHMIQUE DES PREUVES CONSTRUCTIVES29 pas ´equivalente `a A ce qu’il faut comprendre comme avoir deux ressources et diff´erent d’une seule. Techniquement, cela revient `ainterdire les r`eglesstruc- turelles de la contraction et de l’affaiblissement dans un calcul des s´equents. De plus, les r´eseauxde preuve sont une g´en´eralisation,introduite pour la logique lin´eaire, de la d´eductionnaturelle. Le petit livre [GLT89] explique tout cela merveilleusement bien.

1.6.3 Les preuves constructives et leurs notations La d´eductionnaturelle constructive (ou intuitionniste) Gerhard Gentzen, 1934 [Gen34] (Voir aussi Prawitz [Pra65]) a propos´eun syst`eme: la d´eduction naturelle constructive (ou intuitionniste). Comme son nom l’indique, ce syst`emesuit de tr`espr`esles fa¸consnaturelles de faire des preuves, c’est-`a-dire les fa¸consde faire des math´ematiciens. En par- ticulier, pour prouver une formule de la forme A ⇒ B, ce que fait un math´ematicienest de supposer A et de prouver alors B en se servant de cette hypoth`ese A. Ceci conduit `ad´efinirnon pas directement la famille des formules prouvables mais une famille de couples constitu´esd’une liste finie de formules hypoth`eses(appel´eele contexte) et d’une formule conclu- sion. Un tel couple est appel´eun s´equent et est not´e A1, ..., An ` B, la liste (A1, ..., An) ´etant le contexte, et la formule B la conclusion. Les axiomes et les r`eglesde d´eductionde la d´eductionnaturelle sont donn´es par la Table 17. On notera que la r`egled’introduction du ⇒ correspond bien `ace qu’on a dit plus haut de la mani`erede faire du math´ematicien.Un examen attentif de ces r`eglesmontre que chacune correspond `aune fa¸conde raisonner tout `a fait naturelle et usuelle. Notons enfin que les axiomes sont triviaux puisqu’il s’agit des s´equents dont la conclusion figure dans le contexte. . . Le lecteur peut s’´etonnerde ne pas y trouver de r`eglepour la n´egation.La raison en est que l’on consid`ereque la n´egation ¬A est la formule A ⇒ ⊥, c’est-`a-dire la formule qui exprime que A implique le faux. A partir de ces axiomes et r`egles,on d´efinitune preuve comme un arbre dont les sommets sont ´etiquet´espar des s´equents de sorte que (i) les feuilles sont ´etiquet´eespar des axiomes, (ii) chaque noeud interne ayant N fils (o`u N = 1, 2, 3) est ´etiquet´epar une r`egleayant N pr´emisses.

7Dans cette table, les axiomes ont ´et´erepr´esent´escomme des r`eglessans pr´emisse. D’autre part, les lettres A, B, C repr´esentent des formules quelconques et la lettre t repr´esente un terme quelconque. Il s’en suit que chaque axiome est en fait une liste infinie d’axiomes et chaque r`egleune liste infinie de r`egles. 30 SOMMAIRE

axiome A1, ..., An ` Ai

Γ ` ⊥ ⊥-´elim >-intro Γ ` A Γ ` >

Γ ` A ∧ B Γ ` A ∧ B Γ ` A Γ ` B ∧-´elim ∧-intro Γ ` A Γ ` B Γ ` A ∧ B

Γ ` A ∨ B Γ,A ` C Γ,B ` C Γ ` A Γ ` B ∨-´elim ∨-intro Γ ` C Γ ` A ∨ B Γ ` A ∨ B

Γ ` A Γ ` A ⇒ B Γ,A ` B ⇒-´elim ⇒-intro Γ ` B Γ ` A ⇒ B

Γ ` ∀x A Γ ` A ∀-´elim ∀-intro Γ ` A(t/x) Γ ` ∀x A (si x n’est pas libre dans Γ)

Γ ` ∃x A Γ,A ` B Γ ` A(t/x) ∃-´elim ∃-intro Γ ` B Γ ` ∃x A (si x n’est pas libre dans Γ,B)

Table 1.1: Axiomes et r`eglesen d´eductionnaturelle constructive (ou intu- itionniste) 1.6. DEDUCTION´ ET CALCUL : LA NATURE ALGORITHMIQUE DES PREUVES CONSTRUCTIVES31

Un exemple de preuve est le suivant ax ax p ⇒(q ⇒r), q, p `p ⇒(q ⇒r) p ⇒(q ⇒r), q, p `p ⇒-´el ax p ⇒ (q ⇒ r), q, p ` q ⇒ r p ⇒(q ⇒r), q, p `q ⇒-´el p ⇒ (q ⇒ r), q, p ` r ⇒-intro p ⇒ (q ⇒ r), q ` p ⇒ r ⇒-intro p ⇒ (q ⇒ r) ` q ⇒ (p ⇒ r)

Les s´equents prouvables sont les s´equents qui ´etiquetent les preuves. Remar- quons aussi que les arbres ne v´erifiant que la condition (ii) correspondent `a des r`eglesd´eriv´eesdont les pr´emissessont toutes les feuilles qui ne sont pas des axiomes. Rajouter de telles r`eglesd´eriv´eesn’augmente pas la famille des s´equents prouvables. Enfin, le cadre usuel de prouvabilit´ese retrouve comme suit : - une preuve d’une formule A est une preuve du s´equent de contexte vide ∅ ` A, - une preuve d’une formule A dans une th´eorieaxiomatique T (c’est-`a-dire un ensemble T de formules) est une preuve d’un s´equent Γ ` A dont le contexte Γ est inclus dans T . Remarque. Comme on est en logique constructive, certaines propri´et´es “classiques” ne sont plus prouvables. Nous citons ci-dessous trois exemples de tautologies de la logique “classique” (le premier est la formule de Pierce, les deux autres traduisent les formules p ∨ ¬p et ¬¬p ⇒ p) dont aucune n’admet de preuve constructive :

((p ⇒ q) ⇒ p) ⇒ p , p ∨ (p ⇒ ⊥) , ((p ⇒ ⊥) ⇒ ⊥) ⇒ p

Contextes L’´etiquetagedes noeuds des arbres de preuves par des s´equents est plutˆot lourd car les contextes sont des listes de formules qui se r´ep`etent de noeud en noeud. Une notation plus l´eg`ereserait bienvenue. L’id´eela plus simple est d’oublier les s´equents et de ne garder en ´etiquettesque les noms des r`egles utilis´ees.Mais cela ne suffit pas car il faut bien indiquer les formules en jeu dans la r`egle. Comme les contextes varient assez peu dans une preuve, on proc`edecomme suit.

• On introduit un nom αi pour chaque hypoth`ese Ai du contexte du s´equent de la racine de l’arbre de preuve. On obtient ainsi le contexte nomm´e (α1:A1, ..., αn:An). Pour l’utilisation d’un axiome, il suffit alors d’indiquer 32 SOMMAIRE le nom de l’hypoth`eseen jeu. Ainsi, avec le contexte nomm´e(α:P ⇒ Q, β:P ) pour la racine, la preuve

axiome axiome α:P ⇒ Q, β:P ` P ⇒ Q α:P ⇒ Q, β:P ` P ⇒-´elim α:P ⇒ Q, β:P ` Q peut ˆetreexprim´eepar l’arbre (que nous ´ecrivons comme un terme) ⇒-´elim(α, β).

• Pour les r`eglesqui modifient le contexte (le ⇒-intro et le ∨-´elim)il faut in- diquer les hypoth`esesmobiles et les nommer. Ainsi, avec le contexte nomm´e (α:P ) pour la racine, la preuve

axiome axiome α:P, β:P ⇒ Q ` P ⇒ Q α:P, β:P ⇒ Q ` P ⇒-´elim α:P, β:P ⇒ Q ` Q ⇒-intro α:P ` (P ⇒ Q) ⇒ Q ne peut pas ˆetresimplement r´e´ecritesous la forme ⇒-intro(⇒-´elim(β, α)) car, pour pouvoir retrouver le contexte (α:P, β:P ⇒ Q) du fils de la racine, il faut indiquer que c’est l’hypoth`ese P ⇒ Q nomm´ee β qui est mobile dans cette r`egle.Nous r´e´ecrironsdonc l’arbre de preuve comme le terme suivant ⇒-intro(β, ⇒-´elim(β, α)). On observe qu’il y a beaucoup de similarit´esentre noms d’hypoth`eseset variables. Par exemple, dans une preuve associ´eeau terme ⇒-intro(β, π), le nom d’hypoth`ese β ne peut ˆetreutilis´eque dans la sous-preuve associ´ee au terme π et ne figure pas dans le contexte nomm´ede la racine de cette preuve. On peut donc dire que la preuve π est dans le champ de la variable β et que cette variable est li´eepar le symbole ⇒-intro.

Termes associ´esaux preuves constructives Nous pouvons maintenant attacher des termes aux preuves en d´eduction naturelle. Pour chaque r`egle,nous introduisons un symbole de fonction qui sera le nom de la r`egle. Par exemple le nom de la r`egle ⇒-intro est λ. L’arit´ede ce symbole est le nombre de pr´emissesde la r`egleplus le nombre de param`etresn´ecessairespour retrouver la r`egle `apartir de son sch´ema. Pour chacun de ses arguments, ce symbole de fonction lie les hypoth`esesqui sont rajout´eesdans la pr´emisse associ´ee.Formellement, la construction du terme associ´e`aune preuve se fait par la r´ecurrenced´ecritepar la Table 2 (le lecteur qui s’interroge sur les symboles choisis pour construire ces termes trouvera leur raison d’ˆetreau §1.6.5). -´e -´e -´e ∃ ∨ -´e ⇒ ∧

´ C 1.6. DEDUCTION ET CALCUL : LA NATURE ALGORITHMIQUE DESB PREUVES CONSTRUCTIVES33 ` A ⇒ B ` . . . = . . . B ` ∧ B 2 : . . . A ` π A Γ : , β Γ ` Γ , α B Γ C Γ B ` `    ` B -´e Γ ) . . . B ∀ : π Γ ` C ( . . . ` ) C , β -´elim ` ,A Γ A . . . x A : snd 1 ⊥ Γ Γ t/x , x A π ( ( , α . . . ` ∃ 3 ⇒ -´e    A A Γ ` ∀ ) ∧ Γ . . . ` ` ` ⊥ , π 2 Γ Γ Γ B Γ ( B , π C ) 1 ∧ A ` 2 π B      . . .    ` ` ( A . . . ) ) ∨ A A Γ ` . . . : A . . . : . . . A π A ` Γ : app π, t ` , α ( A, π , α Γ Γ Γ (    Γ , xα ⊥ )     1 ⇒ ( δ app π 2 ( ) π = 2 ( 3 ( 2 , π ∃ fst δ ⇒ ⇒ , π , π B π : B ⇒ B , β ⇒ 2 ∨ B x A ...... x A ` ⊥ . . . A ∧ A ...... Γ A π ` ` ∃ A ` : ` ∀ ` Γ Γ Γ  Γ Γ , α 1 π    π   1 1 1 ( π π δ π π π -i ∧ B -i . . . -i ` -i ∨ ∨ B Γ -intro ⇒ ∧ > -i B B A ∃ -i B ∨ B ∨ A ` ∀ B ) . . . A Γ . . . ` A ` ⇒ A . . . ` > ` ` . . . Γ ` Γ t/x ` Γ Γ A x A ( B x A . . . ,A Γ Γ ` A . . .     Γ ` ` ∃ i I Γ `    ` ∀    2 Γ Γ ) ) Γ Γ    , π 1       π i A π : A, B, π A, B, π ⇒ h ( t, π ( j i λα λx π B . . . ` ⇒ ⇒ ⇒ ⇒ ⇒ h Table 1.2: Termes aux associ´es preuves en d´eductionnaturelle constructive Γ axiome  i ) 2 A A A B A ...... ` ` ` ` , π t/x ` ( . . . Γ Γ Γ Γ Γ A A . . .    `  `  Γ π π π i π Γ α  ( 1 π π 34 SOMMAIRE

1.6.4 R´eductionde preuve constructive Coupures Une coupure est une preuve qui se termine par une r`egled’´eliminationdont la pr´emisseprincipale est prouv´eepar une r`egled’introduction du mˆeme connecteur. Un exemple tr`essimple est celui d’une preuve de la forme suivante : . . π1. .π2 Γ ` A Γ ` B ∧-intro Γ ` A ∧ B ∧-´elim Γ ` A

Une telle preuve peut ˆetresimplifi´eeen ne gardant que la preuve π1 qui conduit au mˆemes´equent Γ ` A. Avec les termes associ´es,la preuve avec coupure s’´ecrit fst(hπ1, π2i) et la r`eglede r´eductionde preuve est

fst(hπ1, π2i) −→ π1

Un exemple de coupure plus complexe est celui d’une preuve de la forme . .π 1 . Γ, α : A ` B .π ⇒-intro 2 Γ ` A ⇒ B Γ ` A ⇒-´elim Γ ` B dont le terme associ´eest ((λα:A π1) π2). La r´eductionde cette preuve se fait ainsi : • on supprime l’hypoth`ese A dans tous les s´equents de la preuve π1, • on remplace chaque axiome qui introduit en conclusion cette formule A par la preuve π2. Cette op´erationest donc une simple substitution : dans la preuve π1, on sub- stitue la preuve π2 `achaque occurrence de la variable α associ´ee`al’hypoth`ese A dans le contexte Γ,A. Ceci conduit `ala r`eglede r´eductionde preuve qui est la β-r´eductiondu λ-calcul (1.2.6)

((λα:A π1) π2) −→ π1(π2/α)

Les autres r`eglessont construites de fa¸conanalogue. La Table 3 donne l’ensemble des r`eglesde r´eductionde preuve. Ainsi, si une preuve contient une coupure, il est facile de l’´elimineren appliquant l’une des r`egles de r´eduction.Mais l’´eliminationd’une coupure peut cr´eerd’autres coupures ! Le th´eor`emeprincipal du sujet assure que, n´eanmoins, ce processus de 1.6. DEDUCTION´ ET CALCUL : LA NATURE ALGORITHMIQUE DES PREUVES CONSTRUCTIVES35

fst(hπ1, π2i) −→ π1

snd(hπ1, π2i) −→ π2

δ(i(A, B, π1), α:A π2, β:B π3) −→ π2(π1/α)

δ(j(A, B, π1), α:A π2, β:B π3) −→ π3(π1/β)

((λα:A π1) π2) −→ π1(π2/α) ((λx π) t) −→ π(t/x)

δ∃(ht, π1i, x α:A π2) −→ π2(t/x, π1/α)

Table 1.3: R`eglesde r´eductionde preuve constructive r´eductiondes preuves se termine. Remarque. La famille des termes ainsi construits avec ses r`egles de r´eduction est une extension du λ-calcul ´evoqu´eau §1.2.6. Le λ-calcul proprement dit correspond aux termes associ´esaux preuves dans lesquelles ⇒ est le seul connecteur qui apparaisse avec la seule r`egleaff´erente, dite β-r´eduction,qui est celle de la cinqui`emeligne de la Table 3.

Elimination des coupures et extraction du t´emoin Ce m´ecanismede r´eductiondes preuves est exactement celui qui permet d’extraire le t´emoindes preuves (cf. §1.6.1). En effet, une r´ecurrencesimple sur la structure des preuves montre que si une preuve constructive d’un s´equent sans axiome (c’est-`a-dired’un s´equent de contexte vide) est sans coupure alors cette preuve se termine par une r`egled’introduction. En particulier, si π est une preuve d’une formule de la forme ∃y A alors π se termine par une r`egle ∃-intro et elle est donc de la forme hu, π0i, o`u π0 est une de la formule A(u/y). Ainsi, le terme u est le t´emoincherch´e.

1.6.5 L’interpr´etationde Brouwer-Heyting-Kolmogorov La propri´et´edu t´emoinfait du langage des preuves un langage de program- mation. Ce qui frappe le plus dans ce langage, c’est sa similarit´eavec les langages de programmation fonctionnelle bien connus. Cette similarit´ene s’explique pas par la propri´et´edu t´emoinmais par une observation toute diff´erente, due `aBrouwer, Heyting et Kolmogorov. Pour construire une preuve de A∧B avec la r`egle ∧-intro, il faut d’abord construire une preuve de A et une preuve de B. Et quand on a une preuve de 36 SOMMAIRE

A∧B, on peut l’utiliser avec les r`egles ∧-´elimpour construire une preuve de A ou une preuve de B. Ceci rappelle ce qui se passe en th´eoriedes ensembles avec le couple. Pour construire un couple form´ed’une preuve de A et d’une preuve de B, il faut d’abord construire une preuve de A et une preuve de B. Et quand on a cette un couple form´ed’une preuve de A et d’une preuve de B, on peut l’utiliser pour avoir une preuve de A ou une preuve de B. Ainsi, une preuve de A ∧ B se construit et s’utilise exactement comme un couple form´ed’une preuve de A et d’une preuve de B. De la mˆemefa¸con,une preuve de A ⇒ B se construit et s’utilise exacte- ment comme un algorithme qui associe `aune preuve de A une preuve de B. Ainsi, une preuve de A ∧ B est un couple form´ed’une preuve de A et d’une preuve de B, et une preuve de A ⇒ B est un algorithme qui associe `aune preuve de A une preuve de B. Plus g´en´eralement, • Une preuve de > est l’´el´ement d’un ensemble singleton {I}.

• Il n’existe pas de preuve de ⊥.

• Une preuve de A ∧ B est un couple form´eed’une preuve de A et d’une preuve de B.

• Une preuve de A ∨ B est ou bien une preuve de A ou bien une preuve de B.

• Une preuve de A ⇒ B est un algorithme qui associe `aune preuve de A une preuve de B.

• Une preuve de ∀x A est un algorithme qui associe `achaque terme t une preuve de A(t/x).

• Une preuve de ∃x A est un couple form´eed’un terme t et d’une preuve de A(t/x). Ce sont ces correspondances qui justifient les noms choisis pour les symboles entrant dans les termes associ´esaux preuves. Si π1 est une preuve de A et π2 une preuve de B, nous ´ecrivons hπ1, π2i pour la preuve de A ∧ B construite `al’aide de la r`egle ∧-intro parce que cette preuve est le couple form´ed’une preuve de A et d’une preuve de B. Si π est une preuve de B qui utilise une hypoth`ese A repr´esent´eepar une variable libre α, nous ´ecrivons λα:A π pour la preuve de A ⇒ B construite `al’aide de la r`egle ⇒-intro parce que cette preuve est un algorithme qui associe `aune preuve de A une preuve de B. 1.6. DEDUCTION´ ET CALCUL : LA NATURE ALGORITHMIQUE DES PREUVES CONSTRUCTIVES37

De plus, comme l’ont remarqu´eCurry, de Bruijn et Howard, on peut associer un type `ala famille des preuves de chaque formule. En particulier, si Φ(A) est le type des preuves de la formule A et Φ(B) celui de la famille des preuves de la formule B alors le type de la famille des preuves de la formule A ⇒ B n’est autre que Φ(A) → Φ(B), c’est-`a-direle type des fonctions de Φ(A) dans Φ(B), puisque toute preuve de A ⇒ B est un algorithme envoyant une preuve de A sur une preuve de B. Ainsi,

Φ(A ⇒ B) = Φ(A) → Φ(B)

Des ph´enom`enessimilaires sont aussi vrais avec les autres connecteurs et quantifications : Φ est un isomorphisme entre les formules et les types. C’est l’isomorphisme de Curry-de Bruijn-Howard. En identifiant, comme il est usuel de le faire, des objets isomorphes, on voit que le type d’une preuve est la formule qu’elle prouve.

1.6.6 Th´eories Rappelons que lorsqu’on a esquiss´ela d´emonstrationde la propri´et´edu t´emoinau §1.6.4, on a bien pr´ecis´equ’une preuve constructive sans coupure d’un s´equent sans axiome se termine n´ecessairement par une r`egled’introduction. Cette propri´et´ene s’´etendpas `an’importe quelle th´eorieaxiomatique. Par exemple, si on ajoute le seul axiome ∃x P (x), alors la formule ∃x P (x) ad- met une preuve qui se r´eduit`acet axiome et ne se termine donc pas par une r`egled’introduction. Et, bien que la formule ∃x P (x) soit prouvable, il n’existe aucun terme t tel que la formule P (t) soit prouvable. Evidemment, lorsqu’on n’a aucun axiome, il y a bien peu de fonctions dont on peut prouver l’existence et le langage des preuves constructives est alors un langage de programmation assez pauvre. C’est donc une des questions les plus essentielles du sujet de l’interpr´etationalgorithmique des preuves que d’essayer d’incorporer des axiomes sans perdre la propri´et´ecap- itale qu’une preuve constructive sans coupure se termine n´ecessairement par une r`egled’introduction.

Davantage de r`eglesde r´eduction La premi`erefa¸cond’incorporer des axiomes est de rajouter au langage une constante pour chacun d’eux. Par exemple, on peut rajouter une constante A Rec pour chaque instanciation du sch´emade r´ecurrence. Si π1 est une preuve de A(0/x) et π2 une preuve de ∀y (A(y/x) ⇒ A(S(y)/x)), alors le A terme (Rec π1 π2) repr´esentera une preuve de ∀x A, et, pour chaque entier 38 SOMMAIRE

A naturel n, le terme (Rec π1 π2 n) repr´esentera une preuve de A(n/x). Si π1 et π2 sont sans coupure, alors cette preuve sera aussi sans coupure. Cependant, cette preuve se termine par une r`egle ∀-´elimrule et non pas une r`egled’introduction. Aussi, afin de retrouver la propri´et´edu t´emoin,nous devrons rajouter de nouvelles r`eglesde r´eduction,par exemple les r`egles

A (Rec π1 π2 0) −→ π1 A A (Rec π1 π2 S(n)) −→ (π2 n (Rec π1 π2 n))

Cette approche a ´et´ebeaucoup ´etudi´ee,citons K. G¨odel[G¨od58],W.W. Tait [Tai67], P. Martin-L¨of[ML84], Ch. Paulin [PM93], B. Werner [Wer94], . . .

Davantage de r`eglesde d´eduction Une alternative `ala solution pr´ec´edente est d’abandonner les axiomes et de les remplacer par des r`eglesde d´eduction non logiques. Par exemple, on pourra abandonner l’axiome de l’ensemble des parties

∀x∀y (x ∈ P(y) ⇔ x ⊆ y) et le remplacer par deux r`egles:

x ⊆ y x ∈ P(y) fold , x ∈ P(y) x ⊆ y unfold

Dans ce cas, il faut bien sˆurrajouter aussi des r`egles de r´eductionde preuves. En particulier, l’application successive des r`egles fold et unfold doit ˆetre consid´er´eecomme une coupure et la preuve π x ⊆ y fold x ∈ P(y) x ⊆ y unfold doit pouvoir ˆetrer´eduite`a π. Cette approche a ´egalement ´et´ebeaucoup ´etudi´ee,citons D. Prawitz [Pra65], M. Crabb´e[Cra74, Cra91], L. Halln¨as [Hal83], J. Ekman [Ekm94], S. Negri and J. von Plato [NvP01], B. Wack [Wac05], . . .

Davantage de formules Certains axiomes peuvent ˆetreabandonn´essi on enrichit le langage des for- mules. Un exemple typique est celui des axiomes de la th´eoriesimple des 1.6. DEDUCTION´ ET CALCUL : LA NATURE ALGORITHMIQUE DES PREUVES CONSTRUCTIVES39 types : ils peuvent abandonn´essi l’on permet de quantifier sur les pr´edicats. Ceci conduit `a´etendredonc le langage des types et `ad´efinirdes langages de programmation fonctionnel d’ordre sup´erieur. C’est une approche qui a ´et´e´etudi´eepar J.-Y. Girard [Gir71], Th. Coquand & G. Huet [CH88], D. Leivant [Lei83], J.-L. Krivine and M. Parigot [KP90], . . .

Des r`eglesde r´e´ecriture Enfin, on peut aussi abandonner des axiomes si on permet d’identifier cer- tains termes et/ou certaines formules. Par exemple, on peut abandonner l’axiome ∀x (x + 0 = x) si l’on identifie les termes x + 0 et x, on peut aussi abandonner l’axiome de r´ecurrencesi l’on identifie les formules N(y) et ∀c ((0  c) ⇒ ∀x (N(x) ⇒ x  c ⇒ S(x)  c) ⇒ y  c). Cette approche, qui vise `asynth´etiseret aller au-del`ades trois autres approches mentionn´eesplus haut, a ´et´e´etudi´eedans [DHK03, DW03, CD07], ... Dans toutes ces approches, la propri´et´ede terminaison des r´eductionsest conserv´eepour certaines th´eoriesmais perdue pour d’autres. Lorsqu’elle est conserv´ee,on obtient alors un langage de programmation dont tous les pro- grammes terminent et dans lequel on peut programmer toutes les fonctions dont l’existence est prouvable dans la th´eorieconsid´er´ee.

1.6.7 Autres extensions A part le probl`emede l’incorporation d’axiomes, une autre question tr`es importante est celle d’´etendrel’interpr´etationalgorithmique des preuves `a la logique classique (c’est la logique obtenue en rajoutant n’importe laquelle des trois formules de la Remarque `ala fin du §1.6.3). Ici, la propri´et´edu t´emoindoit ˆetreremplac´eepar le th´eor`emede Herbrand :

D’une preuve constructive d’une formule de la forme ∃y A, il est possible d’extraire une suite de termes u1, ..., un et une preuve de la formule

A(u1/y) ∨ ... ∨ A(un/y)

De cette fa¸con, les preuves classiques apparaissent comme des algorithmes non d´eterministes. Voir, par exemple, [Par92]. Enfin, `apart la d´eductionnaturelle, d’autres calculs logiques ont ´et´e consid´er´es,en particulier le calcul des s´equents. Voir, par exemple, [CH00, Urb01]. 40 SOMMAIRE

1.6.8 Elimination des coupures et r´esultatsde coh´erence

Bien avant l’isomorphisme de Curry-Howard, un lien remarquable entre d´eductionet calculabilit´e´etaitapparu avec l’un des r´esultatsfondamentaux les plus inattendus du vingti`emesi`ecle,`asavoir le th´eor`emed’incompl´etude de G¨odel,1931 [G¨od31], dont la preuve est bas´ee sur une notion (informelle) de d´eductionalgorithmique. Ce th´eor`emeaffirme qu’aucun syst`emede preuve ne peut capturer pleinement le raisonnement math´ematique: toute th´eoriesuffisante pour capturer les raisonnements arithm´etiquesest n´ecessairement incompl`ete,c’est-`a-diretelle qu’il existe des ´enonc´esqui ne sont pas d´emontrables et dont la n´egationn’est pas non plus d´emontrable. En particulier, on peut exprimer la coh´erence(c’est-`a-direla non contradiction) d’une th´eorie math´ematiquepar un ´enonc´e,qui ne peut ˆetreni d´emontr´eni infirm´e(du moins si la th´eorieest coh´erente). Avant que ce th´eor`emen’apparaisse, le math´ematicienDavid Hilbert avait invit´ela communaut´elogique `aassurer la bonne fondation des math´ematiques en prouvant la coh´erencedes th´eoriesmath´ematiquespar des moyens “fini- tistes”, donc formalisables dans ces th´eories. C’est ce qui est appel´ele pro- gramme de Hilbert. Bien sˆur,le th´eor`emede G¨odela oblig´e`aune r´evision drastique de ce programme. Mais pas `ason abandon : il fallait trouver des m´ethodes capables de surmonter cette impossibilit´e– donc n´ecessairement non formalisables dans la th´eorie elle-mˆeme– qui restent n´eanmoins“con- vainquantes”. Le premier `ay r´eussira ´et´eGerhard Gentzen (un ´el`eve de Hilbert) : il a prouv´ela coh´erencede l’arithm´etiquede Peano `al’aide d’une induction transfinie (non formalisable dans cette th´eorie), 1936 [Gen36]. L’argument de Gentzen a ´et´eplus tard transform´eepar Kurt Sch¨utte,1951 [Sch51] (autre ´el`eve de Hilbert), en une d´emonstrationde l’´eliminationdes coupures dans une formalisation de l’arithm´etiqueo`u(selon la strat´egiedu §1.6.6) les axiomes de r´ecurrencesont remplac´espar une r`egleavec une infinit´ede pr´emisses, dite ω-r`egle:

A(0),A(1),A(2),... ω ∀x A(x)

Cette propri´et´ed’´eliminationdes coupures implique assez facilement la coh´erence de la th´eorie: si la th´eorie´etaitincoh´erente, on pourrait y prouver ⊥, donc aussi prouver ⊥ par une preuve sans coupure, laquelle doit n´ecessairement se terminer par une introduction, qui ne peut ´evidemment ˆetrequ’une in- troduction de ⊥ (puisque la formule prouv´eese r´eduit`a ⊥), mais il n’y a pas de telle r`egle.. . 1.7. DECIDABLE´ VERSUS INDECIDABLE´ 41

1.7 D´ecidableversus ind´ecidable

Quand on ne retient que la possibilit´ede calcul et non les mani`eresde le faire

1.7.1 D´emonstrationautomatique : d´ecidabilit´eet th´eories logiques “Non disputemus, sed calculemus”. La seule fa¸conde rectifier nos raisonnements est de les rendre aussi tangibles que ceux des math´ematiciens,de sorte qu’une erreur puisse se voir d’un coup d’oeil. Et lorsqu’il y aura une dispute entre deux personnes, on pourra simplement dire : “Ne discutons pas, Monsieur, calculons pour voir qui a raison”. Gottfried Wilhelm Leibniz, 1687

Comme on le voit, l’id´eede la d´emonstrationautomatique (avec une ambi- tion consid´erable)remonte `aLeibniz (1646-1716), philosophe, math´ematicien et touche-`a-tout de g´enie.Pour parvenir `aun tel but, il se proposait aussi de trouver une langue universelle capable d’exprimer toutes les id´eespossibles : la “lingua characteristica universalis”. De nos jours, l’ambition s’est dras- tiquement r´eduite. On ne cherche plus de langue universelle : on consid`ere une multitude le langages logiques adapt´es`ades structures math´ematiques bien d´efinies. Pour chacun de ces langages, on se demande si la famille des ´enonc´esvrais est d´ecidable,c’est-`a-direforme un ensemble dont on peut d´eciderpar un algorithme si un ´enonc´edonn´ey figure ou pas. Nous don- nons ci-dessous quelques exemples de l’incroyable foison de r´esultatsobtenus depuis bientˆotun si`ecle.

Entscheidungsproblem (le probl`emede la d´ecision) Etant donn´eun langage logique, on sait qu’un ´enonc´eest vrai dans toutes les structures de ce langage si et seulement s’il est prouvable dans le calcul des pr´edicatsde ce langage (c’est le th´eor`emede compl´etudede G¨odel).Il est alors int´eressant de savoir si cet ensemble de th´eor`emes est ou non un ensemble calculable d’´enonc´es: c’est le probl`emede la d´ecision.La r´eponse `ace probl`eme(pour les langages avec ´egalit´e)est la suivante.

• D´ecidablesi le langage ne contient que des symboles de relations un- aires (outre l’´egalit´e)et des constantes et au plus une fonction unaire (Rabin, 1969). 42 SOMMAIRE

• Ind´ecidablesinon, c’est-`a-dired`esque le langage contient au moins une relation (autre que l’´egalit´e)ou une fonction binaire ou ternaire ou. . . ou bien au moins deux fonction unaires.

Dans le cas o`ula r´eponse est n´egative, on peut raffiner ce probl`emeet demander s’il y a des classes int´eressantes de formules pour lesquelles ce probl`emedevient d´ecidable.La r´eponse d´epend alors, d’une part du langage consid´er´e,d’autre part de la classe consid´er´ee. La r´eponse est aujourd’hui compl`eteet plutˆottechnique, mais elle a mis pr`esde trois-quarts de si`ecle`a ˆetreapport´ee! C’est ainsi que les classes pr´efixiellesd´ecidables des langages avec ´egalit´esont les suivantes :

• Formules de la forme ∀ ... ∀ quel que soit le langage (Gurevich, 1976).

• Formules de la forme ∀ ... ∀∃ ... ∃ si le langage est purement relation- nel, c’est-`a-direne contient aucun symbole de fonction (Ramsey, 1930).

• Formules de la forme ∀ ... ∀∃∀ ... ∀ si le langage ne contient que des relations et au plus une fonction unaire (Shelah, 1977).

Pour aller plus loin, la r´ef´erenceest le livre de B¨orger,Gr¨adelet Gurevich [BGaG97].

Arithm´etiquedes entiers

Arithm´etiqueavec addition et multiplication. Maintenant, nous con- sid´eronsla famille des ´enonc´esvrais dans l’arithm´etiquedes entiers : N avec addition et multiplication usuelles. L’ind´ecidabilit´ede l’arithm´etiqueest un corollaire assez trivial du th´eor`emed’incompl´etudede G¨odelqui a ´et´eex- plicit´epar Church en 1935. Ind´ecidabilit´ede l’arithm´etiquediophantienne. Le meilleur (ou pire) r´esultatconnu `ace jour est le “probl`emediophantien” suivant (Yuri Mati- jasevitch & Julia Robinson & Martin Davis):

Il existe deux polynˆomesfix´es P,Q (`acoefficients dans N) tels que l’ensemble des entiers a pour lesquels l’´enonc´e

∃x1 ... ∃xm P (a, x1, . . . , xm) = Q(a, x1, . . . , xm)

est vrai n’est pas calculable. 1.7. DECIDABLE´ VERSUS INDECIDABLE´ 43

On peut mˆemesupposer que m = 9 (Matijasevich [Mat77], cf. Jones [Jon82]). On soup¸conneque l’on peut, en fait, avoir m = 3 mais on sait que l’on ne peut pas avoir m = 2. Arithm´etiquepurement additive. On renonce `ala multiplication. Cette arithm´etiqueadditive est alors d´ecidable(Presburger, 1929). Ce r´esultatest d’une tr`esgrande importance en informatique car elle permet de mod´eliser nombre de situations et fournit donc des algorithmes. Arithm´etiquedu successeur avec quantifications sur les entiers et aussi sur les ensembles d’entiers. Cette arithm´etiqueest ´egalement d´ecidable(B¨uchi, 1959). La preuve s’obtient par des techniques d’automates finis. L`aencore, ce r´esultatest d’une importance tr`esgrande en informa- tique.

Arithm´etiquedes nombres rationnels

Elle est ´egalement ind´ecidable.En fait, il est possible de d´efinirl’ensemble des entiers dans la structure alg´ebriquedes rationnels. Il s’agit d’un r´esultat difficile de Julia Robinson, 1948 [Rob49], qui est la source d’une myriade d’autres r´esultatsd’ind´ecidabilit´e.

Th´eoriedes mots

Mots et concat´enation. On consid`ereles mots d’un alphabet Σ ayant au moins deux lettres. L’op´erationde concat´enationest celle qui met deux mots bout `about. La th´eorieen est (sans surprise) ind´ecidable(Quine, 1946) car il est facile d’y coder l’arithm´etiqueavec addition et multiplication. La surprise est la d´ecidabilit´e(Makanin, 1979) de la classe des ´enonc´esde la forme

∃x1 ... ∃xk C(x1, . . . , xk) = D(x1, . . . , xk) o`u C,D sont des mots construits avec l’alphabet Σ augment´edes symboles de variables (qui repr´esentent des mots, pas des lettres). Mots et adjonction d’une lettre `ala fin. On remplace la concat´enation par des op´erationsunaires ; si a ∈ Σ, l’op´eration Succa consiste `arajouter la lettre a en fin du mot. Cette th´eorieest d´ecidablemˆemesi on s’autorise `a quantifier `ala fois sur les mots et sur les ensembles de mots (Rabin, 1969). Il s’agit d’un r´esultattr`esdifficile qui est l’un des fleurons de l’informatique th´eorique. 44 SOMMAIRE

Alg`ebrer´eelle Si l’arithm´etiquedes entiers et celle des rationnels est ind´ecidable (cf. plus haut), celle des r´eels(R, +, ×, =) est - ˆosurprise - d´ecidable(Tarski, 1931 [Tar31]). Tous les probl`emes de solutions d’´equationsde degr´equelconque pos´esau lyc´eesont donc r´esolubles`al’aide d’une machine. . . Avouons quand mˆemeque la complexit´ede cette th´eorieest fort grande : en espace expo- nentiel. x En revanche, on ignore si la th´eoriede (R, +, ×, x 7→ e , =) (on a rajout´e la fonction exponentielle) est ou non d´ecidable. On sait [MW95] que le probl`emeest li´e`aune question tr`esdifficile de th´eoriedes nombres, la con- jecture de Schanuel (1960).

G´eom´etrie´el´ementaire Les anciens qui ont pass´ede durs moments sur les probl`emesde g´eom´etrie du plan ou de l’espace avec les cˆoniqueset les quadriques, le cercle des neuf points, les faisceaux harmoniques, les probl`emesde g´eom´etriedescrip- tive,. . . trouveront une saveur particuli`ere`ace r´esultatde Tarski, 1931 : la th´eoriede la g´eom´etrie´el´ementaire est d´ecidable(son axiomatisation se fait avec des notions de points, droites, plans, une appartenance et une relation “ˆetreentre deux points”). Ainsi, tous les probl`emesdu bachot d’il y a bien des ann´eespouvaient ˆetrer´esoluspar une machine. . . Ce r´esultatest, en fait, un corollaire facile de la d´ecidabilit´ede l’alg`ebre r´eellequi utilise le passage en coordonn´eescart´esiennes.

1.7.2 Quelques autres probl`emes Dominos. Supposons donn´eeune famille finie de carr´es ayant tous la mˆeme taille et dont les cot´essont colori´esde diverses fa¸cons. Peut-on paver le plan euclidien Z × Z avec de tels carr´esde sorte que si deux carr´essont adjacents alors leur cot´ecommun est colori´ede la mˆemefa¸condans ces deux carr´es? Ce probl`emeest ind´ecidable: l’ensemble des familles finies pour lesquelles on peut paver ainsi n’est pas r´ecursif(Berger, 1966 [Ber66]). On peut poser le mˆemeprobl`emedans le plan hyperbolique. Attention, il n’y a pas de carr´e(ni de rectangle) dans le plan hyperbolique mais, en revanche, pour tout s ≥ 5, il y a des polygones r´eguliers `aangles droits ayant s cot´es.. . Pour chaque s ≥ 5, la r´eponse est la mˆeme,le probl`emeest ind´ecidable(Margenstern, 2007 [Mar07, Mar08]). R´eseauxde Petri. Un mod`eleparticuli`erement fructueux de la concur- rence est celui des r´eseauxde Petri (Carl Adam Petri, 1962). Une forme 1.7. DECIDABLE´ VERSUS INDECIDABLE´ 45 simple de tel r´eseauest constitu´edes ´el´ements suivants : - deux familles finies fix´eesdisjointes S, T : les “places” et les “transitions”, - une famille finie fix´eed’arcs F ⊆ (S × T ) ∪ (T × S) entre places et transi- tions, - une distribution dynamique de “jetons” M : S → N sur les places. Les entr´ees (resp. sorties) d’une transition t ∈ T sont toutes les places s telles que (s, t) ∈ F (resp. (t, s) ∈ F ), c’est-`a-diretelles qu’il y a un arc de s vers t (resp. de t vers s). Une distribution M admet un successeur s’il existe une transition t ∈ T telle que M(s, t) > 0 pour toute entr´ee s de t. Le successeur de la distribution M relativement `aune telle transition t est la distribution M 0 obtenue en re- tranchant un jeton `achaque entr´eede t puis en rajoutant un jeton `achaque sortie de t. Le fonctionnement d’un r´eseaude Petri est alors une suite de distributions successives (noter que ceci n’est pas d´eterministe,il peut y avoir plusieurs telles suites possibles). Une telle suite peut ˆetrebloqu´ees’il n’y a plus de successeur possible. Le probl`emele plus difficile du sujet est celui de l’accessibilit´e: peut-on atteindre telle distribution `apartir d’une distribu- tion donn´ee? Ce probl`emeest d´ecidable(en espace exponentiel), il s’agit d’un r´esultattr`esdifficile et profond (Mayr, 1981 [May84]).

1.7.3 D´ecideravec une bonne probabilit´ede r´eponse exacte

Consid´eronsune machine de Turing non d´eterministe: il peut y avoir plusieurs transitions possibles (mais un nombre fini, bien sˆur)`acertaines ´etapes du calcul. Supposons que l’on mette une distribution de proba- bilit´essur ces diff´erentes transitions possibles. On peut alors consid´erer l’ensemble des entr´eespour lesquels la probabilit´ed’ˆetreaccept´eest ≥ δ pour un certain δ > 0 fix´e. Un argument par simulation en parall`ele de tous les calculs possibles permet de voir que cet ensemble est, en fait, r´ecursivement ´enum´erable,c’est-`a-direreconnaissable par une machine de Turing d´eterministe,cf. [LMSS56], 1956. Ainsi, dans le cas de la reconnais- sance de langage, les probabilit´esn’apportent rien de plus. 46 SOMMAIRE

1.8 A l’int´erieurde la calculabilit´e: la th´eoriede la complexit´e

1.8.1 Limites des ressources physiques Temps des Dieux, temps des hommes. Sur l’ˆılede Calypso, Ulysse renonce `ace paradis miniature, `al’´eternit´epour reprendre son identit´e d’homme adulte qui vieillit et meurt. La mythologie grecque enseigne qu’il y a au moins deux sortes de temps. Celui des dieux et de l’´eternit´eo`utout est immobile. Celui des hommes qui est un temps lin´eaire.La calculabilit´e s’int´eresse`asavoir si un probl`emeest d´ecidablesans relation au temps, o`u en quelque sorte tout est d´ej`al`a.Ce rapport ´eternelau temps correspond `a la diff´erenceentre la calculabilit´eet la complexit´e.Prendre le chemin de la th´eoriede la complexit´e,c’est descendre de l’Olympe et r´eint´egrerle temps lin´eairecomme une donn´eefondamentale `ala notion de calcul. Borne de temps (selon la physique) : 1041. La dur´eela plus grande qui ait un sens physique est l’ˆage A de l’univers qui est de l’ordre de 15×109 ann´ees,soit 15×109 ×365.25×24×3600 ∼ 4, 734×1017 secondes (ceci dans le cadre du mod`elecosmologique du Big Bang). La dur´eela plus courte τ qui ait un sens physique est le temps que met un photon pour parcourir, `ala vitesse de la lumi`ere c = 3 × 108 m/s, une distance ´egaleau diam`etre −15 d 10−15 −24 d = 10 m du proton. Soit τ = c = 3×108 ∼ 3, 333 × 10 seconde. A 4,734×1017 41 Le nombre N = τ = 3,333×10−24 ∼ 10 repr´esente alors le plus grand nom- bre d’unit´esde temps ayant un sens physique. Borne de mati`ere(selon la physique) : ≤ 1080 particules. Dans le fil de la r´eflexionpr´ec´edente, il est raisonnable de consid´ereraussi les limites de notre univers : il semble que le nombre de particules ´el´ementaires soit born´epar 1080(≤ 2320).

La th´eorie de la complexit´e comme th´eorie de la calculabilit´e “raisonnable”. Les chiffres que l’on vient de voir montrent qu’un al- gorithme en temps ou espace exponentiel a une complexit´er´edhibitoire. La th´eoriede la complexit´e´etudie les probl`emesqui peuvent ˆetrer´esolus avec des ressources de calcul limit´ees. Citons quelques livres ouvrages de r´ef´erence: le classique de Papadimitriou [Pap94], le livre de Jones [Jon97] orient´eth´eoriede la programmation, le livre de Savage [Sav98] orient´ealgo- rithmique et calcul avec diff´erents mod`elesde calcul, ainsi que les livres [Sip06, Gol08, AB09]. 1.8. A L’INTERIEUR´ DE LA CALCULABILITE´ : LA THEORIE´ DE LA COMPLEXITE´47

1.8.2 Complexit´ede quelques probl`emes Exemple 1 : Multiplication de deux entiers. Un mˆemeprobl`emepeut ˆetrer´esolupar plusieurs algorithmes tr`esdiff´erents. Prenons l’exemple de la multiplication de deux entiers a et b ayant respectivement p et q chiffres. L’algorithme appris `al’´ecolecalcule en effectuant O(p.q) op´erations.Posant n = max(p, q), on dira que la complexit´ede cet algorithme est en O(n2). Il y a d’autres algorithmes plus rapides mais, conceptuellement, plus difficiles (on ´echange donc du temps contre de la mati`eregrise. . . ). Celui de Karatsuba, 1962 [KO62], est en O(nlog2(3)) (noter que n2 = nlog2(4) tandis que nlog2(3) = n1,5849...), il consiste `acouper la repr´esentation binaire des entiers en deux : supposons pour simplifier que p = q = n = 2m et ´ecrivons a = 2ma0 + a00 et b = 2mb0 + b00 o`u a0, a00, b0, b00 sont des entiers ayant m chiffres binaires, alors a × b = (2ma0 + a00) × (2mb0 + b00) = a0b0 22m + (a0b00 + a00b0) 2m + a(1.1)00b00 = a0b0 22m + [(a0 + a00)(b0 + b00) − a0a00 − b0b00] 2m + a00b00 (1.2) Le passage de la ligne (1.1) `ala ligne (1.2), a priori bizarre, permet de ramener quatre multiplication de deux entiers de m chiffres (`asavoir, a0b0, ab00, a00b0 et a00b00) `atrois multiplications d’entiers de m (ou m + 1) chiffres, (`asavoir a0a00, b0b00 et (a0 + a00)(b0 + b00)). C’est cette astuce qui permet, quand on l’it`ere,d’obtenir un algorithme en temps O(nlog2(3)). Un autre al- gorithme, celui de Sch¨onhage& Strassen [SS71], bas´esur la transform´eede Fourier rapide, est en O(n log(n) log(log(n))). Le meilleur algorithme connu `ace jour est dˆu`aMartin F¨urer,2007 [F¨ur09],il est en O(n log(n) log∗(n)) donc quasi-lin´eaire8 . Mentionnons enfin que si l’algorithme de Karatsuba est impl´ement´edans tous les syst`emesde calcul formel, ceux de Sch¨onhage & Strassen et celui de F¨urerne le sont pas car, actuellement, ils sont grev´es par une constante multiplicative gigantesque cach´eedans la notation O(...).

Exemple 2 : Evaluation d’un polynˆome. La complexit´ed’un probl`eme peut aussi d´ependre des conditions d’utilisation. Prenons l’exemple de 4 l’´evaluation d’un polynˆomede degr´e4, soit P (x) = a4x +...+a0. L’algorithme de Horner, 1819 [Hor19], r´e´ecritce polynˆomecomme suit pour l’´evaluer `a l’aide de 4 multiplications et 4 additions :

P (x) = a0 + x(a1 + x(a2 + x(a3 + xa4))) 8La fonction log∗ est le nombre de fois qu’il faut it´ererle logarithme pour trouver 0 (i.e. log∗ 1 = 1 et 2p ≤ n < 2p+1 ⇒ log∗ n = 1+log∗ p). Bien que cette fonction log∗ tende vers l’infini, sa croissance est d’une lenteur extrˆeme: ainsi, log∗(10320) = 5. Au-regard des limites de temps vues en §1.8.1, cette fonction log∗ ne d´epasseradonc jamais, en pratique, la valeur 5. . . 48 SOMMAIRE

On peut montrer que c’est optimum tant en additions (Alexander Ostrowski, 1954) qu’en multiplications (Victor Pan, 1966 [Pan66]). Mais, pour ´evaluer ce polynˆomeen un grand nombre N de points (par exemple, pour en tracer le graphe), la meilleure complexit´en’est pas de 4N additions et 4N multi- plications. Un pr´econditionnement permet de le faire avec environ 3N mul- tiplications et 5N additions (on a donc ´echang´eenviron N multiplications contre autant d’additions). Le “environ” traduit les quelques op´erations arithm´etiquesdu calcul des coefficients α, β, γ, δ ci-dessous : on peut ´ecrire

2 P (x) = a4[(x + α)(x + β)] + γ(x + α)(x + β) + (x + δ) (1.3)

= (x + δ) + (x + α)(x + β)[γ + a4(x + α)(x + β)] (1.4)

 2a (α + β) = a  4 3  a (α2 + β2 + 4αβ) + γ = a o`u α, β, γ, δ sont tels que 4 2  2a4αβ(α + β) + γ(α + β) + 1 = a1  2 2  a4α β + αβγ + δ = a0 La premi`ere´equationdonne la valeur de α + β. De la deuxi`emeon d´eduit γ = A + Bαβ (o`u A, B s’expriment avec a0, . . . , a4). La troisi`emedonne alors la valeur de αβ. Ayant leur somme et leur produit, on en d´eduitles valeurs de α et β. La derni`ere´equationdonne la valeur de δ. Enfin, la formule (1.4) demande 5 additions et 3 multiplications. Plus g´en´eralement, on peut montrer, qu’avec un pr´econditionnement, il suffit n de n additions et b 2 c+2 multiplications pour ´evaluer un polynˆomede degr´e n (cf. le livre de Knuth [Knu81], p.471-475). Mentionnons quelques r´esultatsspectaculaires de complexit´e. Exemple 3 : FFT. Peut-ˆetrele plus important r´esultatest l’algorithme de transformation de Fourier (discr`ete)rapide (FFT) en temps O(n log n) (alors qu’a priori, la complexit´eattendue ´etait en O(n2)). Il s’agit d’une technique difficile mais d’une incroyable utilit´e. Sans elle, codage et d´ecodage des images serait beaucoup trop longs : c’est la FFT qui nous a permis d’avoir les images de Mars, Jupiter,. . . . N’h´esitonspas `ale dire, la FFT est une r´evolution technologique essentielle (quoique largement m´econnue du grand public). Exemple 4: Plus court chemin dans un graphe. Pour trouver le plus court chemin d’un point donn´e`an’importe quel autre dans un graphe, un temps en O(n log n) est suffisant. C’est l’algorithme de Dijkstra . Exemple 5 : Diagrammes de Vorono¨ı. L`aencore, il y a un algorithme en O(n log n). 1.8. A L’INTERIEUR´ DE LA CALCULABILITE´ : LA THEORIE´ DE LA COMPLEXITE´49

1.8.3 Complexit´ed’un probl`eme Les “Turing Award Lectures” de Rabin [Rab87] et de Cook [Coo83] sont deux articles remarquables sur la g´en`esede la th´eoriede la complexit´eque nous recommandons au lecteur. Peut-on d´efinirla complexit´ed’un probl`eme? Parfois. Une fa¸con de d´efinirla complexit´ed’un probl`emeest d’´etablirune borne inf´erieureet une borne sup´erieure.Si elles se correspondent de pr`es,on peut consid´erer qu’on a obtenu la complexit´eexacte du probl`emeconsid´er´e. Un exemple simple est celui des tris. Il y a n! = n(n + 1) ... 1 permutations de n ob- jets distincts. Chaque comparaison entre deux objets divise par deux cette famille de permutations. Pour trier n objets (par des comparaisons succes- sives), il faudra donc au moins log(n!) comparaisons. Comme log(n!) est de l’ordre de n log(n), on obtient une borne inf´erieurede de l’ordre de n log(n) comparaisons. Par ailleurs, on connaˆıtdes tris en O(n log n) comparaisons, comme le tri fusion (“merge sort”). La complexit´edu tri est donc de l’ordre de n log n. Pas toujours de meilleur algorithme : le th´eor`emed’acc´el´eration de Blum. Dans une premi`ereapproche na¨ıve, on peut penser que, pour tout probl`emealgorithmique, il y a un meilleur algorithme. Mais les choses sont plus compliqu´eesque cela. Citons un r´esultat`am´editer. Th´eor`eme(Manuel Blum, 1967 [Blu67]). Quelle que soit la fonction calculable croissante α : N → N qui tend vers +∞ (intuition : α croˆıttr`es lentement, donc α(p)  p), il existe une fonction calculable f : N → N qui est calculable et telle que, quel que soit l’algorithme A qui calcule f, si, quel que soit n, A travaille en temps (resp. en espace) C(n) sur l’entr´ee n, alors il existe un autre algorithme B qui calcule f et, quel que soit n, travaille en temps (resp. en espace) α(C(n)) sur l’entr´ee n. Une telle fonction f n’admet donc pas de meilleur algorithme puisque cha- cun de ses algorithmes peut ˆetreacc´el´er´e. Complexit´eet mod`elede calcul. La complexit´ed’un probl`emepeut fortement d´ependre du mod`elede calcul consid´er´e. C’est ainsi que la re- connaissance des palindromes (les mots qui co¨ıncident avec leur renvers´e) peut se faire de fa¸con´evidente en temps lin´eairesur une machine de Tur- ing `adeux rubans mais exige O(n2) ´etapes de calcul sur une machine de Turing `aun seul ruban (un r´esultatqui peut ˆetre´etablipar un ´el´egant argument de complexit´ede Kolmogorov [Pau79]). Fort heureusement, les mod`elesraisonnables de calcul s´equentiel (ceux vus en §1.2.2) sont robustes, dans le sens o`uun mod`elepeut en simuler un autre avec une perte de 50 SOMMAIRE temps polynˆomiale(mˆemequadratique, le plus souvent). Certains auteurs ([SvEB84], la monographie [AB09]) expriment cette robustesse sous la forme d’une variante forte de la th`esede Church pr´esent´eeau §1.2.7 :

Tout mod`elede calcul physiquement r´ealisablepeut ˆetre simul´e par une machine de Turing au prix d’un surcoˆutpolynomial.

De telles versions sont sujettes `aplus de controverses que les autres variantes. Dans le cadre de la comparaison entre machines analogiques et machines dig- itales, la preuve de cette th`esede Church forte pour les syst`emesdynamiques `atemps continu pr´esent´eedans [VSD86] se fait au prix de simplifications discutables. Complexit´een temps, complexit´een espace. Les ressources les plus courantes sont le temps et l’espace dans le cas des algorithmes s´equentiels, voir Cook [Coo83] Mais comment mesurer ces ressources ? Qu’est-ce qu’une ´etape de calcul ? Qu’est-ce qu’une unit´ed’espace de calcul ? Ceci nous renvoie `ala notion d’algorithme vue au §1.4 et `ala r´eflexion de Gurevich. Voir aussi Cobham [Cob65]. Nous dirons que le temps est le nombre d’´etapes qu’effectue une machine pour ex´ecuterun algorithme, et l’espace est la quan- tit´ede m´emoiren´ecessaire.Examinons cela de pr`es.Dans l’exemple vu plus haut de la multiplication de deux entiers, est-ce raisonnable de consid´erer que le coˆutde l’addition de deux entiers vaut un. Cook a propos´ede charger un coˆutlogarithmique [CR73] dans le cas des RAM, voir 1.2.3. De mˆemepour les algorithmes parall`eles,la complexit´esera mesur´eepar rapport `aun mod`elede calcul parall`elecomme les PRAM (parallel RAM) ou les circuits bool´eens.Suivant les mod`elesde calcul, on s’int´eresseraaussi au nombre de processeurs et `aleur topologie, cf. [vEB90]. Complexit´eau pire cas versus complexit´een moyenne. La com- plexit´eau pire cas fournit une borne sup´erieuresur une ressource donn´ee. Mais, en pratique, la complexit´een moyenne – par rapport `aune distribu- tion des entr´ees– peut ˆetrebeaucoup plus significative [Lev86]. En revanche, l’analyse en moyenne est, en g´en´eralde beaucoup plus difficile. Complexit´eparam´etrique. On peut aussi fixer un param`etredu probl`eme et ´etudiersa complexit´equand on fait varier les autres. C’est le champ d’investigation de la complexit´eparam´etrique[CR73]. Axiomatique et th´eoriede la complexit´e. Mentionnons que Manuel Blum [Blu67, Sei90] a d´efiniun syst`eme axiomatique pour d´evelopper une th´eoriede la complexit´equi soit ind´ependante des mod`elesde calcul. 1.8. A L’INTERIEUR´ DE LA CALCULABILITE´ : LA THEORIE´ DE LA COMPLEXITE´51

1.8.4 Classes de complexit´e Le titre de cette sous-section aurait pu ˆetre“o`ul’ignorance cr´eel’abondance. . . ”. A d´efaut de r´esultatssignificatifs, les probl`emes sont class´escomme le font les entomologistes [AKG10]. Le concept important est celui de problme complet pour une classe de complexit. Un problme P est complet pour la classe de complexit C si P est dans C et si tout problme de C peut se rduire P . En d’autres termes, il existe une fonction de complexit raisonnable par rapport C, qui rduit toute instance de C une instance de P . PTIME. La classe PTIME est la classe des probl`emesqui sont calculables en temps polynˆomial.En d’autres termes, un probl`emeest dans PTIME s’il existe un algorithme en temps polynˆomialqui le r´esout. La classe PTIME est robuste car elle est d´efinissablepar rapport `ade nombreux mod`elesde calcul s´equentiels. Elle comporte de nombreux probl`emescomplets : - d´eterminerla valeur d’un circuit bool´eenmonotone, - satisfaisabilit´edes clauses de Horn, - savoir si un langage hors-contexte est vide, Enfin, PTIME est consid´er´eecomme la classe des probl`emes“faisables” (en anglais “tractable”). Si cette affirmation est assez bien ´etay´ee, on peut cependant s’interroger sur le caract`ereraisonnable d’un algorithme en temps polynomial n100 par rapport `aun algorithme en temps exponentiel en 20.0000001×n. R´eductionentre probl`emes.Probl`emescomplets. NP. Face `ala classe PTIME, il y a la tr`esc´el`ebreclasse NP qui est d´efinie `apartir d’un mod`elede calcul non d´eterministe. A chaque ´etape du calcul, la machine peut faire un choix et la solution du probl`emeest trouv´ees’il existe une s´equencede choix qui conduit `ala bonne solution. Entrons nous dans un pays du calcul imaginaire ? Pas tout `afait, car de nombreux algo- rithmes sont intrins`equement non d´eterministeset d’autre part cette notion est math´ematiquement viable et f´econde. La classe NP est la classe des probl`emesqui sont calculables par une ma- chine de Turing non d´eterministeen temps polynomial. La notion et l’existence de probl`emeNP complet est due `aCook [Coo71] et Levin [Lev73]. Les travaux de Richard Karp puis le livre de Garey et Johnson [GJ79] illustrent le foisonnement des probl`emesNP-complets dans diff´erents domaines comme en logique (3-SAT), en th´eoriedes graphes (Clique, Vertex cover), en optimisation (Sac `ados),

La question PTIME =? NP. La c´el`ebrequestion PTIME = NP n’est pas 52 SOMMAIRE que th´eoriquecar elle a des cons´equencesdans la vie quotidienne [Coo03]. Si PTIME 6= NP alors les hypoth`esesde cryptographie seraient confirm´ees. Dans le cas contraire o`u PTIME = NP, et si nous en avons une d´emonstration raisonnable, les preuves dans certains syst`emeslogiques seraient alors pos- sibles avec des applications remarquables, par exemple, en d´emonstration automatique. Pourquoi cette question est-elle si ardue ? La question analogue avec le temps lin´eairea ´et´er´esolue: on sait que LinearTime 6= NLinearTime ([PPST83], cf. aussi le livre [BDG90]) mais la seule diff´erencequ’on ait su prouver entre ces deux classes est qu’il y a un probl`emedans NLinearTime qui exige un temps d´eterministeen O(n log∗ n). Comme on l’a vu au §1.8.3 (note de bas de page de l’exemple 1), cette fonction log∗ est `acroissance ultra lente. Un autre r´esultat surprenant est celui de Levin qui construit un algorithme optimal pour les probl`emes NP qui est expliqu´epar Gurevich [Gur88a]. PSPACE. On peut aussi classifier les probl`emessuivant la quantit´ede m´emoiren´ecessaire`aleur r´esolution. La classe PSPACE est la classe des probl`emescalculables en espace polynˆomial.Le probl`emeQBF (savoir si une formule quantifi´eesur des variables bool´eennesest vraie) et de nombreux jeux, comme la g´en´eralisationdu GO, ou encore le parsing des grammaires contextuelles sont des probl`emescomplets pour PSPACE. Ce qui est tout `a fait remarquable ici, c’est que l’on sait que nombre de classes li´ees`al’espace sont ´egales:

PSPACE= NPSPACE= Parallel PTIME= APTIME

L’espace polynomial non d´eterministe NPSPACE ne donne rien de plus que l’espace polynˆomiald´eterministe PSPACE [Sav70]. De mˆeme,le temps polynˆomial Parallel PTIME sur machines RAM parall´eleset celui APTIME sur machines alternantes (une extension forte du non d´eterminisme)[CKS81] co¨ıncident avec PSPACE. La ribambelle. Nous avons juste ouvert la boˆıtede Pandore : il y a bien d’autres classes. A l’int´erieurde PTIME mentionnons les classes NC1 et NLOGSPACE. La premi`ere NC1 est une clase uniforme de circuits bool´eens de taille polynomiale et de profondeur logarithmique [KR90]. Un probl`eme complet de NC1 est l’´evaluation d’une formule bool´eenneinstanci´ee[Bus87]. La seconde classe NLOGSPACE contient des probl`emes complets comme 2SAT ou encore le probl`emed’accessibilit´edans un graphe orient´e. Cette courte exploration des classes de complexit´epeut ˆetrevisualis´eesuiv- 1.8. A L’INTERIEUR´ DE LA CALCULABILITE´ : LA THEORIE´ DE LA COMPLEXITE´53 ant leur relation d’inclusion ce qui donne la hi´erarchie suivante:

AC0 ⊂ NC1 ⊆ LOGSPACE ⊆ NLOGSPACE ⊂ PTIME ⊆ NP ⊆ PSPACE ⊆ EXPTIME

La premi`ereinclusion, AC0 ⊂ NC1, est stricte. C’est un r´esultatimportant de Furst, Saxe, and Spiser [FSS84] et Ajtai [Ajt83]. Pour en finir, Il y a bien entendu des probl`emes naturels qui sont plus compliqu´esque PSPACE, nous en avons cit´eesun avec l’alg`ebredes nombres r´eelsau §1.7.1 R´esultatsd’´echange. La profusion des mesures de complexit´esoul`eve des questions sur le bien fond´edes d´efinitionsdonn´ees. Rassurons-nous, la complexit´een temps semble pertinente et solide d’un point de vue pra- tique. D’autre part, il y a des r´esultatsd’´echange entre les ressources, et de hi´erarchie `agarder en tˆete: quelle que soit la fonction de complexit´e T ,

TIME(T (n)) ⊆ NTIME(T (n)) ⊆ SPACE(T (n)) ⊆ NSPACE(T (n)) ⊆ TIME(2T (n)) (1.5) o`u T est une fonction de complexit´e. Une classe m´econnue : TIME(n(log n)O(1)). Notons que cette classe est aussi close par composition comme l’est PTIME. Si cette classe est peu pr´esente avec les probl`emescombinatoires, en revanche, elle contient cependant la FFT et les fonctions arithm´etiquessur les entiers (cf. Exemple 1 et 3 du 1.8.2). Elle est aussi capitale en analyse r´ecursive : Richard Brent a, en effet, montr´e,1976 [Bre76], que toutes les fonctions de l’analyse (exponentielle, sinus, cosinus, fonction Γ,. . . ) sont calculables en temps n(log n)O(1) (il faut pour cela utiliser un algorithme de multiplication des entiers qui soit lui-mˆemedans cette classe n(log n)O(1), cf. Exemple 1 du §1.8.2).

1.8.5 Caract´erisationdes classes de complexit´e Les classes de complexit´esont d´efinies`apartir d’un mod`elede calcul et d’une borne explicite sur la ressource consid´er´ee. La mod´elisationd’une classe de complexit´esans faire r´ef´erenceexplicitement `aun mod`elede cal- cul born´ea ouvert un champs de recherche appel´e“Implicit Computational Complexity”. Deux exemples historiques illustrent cette ligne de recherche. Le premier est une caract´erisationde la classe NP en terme de relations d´efinissablespar des formules du second ordre par Fagin [Fag74] et Jones- Selman [JS74] sur des structures finies. Le second est une caract´erisationdes fonctions primitives r´ecursives comme l’ensemble des fonctions prouvable- ment totales dans l’arithm´etiquedu premier ordre avec l’axiome d’induction 54 SOMMAIRE restreint aux formules existentielles par Parsons. Parmi les travaux fonda- teurs qui ont propos´eune caract´erisationimplicite de PTIME, il y a ceux sur la r´ecursionborn´eede Cobham [Cob65], la logique avec point fixe de Immerman [Imm86]. A partir des ann´ees90, d’autres mod´elisationssur des domaines infinis ont ´et´econstruites : en logique du second ordre avec une restriction de l’axiome de compr´ehensionde Leivant [Lei91], avec une r´ecursionramifi´eede Bellantoni et Cook [BC92] et Leivant [Lei94], avec une restriction au Lambda-Calcul de Leivant et Marion [LM93], avec des types lin´eairesde Girard [Gir98], et enfin en logique du premier ordre avec une restriction sur la quantification universelle de Marion [Mar01].

1.8.6 Complexit´eet repr´esentation des objets L’influence de la repr´esentation sur la complexit´edes probl`emespeut ˆetre consid´erable: on tremble `al’id´eede faire une multiplication d’entiers repr´esent´es en chiffres romains. . . Nous sommes habitu´esaux repr´esentations binaires et d´ecimalesdes entiers. Mais il y en a bien d’autres. Consid´erons l’exemple de l’addition des entiers. On sait que les retenues peuvent se propager ar- bitrairement loin dans une addition. Ce fait simple empˆeche de faire des additions en parall`elesur les digits de mˆemerang. Ce qui est bien dommage du point de vue complexit´e. Pourtant, cela est n´eanmoinspossible. Un chercheur lithuano-am´ericain,Algirdas Avizienis, a imagin´ed’utiliser plus de chiffres que n´ecessaire[Avi61]. Ainsi, en base 2, peut-on utiliser les trois chiffres −1, 0, 1. Bien sˆur,un nombre aura alors plusieurs repr´esentations : par exemple, ´ecrivant 1 au lieu de −1, le nombre 17 peut s’´ecrire10001 ou 10011 ou 10111 ou 11111 ou 111111 . . . Ce fait peut-ˆetreutilis´eavec profit pour empˆecher la propagation non born´eedes retenues et permettre des addi- tions en parall`ele,cf. le livre de Jean-Michel Muller [Mul89]. Mentionnons que cette technique n’est pas pure th´eorie,elle est, en effet, impl´ement´ee dans les circuits des ordinateurs.

1.9 Complexit´ealgorithmique de l’information

Utilisant le code ASCII dans lequel chaque lettre est cod´eepar 8 bits, un texte de taille peut ˆetrerepr´esent´epar 8n bits. Mais, certaines lettres peu- vent ˆetreabsentes ou, au contraire, ˆetre plus fr´equentes que les autres. En codant les lettres tr`esfr´equentes par peu de bits quitte `adevoir coder les autres par bien davantage, on peut obtenir des codages du texte par beau- coup moins que 8n bits. Jusqu’o`upeut-on aller de la sorte ? C’est la question qu’a r´esolueClaude Shannon en 1948 dans un tr`esc´el`ebrearticle 1.9. COMPLEXITE´ ALGORITHMIQUE DE L’INFORMATION 55

[Sha48] qui fonde un nouveau sujet : la th´eorie quantitative de l’information, sujet aux applications innombrables dans tous les moyens de communica- tion (t´el´ephone,fax, etc.). Shannon introduit une notion d’entropie: si les fr´equencesdes diff´erentes lettres dans un texte sont f1, . . . , fn alors l’entropie associ´ee H est le nombre r´eel < 1 d´efinipar H = −(f1 log f1 +...+fn log fn). L’un des th´eor`emesprincipaux de Shannon assure que 1) tout codage en bi- naire de ce texte contient au moins nH bits, 2) il existe un codage en binaire avec ≤ n(H + 1) bits.

Autour de 1964, Kolmogorov repense compl`etement la th´eoriede Shannon en terme de calculabilit´e. Au lieu de consid´ererles codages des lettres par des mots binaires, il regarde globalement le texte et consid`erela taille d’un plus court programme informatique (ou de machine) capable de l’´ecrire,c’est la complexit´ede Kolmogorov du texte. Par exemple, il y a un programme tr`escourt pour faire ´ecrire21000000 (mˆemesi son temps d’ex´ecution,lui, est de l’ordre du million) alors que pour faire ´ecrireun nombre donn´emais tir´e au hasard avec un million de chiffres, il faudra un programme de taille `apeu pr`esun million. Noter, en revanche, que l’´ecriture d’un million de digits du nombre π (le fameux 3, 14 ...), se fait par un programme tr`escourt car on connaˆıtdes algorithmes simples pour calculer ces digits. A priori, cette complexit´edoit d´ependre fortement du langage de program- mation (ou mod`elede calculabilit´e).Kolmogorov montre qu’il n’en est rien. Cette d´ependance est born´ee:´etant donn´esdeux langages, il existe un entier d tel que les complexit´esde n’importe quel texte relativement `aces langages ne diff´erent que d’au plus d. Comme le dit plaisamment Kolmogorov, la complexit´ed’un texte comme celui du roman “Guerre et Paix” de L´eonTol- sto¨ıpeut ˆetreconsid´er´eecomme bien d´efinieind´ependamment du langage de programmation choisi, la variation selon ce choix ´etant n´egligeable. Comme on peut s’y attendre, cette complexit´e,parfaitement d´efiniesur le plan th´eorique,n’est cependant pas une fonction calculable. . . Ceci peut sembler r´edhibitoirepour des applications mais il n’en est rien (cf. le livre [LV08]). D’une part, la complexit´ede Kolmogorov permet de fonder la notion d’objet al´eatoire,une notion que la th´eoriedes probabilit´es(telle qu’axiomatis´ee par le mˆemeKolmogorov en 1933) ignore, ne s’int´eressant qu’aux ensembles d’objets (dont elle mesure la probabilit´e)et non pas aux objets eux-mˆemes. C’est Per Martin-L¨of,en 1965, alors ´el`eve de Kolmogorov, qui le premier formalise cette notion intuitive d’objet al´eatoire. Depuis, d’autres formali- sations ont ´et´etrouv´ees(Levin et Chaitin, ind´ependamment, vers 1973) qui sont toutes ´equivalentes. 56 SOMMAIRE

D’autre part, Paul Vitanyi, vers 2000, en utilisant des approximations de la complexit´ede Kolmogorov `al’aide des compresseurs usuels (gzip,. . . ), a cr´e´eune nouvelle m´ethode de classification des documents d’une tr`es grande efficacit´e[CV05, CVdW04, LCL+04]. Enfin, la complexit de Kolomogorov est utilise en apprentissage [DG01, CV07].

1.10 Une op´erationnalit´eefficace: les automates finis

Les automates finis peuvent ˆetreconsid´er´escomme issus de consid´erations alg´ebriquesou issus de consid´erationsalgorithmiques avec une origine multi- ple : les automates de calcul, les machines de Turing, les neurones formels, les chaˆınesde Markov. Nous privil´egieronsplutˆotla vision algorithmique dans cette section. Il est usuel de proposer comme date de d´ebutdes travaux sur les automates finis la date de publication du th´eor`eme de Kleene, soit 1954. Depuis cette date, un vaste courant de recherche s’est int´eress´eaux auto- mates finis et `aleurs applications avec une activit´etr`esforte dans les ann´ees 1960-1990 et de nombreux et fructueux r´esultats.D´esormais,les automates finis font partie de la culture de la communaut´einformatique. Cependant, les recherches sur les automates finis et leurs applications restent tr`esactives avec des r´esultatsimportants tr`esr´ecents qui ont des applications en bio- informatique, en traitement du langage naturel, en syst`emesd’information parmi d’autres. Nous nous proposons de parcourir les r´esultatsfondamen- taux et les principales applications. Nous nous excusons par avance pour les oublis dus au choix des auteurs. Les r´ef´erencesprincipales dont nous nous sommes servis sont : les livres de Hopcroft et Ullman dont [HU79] ; les chapitres 1 `a5 du volume B de [vL90] par Perrin, Berstel et Boasson, Sa- lomaa, Thomas et Courcelle ; de nombreux chapitres de [RS97] ; le livre de Sakarovitch [Sak09] ; un ouvrage r´ecent sur les automates pond´er´es[DKV09] ; un ouvrage collectif sur les automates d’arbres [CDG+07].

1.10.1 Les automates finis de mots Les automates finis de mots sont un mod`elede calcul tr`essimple : des ´etats en nombre fini, des r`eglesen nombre fini d´ecrivant le changement d’´etat `aeffectuer lorsqu’on lit une lettre et des conditions initiales et finales. Le mod`elede base consid`eredes mots qui sont des s´equencesfinies de lettres d’un alphabet fini. Formellement, ´etant donn´eun alphabet fini de lettres 1.10. UNE OPERATIONNALIT´ E´ EFFICACE: LES AUTOMATES FINIS57

A, un automate fini M est d´efinipar un ensemble fini d’´etats Q, un sous- ensemble I de Q des ´etatsinitiaux, un sous-ensemble F de Q des ´etats finaux, un ensemble de transitions ∆ inclus dans Q × A × Q. L’automate M est d´ecritpar un quadruplet (Q, I, F, ∆). On peut ´egalement voir un automate M comme un graphe avec les noeuds dans Q, les arcs dans ∆ et deux ensembles particuliers de noeuds que sont les noeuds initiaux et finaux. Il est d’usage de faire une repr´esentation graphique d’un automate en choisissant une convention pour repr´esenter les noeuds initiaux et finaux. Un automate est complet (ou compl`etement sp´ecifi´e)si pour tout couple (q, a) dans Q×A, il existe une r`egle (q, a, q0) dans ∆ (on ´ecritaussi q −→a q0). La notion d´ecriteci-dessus est celle, g´en´erale,d’automate non d´eterministe, Un automate est dit d´eterministe si pour tout couple (q, a) dans Q × A, il existe au plus une r`egle(q, a, q0) dans ∆. Les automates finis ainsi d´efinissont consid´er´escomme des “accepteurs” (ou “reconnaisseurs”) car ils r´epondent oui ou non `ala question : ce mot est- il accept´e(reconnu) par l’automate ? Pour cela, il reste `ad´efinircomment cette r´eponse peut-ˆetrecalcul´ee.Un calcul de M sur un mot u = a1 . . . an est un mot q0q1 . . . qn tel que : q0 est un ´etatinitial dans I, et, pour tout i < n,(qi, ai, qi+1) est une r`egledans ∆. Notons que dans un automate complet (respectivement d´eterministe),il existe toujours au moins un (re- spectivement au plus un) calcul pour tout mot u. Un mot u est accept´e par M s’il existe un calcul de M sur u dont le dernier ´etatest final, un tel calcul est appel´ecalcul r´eussi.Le langage des mots accept´espar M est not´e L(M). Un langage L (un ensemble de mots) est reconnaissable s’il existe un automate fini M tel que L = L(M). L’exemple d’automate d´eterministecomplet donn´eci-dessous a pour ´etat initial i et pour ´etatsfinaux p, q. Il reconnaˆıtles mots de l’alphabet a, b qui ne contiennent pas de facteur aba.

i −→a p p −→a p q −→a r r −→a r i −→b i p −→b q q −→b i r −→b r

Nous pr´esentons sans d´emonstrationune s´electionde r´esultatsde base sur les automates finis de mots. Pour tout automate, il existe un automate complet qui reconnaˆıtle mˆeme langage. Pour tout automate `a n ´etats,il existe un automate d´eterministecomplet `aau plus 2n ´etatsqui reconnaˆıtle mˆeme langage. On peut noter que les calculs dans un automate sont effectu´es par une lecture de gauche `adroite du mot et une lettre est consomm´ee`a chaque application de r`egle. Une premi`ereextension consiste `aautoriser un changement d’´etatsans consommer de lettre. On parle d’automate avec 58 SOMMAIRE

ε-transitions (ou ε-r`egles). Il existe un algorithme de construction d’un automate reconnaissant le mˆemelangage qui ne contient pas d’ε-transitions et donc l’expressivit´ede ces automates correspond `ala classe des langages reconnaissables. Une autre extension consiste `apermettre d’alterner le sens de lecture du mot pendant le calcul. Ici encore l’expressivit´ereste inchang´ee. Une propri´et´eimportante des langages reconnaissables s’exprime `al’aide de lemmes de pompage. Dans sa version premi`ere(des lemmes plus forts ont ´et´epropos´es),ce lemme affirme que, pour tout langage reconnaissable, il existe une constante k, telle que tout mot du langage de longueur sup´erieure `a k poss`edeune factorisation avec un facteur qui peut ˆetreit´er´eou enlev´e en restant dans le langage. Ce lemme permet de montrer facilement qu’un langage tel que {anbn | n ≥ 0} n’est pas r´egulier. La classe des langages reconnaissables est close par les op´erations bool´eennes, `asavoir intersection, union et compl´ementation : par exemple, l’intersection de deux langages reconnaissable est reconnaissable. Elle est close par homo- morphisme et homomorphisme inverse. Le vide d’un langage (savoir si un langage est vide ou non `apartir de sa pr´esentation par un automate) est un probl`emed´ecidable. Le r´esiduel`agauche u−1L d’un langage L relativement `aun mot u est le langage constitu´edes mots v qui sont tels que u suivi de v, i.e. uv, est −1 un mot de L. On peut d´efinirune relation ≡L par u ≡L v si u L = v−1L, i.e. u et v ont les mˆemesprolongements dans L. Cette relation est une relation d’´equivalence qui est stable par concat´enation,c’est donc une relation de congruence dans l’alg`ebreform´ee par les mots munis de l’op´eration(u, v) 7→ uv (appel´eeconcat´enation). Le th´eor`emede Myhill- Nerode affirme que L est un langage r´eguliersi et seulement si le nombre de classes d’´equivalence de ≡L est fini. Ce th´eor`emeimplique principalement l’existence d’un automate d´eterministeminimal pour tout langage r´egulier L au sens du nombre minimal d’´etats. Ce nombre minimal d’´etatsest le nombre de classes de congruence de ≡L. Des algorithmes de construction de l’automate minimal ont ´et´ed´efinis : un algorithme d´eriv´ede la preuve du th´eor`eme,l’algorithme de Hopcroft par raffinement de partition en partant d’un automate d´eterministeet de la partition (F,Q − F ), un algorithme par passage au miroir et d´eterminisationdu miroir. Nous pr´esentons maintenant diff´erents formalismes qui sont prouv´es´equivalents aux automates finis du point de vue expressivit´e.Ceci d´emontre l’importance des automates finis et de la classe des langages reconnaissables. Nous pr´esentons ensuite certains r´esultatsde complexit´equi eux d´ependent du formalisme choisi. 1.10. UNE OPERATIONNALIT´ E´ EFFICACE: LES AUTOMATES FINIS59

Grammaires r´eguli`eres. Les automates privil´egient le point de vue “ac- cepteur” ou “reconnaisseur” et les consid´erationsalgorithmiques. Les gram- maires ont ´et´eintroduites pour une ´etudedes classes de langages principale- ment dans le domaine des langues naturelles. Elles privil´egient le point de vue “g´en´erateur”en d´ecrivant comment g´en´ererles mots d’un langage par des r`eglesde production (ou de r´e´ecriture).Formellement, ´etant donn´eun alphabet fini de lettres A, une grammaire G est d´efiniepar un ensemble fini de non terminaux (ou variables) N, un ensemble P de r`eglesde produc- tion de la forme l → r o`u l et r sont des mots sur l’alphabet A ∪ N et un non terminal particulier souvent not´e S (pour “sentence”) appel´eaxiome. La grammaire G est d´ecritepar un triplet (N,P,S). On g´en`ereun mot en partant de S et en appliquant des r`eglesde P jusqu’`aobtenir un mot u ne contenant que des lettres de A. Le langage des mots g´en´er´espar G est not´e L(G). Sans restriction sur la forme des r`egles,on a les grammaires de type 0 de Chomsky qui g´en`erent les langages r´ecursivement ´enum´erables,i.e. re- connaissables par machine de Turing (voir Section 1.2.4). Une restriction tr`esforte est de consid´ererles grammaires de type 3 ´egalement appel´ees grammaires r´eguli`eres: une grammaire est r´eguli`ere si toutes les r`eglesde P ont leur membre gauche qui se r´eduit`aun non terminal dans N et leur membre droit est, soit une lettre de A, soit une lettre de A suivie d’un non terminal dans N. Il est facile de montrer de fa¸conconstructive que la classe de langages g´en´er´espar des grammaires r´eguli`eresest la classe des langages reconnaissables. Expressions r´eguli`eres. Apr`esles points de vue accepteur et reconnais- seur, nous prenons maintenant le point de vue “descriptif” avec les expres- sions r´eguli`eresintroduites par Kleene dans [Kle56]. Celles-ci permettent de d´ecrirepar une expression `ala syntaxe pr´eciseun ensemble de mots, c’est- `a-direun langage. Cette syntaxe est souvent sp´ecifique`achaque langage informatique. Nous prenons ici le point de vue formel et consid´eronsles op´erationssur les langages que sont la concat´enation9 not´eepar un point . (souvent oubli´e)et d´efiniepar X.Y = XY = {w | w = uv, u ∈ X, v ∈ Y } ; l’union not´ee+ en notation infix´ee; l’´etoile ∗ en notation postfix´ee et d´efinie ∗ par X = {w | w = u1 . . . un, n ≥ 0, u1, . . . , un ∈ X} (le cas n = 0 donnant le mot vide), soit encore l’union infinie des puissances d’ordre n ≥ 0 d’un lan- gage. Par exemple, cette syntaxe permet d’´ecrire(a+b)∗ pour l’ensemble des mots sur l’alphabet a, b. On peut ainsi d´ecrirecomment sont “construits” les mots du langage en utilisant “suivi de” pour la concat´enation,“ou” pour

9Le mot concat´enationd´esignetant l’op´eration sur les mots (u, v) 7→ uv que son ex- tension aux langages. 60 SOMMAIRE l’union et “un certain nombre de” pour l’´etoile. Un langage est rationnel s’il peut ˆetred´ecritpar une expression rationnelle. Le th´eor`emede Kleene, pr´esent dans le papier originel [Kle56], montre l’´egalit´eentre la classe des langages reconnaissables et la classe des langages r´eguliers.Au vu du grand nombre d’applications, les transformations entre automates et expressions r´eguli`eresont ´et´eet demeurent beaucoup ´etudi´ees. Pour transformer une expression r´eguli`ere en un automate ´equivalent, une premi`eresolution est d’utiliser une construction sur les automates pour cha- cun des op´erateurs., + et ∗. Ceci se fait facilement avec des automates finis avec ε-transitions. Cette construction n’est pas optimale car on peut avoir beaucoup d’ε-transitions et leur ´elimination peut ˆetrecoˆuteuse. Une con- struction d’un automate fini ´equivalent sans ε-transitions, appel´eautomate des positions ou automate de Glushkov, de taille quadratique par rapport `a la taille de l’expression r´eguli`ereest attribu´ee`aGlushkov [Glu61]. Cette con- struction aux tr`esnombreuses applications a ´et´ereprise, am´elior´eeet partic- ularis´eepour des classes d’expressions. Citons, entre autres, McNaughton et Yamada [MY60], Berry et Sethi [BS86], Br¨uggeman-Klein[BK93, BKW98]. Pour transformer un automate en une expression r´eguli`ere ´equivalente, une solution est d’´ecrireun syst`emed’´equationsrationnelles de la forme Xi = P P j Xjaij ou Xi = j Xjaij + ε o`ula variable Xi capture les mots pou- vant arriver dans l’´etat qi et aij une lettre de l’alphabet, puis de r´esoudre ce syst`emeen utilisant des substitutions et le fait que l’unique solution de l’´equation X = XY + Z lorsque ε 6∈ Y est ZY ∗. Mais, Ehrenfeucht et Zeiger [EZ76] d´efinissent des automates `a n ´etatspour lesquels la plus petite expression r´eguli`ere´equivalente contient un nombre exponentiel d’occurrences de lettres de A dans l’expression. La question du nombre d’´etoilesn´ecessairespour d´efinirun langage re- connaissable s’est pos´eetr`estˆot.Une premi`erer´eponse a ´et´ede montrer que la hauteur d’´etoiles(le nombre d’imbrications dans l’expression) ne peut pas ˆetreborn´ee(Eggan [Egg63], am´elior´edans Dejean et Sch¨utzenberger [DS66]). Un deuxi`emer´esultatplus difficile, obtenu par Hashiguchi [Has88], fut de proposer un algorithme pour d´eterminerla hauteur d’´etoiled’un langage r´egulier.Des am´eliorationsalgorithmiques ont ´et´eapport´ees depuis mais la complexit´ereste exponentielle et impraticable.

Logique monadique du second ordre (MSO). Un mot peut ˆetrerepr´esent´e par une structure du premier ordre avec un ensemble de positions qui est un intervalle [1, n] d’entiers, une notion de successeur, un ordre naturel et pour chaque lettre de l’alphabet l’ensemble des positions du mot correspon- dant `acette lettre. On peut alors consid´ererun langage du premier ordre 1.10. UNE OPERATIONNALIT´ E´ EFFICACE: LES AUTOMATES FINIS61 o`ules variables, not´ees x, y, ..., repr´esentent des entiers (des positions) et des formules atomiques de la forme x + 1 = y (la position suivante de x est y), x < y (la position x pr´ec`ede y), ou encore Pa(x) (en position x on trouve la lettre a). On consid`ere´egalement des variables du second-ordre, not´ees X, Y , ..., qui repr´esentent des ensembles (finis) de positions. Les quantifications peuvent porter sur des variables du premier ordre et du sec- ond ordre. Un langage est d´efinissableen MSO s’il correspond `al’ensemble des mots qui satisfont une formule φ sans variable libre. B¨uchi [B¨uc60b] et Elgot [Elg65] ont montr´eque les langages d´efinissablesen MSO sont les langages reconnaissables. Cette logique est donc d´ecidablecar on peut d´eciderde la satisfiabilit´ed’une formule en calculant un automate et en d´ecidant du vide pour cet automate. Ce r´esultatpermet donc de r´esoudre la question de la d´ecidabilit´ede la th´eoriedes entiers avec successeur et quantification sur les ensembles d’entiers (voir Section 1.7.1). Ce r´esultat peut ˆetrevu comme un cas particulier d’un r´esultatsimilaire, obtenu par B¨uchi [B¨uc60a]et McNaughton [McN66], pour la logique MSO o`uon con- sid`eredes positions enti`eresce qui revient `ainterpr´etersur des mots infinis. Pour la preuve d’´equivalence entre langages d´einissablesen MSO et lan- gages reconnaissables, le passage d’une formule vers un automate se fait par une m´ethode d’´eliminationde quantificateurs. Chaque alternance de quantificateur n´ecessite un calcul du langage compl´ementaire et donc une exponentiation. Ceci est intrins`equecar le probl`emeest d´emontr´eˆetrenon ´el´ementaire (i.e. sa complexit´eest une tour non born´eed’exponentiations it´er´ees). Le passage de l’automate `aune formule consiste `ad´ecriredans une formule MSO le fonctionnement de l’automate, ce qui ne pose pas de difficult´e.

Automates alternants. Introduits dans [CKS81] et [BL80], ils g´en´eralisent les automates finis non d´eterministestout en gardant le mˆemepouvoir d’expression et en permettant une construction simple pour la compl´ementation. Supposons que dans un automate non d´eterministe,on dispose d’un choix avec deux r`egles(q, a, q1) et (q, a, q2). Pour qu’un mot u d´ecompos´esous la forme u = av soit reconnu, il suffit qu’il existe un calcul r´eussi partant de q1 lisant v ou qu’il existe un calcul r´eussipartant de q2 lisant v. D’autre part, pour que u ne soit pas reconnu, il faut v´erifier que tous les calculs ne sont pas r´eussis. L’id´eede base des automates alternants est d’autoriser dans leur d´efinitionet dans la d´efinitionde calcul r´eussices deux types de comporte- ment : disjonctif o`uun des calculs doit v´erifierune condition et conjonctif o`u tous les calculs doivent v´erifierune condition. Il existe plusieurs d´efinitions ´equivalentes des automates alternants utilisant des types d’´etatexistentiel 62 SOMMAIRE et universel ou utilisant des formules logiques (avec ou sans n´egation)pour les membres droits de r`egles. Nous ne d´etaillonspas ces formalismes mais notons que, quel que soit le formalisme choisi, la preuve de clˆoturepar compl´ementation est imm´ediate.On montre ´egalement [CKS81] que la classe des langages reconnus est la classe des langages reconnaissables et qu’il ex- iste des automates alternants `a k ´etatspour lesquels un automate complet d´eterministe´equivalent a au moins 22k ´etats. Nous terminons par quelques r´esultatsde complexit´e. La complexit´e d´epend de la repr´esentation choisie en sachant ´egalement que nous avons donn´edans ce qui pr´ec`ededes ´el´ements sur la complexit´ede passage entre formalismes. Par exemple, d´ecidersi un mot satisfait une formule MSO se fait en temps lin´eairepar rapport `ala taille du mot et la taille d’un automate repr´esentant la formule. Mais on sait que la construction de l’automate est non ´el´ementaire (complexit´een tour d’exponentielles). Nous donnons la complexit´ede quelques probl`emes: la d´ecisionde l’appartenance d’un mot `aun langage est DLOGSPACE-complet avec un automate d´eterministeen entr´ee,NLOGSPACE-complet avec un automate fini en entr´ee(d´eterministe ou non), P-complet avec un automate alternant en entr´ee; la d´ecisiondu vide d’un langage est NLOGSPACE-complet avec un automate fini (d´eterministe ou non) en entr´ee,P-complet avec un automate alternant en entr´ee; la d´ecisionde l’´equivalence de deux langages est NLOGSPACE-complet avec deux automates d´eterministes en entr´ee,P-complet avec deux automates non d´eterministesou deux automates alternants en entr´ee.

1.10.2 Les extensions des automates de mots Automates pond´er´eset s´eriesrationnelles Un automate d´eterminel’appartenance d’un mot `aun langage reconnaiss- able avec une r´eponse bool´eenne. Une extension naturelle est d’associer `a un mot une probabilit´ed’appartenance `aun langage. Ceci peut ˆetrer´ealis´e `al’aide d’automates probabilistes introduits dans [Paz71]. Le principe est d’associer des poids r´eelspositifs aux ´etatsinitiaux, aux ´etats finaux et aux r`eglesde l’automate. En introduisant des conditions de normalisa- tion ad´equatesde ces poids ainsi que des conditions d’accessibilit´eet de co-accessibilit´edes ´etats,un automate probabiliste d´efinit une loi de proba- bilit´esur l’ensemble des mots sur un alphabet A, les mots de probabilit´enon nulle d´efinissant un langage reconnaissable. On peut noter que les automates d´eterministesprobabilistes sont moins expressifs que les automates proba- bilistes. Par contre les automates probabilistes correspondent aux mod`eles 1.10. UNE OPERATIONNALIT´ E´ EFFICACE: LES AUTOMATES FINIS63 de Markov cach´es[DDE05]. Pourquoi se limiter `ades calculs dans les nombres r´eelsdans l’intervalle [0, 1] alors que les automates devraient ˆetre,par exemple, capables de compter. On peut ainsi d´efinirles automates pond´er´esavec des poids dans un semi- anneau (K, +, ×, 0, 1) qui vont permettre de d´efinirdes applications de l’ensemble des mots sur un alphabet A dans le semi-anneau K. Ces applica- tions sont appel´eess´eriesreconnaissables. Elles ont ´et´emontr´ees´equivalentes aux s´eriesrationnelles d´efiniesde fa¸conalg´ebrique en th´eoriedes langages formels [BR82, Sak09, DKV09].

Automates `apiles et langages alg´ebriques Dans la hi´erarchie de Chomsky et dans l’´etudedu langage naturel, une classe tr`esimportante est celle des grammaires de type 2, encore appel´eesgram- maires `acontexte libre ou grammaires alg´ebriques. Une grammaire G est alg´ebriquesi tous ses membres gauches sont r´eduits`aun non terminal. Cette restriction implique que la g´en´erationd’un mot est effectu´eepar r´e´ecriture des non terminaux ind´ependamment du contexte. La classe des langages alg´ebriquescontient strictement la classe des langages reconnaissables : le langage {anbn | n ≥ 0}, le langage des expressions bien parenth´es´eesest alg´ebriqueet non reconnaissable. En effet, il est possible de contrˆolerla g´en´erationsimultan´eede parenth`eseouvrante et fermante et les imbrica- tions. Ceci implique pour reconnaˆıtrede tels langages, d’ajouter aux auto- mates la capacit´ede compter et de v´erifierqu’`atoute parenth`ese ouvrante correspond bien une parenth`esefermante. Ceci se fait par l’ajout d’une pile `al’automate fini et la possibilit´epour les r`eglesd’empiler ou de d´epilerdes symboles sur la pile. Nous ne d´etailleronspas le formalisme des automates `a piles. Les langages alg´ebriqueset les automates `apiles ont ´et´etr`es largement ´etudi´es`acause de leurs tr`esnombreuses applications : langages de program- mation et langue naturelle, par exemple. Des points d’entr´eespour la tr`es vaste litt´eraturepeuvent ˆetreles articles sur les grammaires alg´ebriques de [vL90, RS97]. Mais on peut noter que certains r´esultatsimportants sont post´erieurs.Par exemple, l’´equivalence d’automates `apiles d´eterministesa ´et´emontr´eed´ecidable`ala fin des ann´ees90 par S´enizergues[S´en02].

Automates avec sorties Une autre extension des automates consiste `apermettre aux automates de lire leur entr´eetout en calculant un mot de sortie. Cette extension naturelle qui prend son origine dans les machines de Turing a donn´elieu aux ma- 64 SOMMAIRE chines de Moore, de Mealy et de fa¸conplus g´en´eraleaux transducteurs. Un transducteur est un automate de mots auquel on ajoute `atoute r`egle de la forme (q, a, q0) un mot u de sortie (´eventuellement vide) sur un alphabet B. a/u Une telle r`egleest not´eesous la forme (q, a/u, q0) ou q −→ q0. Le fonction- nement du transducteur est celui d’un automate modifi´ecomme suit : on ajoute le mot u `ala sortie courante lorsque l’on active cette r`egle.Un trans- ducteur d´efinitainsi une relation reconnaissable. Ce domaine a ´et´elarge- ment ´etudi´een th´eoriedes langages formels et nous renvoyons `al’ouvrage de Sakarovitch [Sak09] qui contient r´esultatsessentiels et pointeurs sur la litt´erature. L’exemple de transducteur d´eterministed´ecritci-dessous (dans lequel i est l’´etatinitial) est assez ´etonnant; trouv´epar Sch¨utzenberger (cf. [Eil74], page 305), il r´ealiseune bijection de l’ensemble (a + b + c)∗ des mots de l’alphabet ternaire a, b, c sur l’ensemble (x + y)∗ des mots de l’alphabet binaire x, y.

a/x a/x a/x i −→ i p −→ q q −→ q b/y b/y b/xy i −→ p p −→ q q −→ q c/yxy c/yy c/yy i −→ q p −→ q q −→ q

Ce transducteur est bas´esur les partitions suivantes (o`u+ d´esignela r´eunion d’ensembles) :

(a + b + c)∗ = a∗ + a∗b + a∗(c + b(a + b + c))(a + b + c)∗ (x + y)∗ = x∗ + x∗y + x∗(yxy + y(x + y + yy))(x + xy + yy)∗

Diff´erentes classes de transducteurs peuvent ˆetreconsid´er´eesselon que l’on autorise ou pas des ε-r`egles(possibilit´ede g´en´ererun mot de sortie sans lire de lettre de l’entr´ee),selon le cas d´eterministesou non. L’´equivalence des transducteurs non d´eterministessans ε-r`egleest ind´ecidable[Gri68]. L’´equivalence de transducteurs d´eterministesest d´ecidable [Gur82]. Ce r´esultatreste vrai si on restreint le domaine `aun langage alg´ebriqueavec un calcul en temps polynomial, ceci peut ˆetre´etablicomme cons´equencedes r´esultatsde la th`esede Plandowski [Pla95]. Enfin, le r´esultatde S´enizergues a ´et´e´etenduaux transducteurs `apiles d´eterministes[S´en98]. 1.10. UNE OPERATIONNALIT´ E´ EFFICACE: LES AUTOMATES FINIS65

1.10.3 Automates finis pour les structures discr`etes

Automates d’arbres

La structure d’arbre est omnipr´esente en informatique : analyse de pro- grammes, arbres et-ou, arbres de classification, arbres et documents struc- tur´es,arbres phylog´en´etiques,... Les d´efinitionsd’arbres sont diverses selon le cadre choisi. Nous consid´eronsici les arbres qui ont une racine, qui sont ordonn´es(les fils d’un noeud sont ordonn´es),qui sont ´etiquet´es(`achaque noeud est associ´eun symbole d’un alphabet fini) et qui sont d’arit´efix´ee (le nombre de fils d’un noeud est d´etermin´epar le symbole en ce noeud). Nous supposons donc l’existence d’un alphabet fini Σ o`uchaque symbole a une arit´efix´eeenti`erequi d´eterminele nombre de fils. L’ensemble des arbres sur Σ peut ˆetred´efinir´ecursivement par : tout symbole d’arit´e0 est un arbre, si t1, . . . , tn sont des arbres et si f est un symbole d’arit´e n alors f(t1, . . . , tn) est un arbre. On peut voir un arbre comme un graphe avec une racine, un arc entrant par noeud, un nombre d’arcs sortants respectant l’arit´edu symbole du noeud et un ordre sur les arcs sortants. On repr´esente g´en´eralement un arbre avec la racine en haut et les feuilles (les noeuds sans fils qui correspondent `ades symboles d’arit´e0) en bas. Etant´ donn´eun alphabet fini Σ, un automate (ascendant) d’arbres M est d´efinipar un ensemble fini d’´etats Q, un sous-ensemble F de Q des ´etats finaux, un ensemble de transitions ∆ de r`eglesde la forme a → q avec a lettre de Σ d’arit´e0 et q ´etatde Q ou de la forme f(q1, . . . , qn) → q avec avec f lettre de Σ d’arit´e n et q1, . . . , qn, q ´etatsde Q. L’automate M est d´ecritpar un triplet (Q, F, ∆). On peut noter qu’il n’y a pas d’´etatsinitiaux car les r`eglesde la forme a → q servent `ainitier un calcul. En effet, un calcul de M sur un arbre t est un arbre r qui a le mˆemeensemble de noeuds que t, qui est ´etiquet´epar des symboles dans Q et cet ´etiquetagerespecte les r`eglesde M sur t. Un automate est d´eterministe si pour tout symbole f d’arit´e n et tout n-uplet d’´etats (q1, . . . , qn), il existe au plus une r`egle f(q1, . . . , qn) → q dans ∆. Notons que dans un automate d´eterministe,il existe toujours au plus un calcul pour tout arbre t. Un arbre t est accept´e par M s’il existe un calcul r de M sur t dont l’´etat`ala racine de r est final, un tel calcul est appel´ecalcul r´eussi.Le langage des mots accept´espar M est not´e L(M). Un langage L (un ensemble d’arbres) est reconnaissable si il existe un automate fini M tel que L = L(M). La plupart des propri´et´ess’´etendent du cas des mots au cas des ar- bres : d´eterminisation, clˆoturepar les op´erationsbool´eennes, lemme de pompage, d´ecisiondu vide. La notion de grammaire r´eguli`ered’arbres peut 66 SOMMAIRE

ˆetred´efinie. Des expressions rationnelles peuvent ˆetred´efiniesen intro- duisant une op´erationde concat´enation pour les arbres qui consiste `aajouter un arbre dans un contexte (un arbre avec une feuille particuli`ereautorisant l’ajout) et un th´eor`emede Kleene peut ˆetremontr´e.Un th´eor`emede Myhill- Nerode et un algorithme de minimalisation peuvent ˆetred´efinis.La logique MSO peut ˆetre´etenduepour ˆetreinterpr´et´eesur des arbres finis, elle d´efinit la classe des langages reconnaissables d’arbres et est donc d´ecidable[TW68]. Ce r´esultata ´et´e´etenduaux arbres infinis (et les automates correspon- dants) pour obtenir un r´esultatfondamental aux nombreuses applications : le th´eor`emede Rabin (Rabin’s Tree Theorem) [Rab69] qui ´etablitque la logique monadique du second-ordre des mots binaires (lesquels constituent l’arbre infini binaire) est d´ecidable. Les diff´erencesprincipales entre auto- mates d’arbres et de mots sont : Automates descendants d´eterministes. On peut consid´ererdes auto- mates, appel´es automates descendants, qui commencent le calcul `ala racine et le terminent aux feuilles. Il suffit d’inverser le sens des r`egleset d’´echanger les ´etatsfinaux en ´etatsinitiaux pour d´efinirun automate descendant `apar- tir d’un automate d’arbres. Si les automates descendants et les automates ascendants (d´eterministes ou non) d´efinissent les langages reconnaissables d’arbres, les automates descendants d´eterministes(pour un ´etat q et une lettre f il existe au plus une r`egle q → f(q1, . . . , qn)) reconnaissent une sous-classe stricte des langages reconnaissables. Le lecteur se persuadera facilement que le langage reconnaissable contenant les deux arbres f(a, b) et f(b, a) ne peut ˆetrereconnu par un automate descendant d´eterministe. Les “tree walking automata”. Dans ce mod`ele,on peut tester si la position courante correspond `aune feuille, la racine, un fils droit ou un fils gauche d’un noeud. Les r`eglespermettent d’annoter la position courante par un ´etatet de rester dans la mˆemeposition, de monter au noeud p`ereou de descendre au fils droit ou fils gauche de la position courante. Un calcul r´eussi consid`ereune configuration initiale avec un ´etatinitial `ala racine de l’arbre, des configurations obtenues en appliquant les r`egleset une configuration fi- nale avec un ´etatfinal `ala racine de l’arbre. Si il est facile de voir que les langages reconnus sont reconnaissables il n’a ´et´ed´emontr´eque r´ecemment que l’inclusion est stricte (il existe des langages reconnaissables non recon- nus dans ce mod`ele)et que le d´eterminismerestreint le pouvoir d’expression. Ces r´esultatsont ´et´eobtenus par Bojanczyk et Colcombet [BC06, BC08a]. La lin´earit´e. La clˆoturepar morphisme des langages reconnaissables n’est pas v´erifi´eedans les arbres. Un morphisme est lin´eaire si on interdit la du- plication de variables. La classe des langages reconnaissables est close par 1.10. UNE OPERATIONNALIT´ E´ EFFICACE: LES AUTOMATES FINIS67 morphisme lin´eaire. Mais pas dans le cas g´en´eral.En effet, si on consid`ere un langage reconnaissable {g(f n(a)) | n ≥ 0} et un morphisme qui trans- forme g(x) en h(x, x), l’image du langage est {h(f n(a), f n(a)) | n ≥ 0} qui n’est pas un langage reconnaissable d’arbres. La logique du premier ordre. La logique MSO correspond aux langages reconnaissables dans le cas des mots et le cas des arbres. Si on se restreint au premier ordre, la situation est diff´erente. En effet, dans le cas des mots, la classe des langages d´efinissablesdans FO correspond `ala classe des lan- gages sans ´etoile[MP71], i.e. les langages qui peuvent ˆetred´efiniespar des expressions rationnelles avec les op´erateursde concat´enation,d’union et de compl´ementation. Les langages sans ´etoilecorrespondent aux lan- gages ap´eriodiques [Sch65]. La situation est bien plus complexe pour la logique FO dans le cas des arbres et une caract´erisationd´ecidablede langages d’arbres d´efinissablesen FO n’a ´et´eobtenue que r´ecemment par Benedikdt et S´egoufin[BS09].

Le cas des graphes Apr`esavoir ´etudi´eles mots, puis les arbres avec les automates ad´equats, l’´etape suivante naturelle est de consid´ererles graphes. Cependant, les graphes sont intrins`equement plus compliqu´eset il n’est pas possible de d´efinirune bonne notion d’automate. Une bonne notion signifiant obtenir des algorithmes et propri´et´es de d´ecision, une correspondance entre les points de vue automates, grammaires et logiques. Un point d’entr´eesur ces questions peut ˆetrele chapitre 5 du volume B du Handbook [vL90] par Courcelle qui a, par ailleurs, ´ecritde nombreux articles fondamentaux sur les grammaires et logiques pour les (hyper-)graphes et qui pr´epareun ou- vrage [Cou10] sur ces sujets.

1.10.4 Automates et applications Nous proposons pour conclure un choix (de domaines) d’applications des automates finis. Algorithmes de filtrage. Ils consid`erent la question de rechercher des fac- teurs dans des mots. L’algorithme de Knuth, Morris and Pratt [KMP77] a ´et´ele premier algorithme lin´eairepour le filtrage. Cet algorithme a ´et´econ¸cu avec une vision “automates” du probl`emede filtrage. Au vu de l’importance applicative de la question (pensez aux grep et egrep de unix), de nombreux algorithmes, parfois `abase d’automates, ont ´et´ed´efinispour le filtrage de plusieurs facteurs, le filtrage d’expressions r´eguli`eres. Nous renvoyons le 68 SOMMAIRE lecteur au Chapitre “Automata for matching patterns” de Crochemore et Hancart de [RS97] pour une pr´esentation de ces algorithmes. Les recherches sur ces questions sont toujours actives en bio-informatique et sur le filtrage approximatif. Codes, cryptographie et th´eoriede l’information. Les codes sont des langages formels (voir Berstel et Perrin [BP85]) aux propri´et´espartic- uli`erespour des applications en cryptographie et en th´eoriede l’information. Dans ce cadre, les automates ont ´et´eutilis´espour ´etudierla d´ecidabilit´eet la complexit´ede probl`emesde d´ecisioncomme, par exemple, d´eciderde l’appartenance d’un langage `aune classe de codes. Analyse de langages. Elle consid`erele probl`emede tester l’appartenance d’un mot `aun langage et, dans le cas d’une r´eponse positive `aproduire une preuve d’appartenance. Dans le cadre des langages alg´ebriques,il s’agit de construire un arbre d’analyse (qui repr´esente une d´erivation dans la gram- maire) pour un mot du langage. Des algorithmes, souvent bas´essur des (classes de) automates `apile ont ´et´ed´efinispour des classes de langages alg´ebriquesou des formes particuli`eresde grammaires. Ce probl`emetr`es ´etudi´eest fondamental pour la compilation, l’´evaluation dans les langages de programmation. Langage naturel. Les travaux sur les langages alg´ebriques et les al- gorithmes d’analyse ont ´et´econsid´er´es´egalement pour les grammaires en langage naturel. D’autres travaux concernent l’´etudede l’expressivit´edes diff´erents formalismes introduits pour mod´eliserle langage. Par exemple, le th´eor`emede Gaifman [BHGS60] montre l’´equivalence entre grammaires cat´egorielleset grammaires alg´ebriques. La question pos´eepar Chomsky de l’´equivalence entre grammaires de Lambek et grammaires alg´ebriques a ´et´emontr´eepar Pentus [Pen97]. L’introduction de formalismes pour une meilleure mod´elisationdu langage naturel est constante. On peut, par exem- ple, citer les grammaires d’arbres adjoints et les grammaires de d´ependance. Enfin, les transducteurs de mots et d’arbres ont ´et´etr`esutilis´esdans le domaine, en particulier, pour la traduction automatique. Actuellement, de nombreux travaux consid`erent des m´ethodes statistiques `abase de corpus. Dans ce cadre, les grammaires et automates probabilistes sont utilis´es(voir ci-apr`es). Extraction d’information et syst`emesquestions/r´eponses. L’extraction d’information consiste `aextraire des informations structur´ees,par exemple une table des nom, pr´enom,institution, date d’arriv´ee`apartir de docu- ments textuels ou HTML d´ecrivant des groupes de recherche. Les syst`emes 1.10. UNE OPERATIONNALIT´ E´ EFFICACE: LES AUTOMATES FINIS69 questions/r´eponses ambitionnent de trouver des r´eponses `ades questions, souvent factuelles comme trouver la date d’un ´ev´enement, en interrogeant le Web. Des solutions `abase d’automates et de transducteurs ont ´et´e´etudi´ees et d´evelopp´eesdans le cadre de ces applications. Le lecteur pourra consulter comme exemple Poibeau [Poi03]. Bases de donn´eesXML. XML est un standard pour l’´echange de donn´ees et documents. Les documents XML ont une structure d’arbre au sens d´efinipr´ec´edemment mais avec la sp´ecificit´enouvelle suivante : un noeud a un nombre potentiellement non born´ede fils. Des classes d’automates et de transducteurs ont ´et´ed´efinieset ´etudi´eespour ces arbres ou leurs repr´esentations lin´eaires avec balises ouvrantes et fermantes. La forme des documents peut ˆetrecontrainte par des sch´emas. Ces sch´emaspeu- vent ˆetred´efinispar des expressions r´eguli`eresparticuli`eresr´eactivant les travaux sur les algorithmes de tranformations entre expressions et auto- mates. Ces sch´emaspeuvent ˆetred´efinispar des langages reconnaissables d’arbres, c’est le cas de RelaxNG. Le lecteur int´eress´epeut consulter le chapitre 8 de [CDG+07] comme point d’entr´eesur ce domaine. Th´eoriedes mod`elesfinis. Elle ´etudie les logiques pour les structures finies et tire son origine des bases de donn´ees,de la th´eoriedes langages formels et de la complexit´e.Une r´ef´erencepeut ˆetrele livre d’introduction par Libkin [Lib04]. Les automates finis sont, comme nous l’avons signal´e, des algorithmes de d´ecisionpour la logique MSO sur les mots ou sur les ar- bres. Des applications actuelles concernent l’´etude de l’expressivit´eet de la complexit´edes langages de requˆetesdans les bases de donn´eesXML en lien avec l’´etudede l’expressivit´eet de la complexit´ede fragments de la logique MSO des arbres. On peut noter ´egalement, un courant de recherche sur les structures automatiques qui concerne l’´etudedes propri´et´esd’objets ou de relations entre objets qui peuvent ˆetrecod´eesdans (des fragments de) la logique MSO [Rub08]. R´e´ecritureet d´eductionautomatique. La r´e´ecritureest un proces- sus naturel de calcul comme nous l’avons vu pour les grammaires. Pour les syst`emesde r´e´ecriturede mots et d’arbres, les questions de terminaison et de confluence des calculs se posent. Une introduction aux syst`emesde r´e´ecriture d’arbres par Dershowitz et Jouannaud est pr´esent´ee dans le chapitre 6 de [vL90]. Les automates d’arbres peuvent ˆetreutilis´espour r´esoudredes questions de d´ecidabilit´epour ces syst`emeset pour fournir des algorithmes associ´essi possible. Par exemple, Dauchet et Tison ont d´emontr´eque la th´eoriede la r´e´ecritureavec des r`eglessans variables dans les termes est d´ecidable. Ce r´esultatest pr´esent´edans le chapitre 3 de [CDG+07]. Ce 70 SOMMAIRE chapitre contient ´egalement des applications des automates d’arbres au ty- page, `ala r´e´ecriture,au filtrage et `al’unification. Automates probabilistes et mod`elesde Markov cach´es. Les au- tomates probabilistes (non d´eterministes)correspondent aux mod`elesde Markov cach´es dont les applications sont tr`es nombreuses : traitement du signal, traitement des s´equencesbiologiques, extraction d’information parmi d’autres. Ces applications sont rendues possibles par l’existence d’algorithmes efficaces pour l’inf´erence(le calcul de la probabilit´ed’une s´equence),l’annotation (le calcul du chemin le plus probable dans l’automate) par l’algorithme de Viterbi, l’apprentissage des poids `apartir de corpus avec une structure d’automate fix´eepar l’algorithme de Baum-Welch. Le lecteur peut consulter l’ouvrage de Manning et Sch¨utze[MS99] orient´elangage na- turel et l’ouvrage de Durbin et al [DEKM98] orient´ebio-informatique pour les mod`elesde Markov cach´escomme pour les grammaires alg´ebriques prob- abilistes. Grammaires alg´ebriquesprobabilistes. Une grammaire alg´ebrique prob- abiliste se d´efiniten ajoutant des poids r´eelspositifs sur les r`eglesde transi- tion avec des conditions de normalisation. Une telle grammaire, contraire- ment au cas r´egulier, ne d´efinit pas n´ecessairement une loi de probabilit´e. Il n’a ´et´emontr´eque r´ecemment qu’il ´etaitd´ecidablesi une grammaire alg´ebriqueprobabiliste d´efinitune loi de probabilit´epar Etessami et Yan- nakakis [EY09]. L’analyse probabiliste calcule l’arbre d’analyse le plus prob- able ou les k meilleurs arbres d’analyse pour un mot et une grammaire alg´ebriqueprobabiliste. Il est important de noter que l’algorithme inside- outside ´etendl’algorithme de Viterbi des s´equencesaux arbres d’analyse pour le calcul de l’arbre d’analyse le plus probable. De mˆeme,on peut ´etendrel’algorithme de Baum-Welch pour apprendre, `astructure fix´ee,les poids d’une grammaire alg´ebriqueprobabiliste `apartir de corpus constitu´es de couples s´equence,arbre d’analyse. Les applications principales concer- nent principalement langage naturel et bio-informatique. Inf´erence grammaticale. Pour les mod`eles de Markov cach´es et les grammaires alg´ebriquesprobabilistes, l’algorithme de Baum Welch permet d’apprendre les poids associ´esaux transitions ou aux r`egles,une structure d’automates ayant ´et´echoisie a priori. L’inf´erencegrammaticale se pose la question d’inf´ererla structure d’automate (ou de grammaire) la plus adapt´ee `aun corpus. La question est difficile car les langages reconnaissables ne sont pas apprenables `apartir de mots du langage (une trop grande g´en´eralisation ne pouvant ˆetre´evit´ee). Par contre, des algorithmes ont pu ˆetrepropos´es dans le cas o`uon dispose de mots du langage et de mots n’appartenant pas 1.10. UNE OPERATIONNALIT´ E´ EFFICACE: LES AUTOMATES FINIS71 au langage. La plupart des algorithmes construisent l’automate d´eterministe minimal et sont bas´essur le th´eor`emede Myhill N´erode. Pour le cas prob- abiliste, on apprend `apartir de mots tir´es`apartir de la distribution `a apprendre. Les algorithmes pr´ec´edents peuvent ˆetre´etenduspour appren- dre les distributions d´efiniespar des automates d´eterministesprobabilistes. R´ecemment, de nouveaux algorithmes bas´essur une vision alg´ebrique ont ´et´econ¸cuspar Denis et al [DEH06], ils permettent d’´etendrela classe des lois de probabilit´eapprenables.

Remerciements. Olivier Bournez souhaite remercier Pablo Arrighi, Nachum Dershowitz et Yuri Gurevich pour leurs relectures, r´eactionset commentaires pertinents sur un document `apropos de la th`esede Church qui a ´et´epar- tiellement utilis´epour la r´edactionde certains paragraphes de ce chapitre. 72 SOMMAIRE Bibliography

[AB09] Sanjeev Arora and Boaz Barak. Computational Complexity: A Modern Approach. Cambridge University Press, 2009.

[AC05] Eug`eneAsarin and Pieter Collins. Noisy Turing machines. In Proc. of ICALP’05, volume 3580 of Lecture Notes in , pages 1031–1042. Springer-Verlag, 2005.

[AD08] Pablo Arrighi and Gilles Dowek. A quantum extension of Gandy’s theorem. Colloque “La th`esede Church: hier, au- jourd’hui, demain”, Avril 2008.

[Adl88] Leonard Max Adleman. An abstract theory of computer viruses. In Advances in Cryptology — CRYPTO’88, volume 403. Lecture Notes in Computer Science, 1988.

[AGM01] Samson Abramsky, Dov M. Gabbay, and Thomas S.E. Maibaum, editors. Handbook of Logic in Computer Science, vol- ume 1–5. Elsevier, 1992-2001.

1 [Ajt83] Mikl´osAjtai. σ1 formulae on finite structures. Journal of Pure and Applied Logic, 24:1–48, 1983.

[AKG10] Scott Aaronson, Greg Kuperberg, and Christopher Granade. Complexity zoo. http://qwiki.stanford.edu/wiki/Complexity Zoo, 1992- 2010.

[Avi61] Algirdas Avizienis. Signed-digit representations for fast par- allel arithmetic. IRE Transactions on electronic computers (now IEEE Transactions on electronic computers), 10(3):389– 400, 1961.

73 74 BIBLIOGRAPHY

[Bai01] Claudio Baiocchi. Three small universal turing machines. In Maurice Margenstern and Yuri Rogozhin, editors, Machines, Computations and Universality, volume 2055, pages 1–10. Lec- ture Notes in Computer Science, 2001.

[Bar80] Henk Barendregt. The Lambda-Calculus: Its Syntax and Se- mantics. North-Holland, Amsterdam, 1980.

[BC92] Stephen Bellantoni and Stephen Cook. A new recursion- theoretic characterization of the poly-time functions. Computa- tional Complexity, 2:97–110, 1992.

[BC06] Mikolaj Boja´nczykand Thomas Colcombet. Tree-walking au- tomata cannot be determinized. Theoretical Computer Science, 350:164–173, 2006.

[BC08a] Mikolaj Boja´nczykand Thomas Colcombet. Tree-walking au- tomata do not recognize all regular languages. SIAM Journal on Computing, 38:658–701, 2008.

[BC08b] Olivier Bournez and Manuel L. Campagnolo. A survey on con- tinuous time computations. In S.B. Cooper, B. L¨owe, and A. Sorbi, editors, New Computational Paradigms. Changing Conceptions of What is Computable, pages 383–423. Springer- Verlag, 2008.

[BCGH06] Olivier Bournez, Manuel L. Campagnolo, Daniel S. Gra¸ca,and Emmanuel Hainry. The general purpose analog computer and computable analysis are two equivalent paradigms of analog computation. In Jin-yi Cai, S. Barry Cooper, and Angsheng Li, editors, Theory and Applications of Models of Computation, Third International Conference, TAMC 2006, Beijing, China, May 15-20, 2006, Proceedings, volume 3959 of Lecture Notes in Computer Science, pages 631–643. Springer, 2006.

[BCGH07] Olivier Bournez, Manuel L. Campagnolo, Daniel S. Gra¸ca,and Emmanuel Hainry. Polynomial differential equations compute all real computable functions on computable compact intervals. Journal of Complexity, 23(3):317–335, 2007.

[BCLT08] Edwin J. Beggs, Jos´eF´elix Costa, Bruno Loff, and John V. Tucker. Computational complexity with experiments as oracles. BIBLIOGRAPHY 75

Proceedings of the Royal Society of London-A, 464(2098):2777– 2801, 2008.

[BCSS98] Lenore Blum, Felipe Cucker, Michael Shub, and Steve Smale. Complexity and Real Computation. Springer-Verlag, 1998.

[BD08] Udi Boker and Nachum Dershowitz. The Church-Turing over arbitrary domains. In Arnon Avron, Nachum Dershowitz, and Alexander Rabinovich, editors, Pillars of Computer Sci- ence: Essays Dedicated to Boris (Boaz) Trakhtenbrot on the Occasion of His 85th Birthday, volume 4800, pages 199–229. Springer, 2008.

[BDG90] Jos´eLuis Balc´azar,Josep Diaz, and Joaquim Gabarr´o. Struc- tural Complexity. EATCS Monographs on Theoretical Com- puter Science, 1990.

[Ber66] Robert Berger. The undecidability of the domino problem. Memoirs of the American Mathematical Society, 66:72 pages, 1966.

[BG03] Andreas Blass and Yuri Gurevich. Abstract state machines cap- ture parallel algorithms. ACM Transactions on Computation Logic, 4(4):578–651, 2003.

[BG08] Andreas Blass and Yuri Gurevich. Abstract state machines cap- ture parallel algorithms: Correction and extension. ACM Trans- actions on Computation Logic, 9(3):1–32, 2008.

[BGaG97] Egon B¨orger,Erich Gr¨ adel, and Yuri Gurevich. The Classical Decision Problem. Springer-Verlag, 1997.

[BHGS60] Yehoshua Bar Hillel, Chaim Gaifman, and E. Shamir. On cate- gorial and phrase structure grammars. Bulletin of the Research Council of , 9F, 1960.

[BK93] Anne Br¨uggemann-Klein. Regular expressions to finite au- tomata. Theoretical Computer Science, 120(2):197–213, Novem- ber 1993.

[BKM06] Guillaume Bonfante, Matthieu Kaczmarek, and Jean-Yves Mar- ion. On abstract computer virology: from a recursion-theoretic perspective. Journal of computer virology, 1(3-4), 2006. 76 BIBLIOGRAPHY

[BKW98] Anne Br¨uggemann-Kleinand Derick Wood. One-unambiguous regular languages. Information and Computation, 142:182–206, 1998.

[BL80] J. A. Brzozowski and E. Leiss. On equations for regular lan- guages, finite automata, and sequential networks. Theoretical Computer Science, 10:19–35, 1980.

[Bla26] R.M. Blake. The paradox of temporal process. The Journal of Philosophy, 23(24):645–654, 1926.

[Blu67] Manuel Blum. A machine-independent theory of the complexity of recursive functions. Journal of ACM, 14(2):322–336, 1967.

[BP85] Jean Berstel and Dominique Perrin, editors. Theory of codes. Academic Press, 1985.

[BR82] Jean Berstel and Christophe Reutenauer. Recognizable formal power series on trees. Theoretical Computer Science, 18:115– 148, 1982.

[Bre76] Richard Brent. Fast multiple-precision evaluation of elementary functions. Journal of the Association for Computing Machinery, 23:242–251, 1976.

[BS86] G´erardBerry and Ravi Sethi. From regular expressions to deter- ministic automata. Theoretical Computer Science, 48:117–126, 1986.

[BS09] Michael Benedikt and Luc Segoufin. Regular tree languages de- finable in fo and in fomod. ACM Transactions on Computational Logic, 11:4:1–4:32, 2009.

[BSS89] Lenore Blum, Michael Shub, and Steve Smale. On a theory of computation and complexity over the real numbers; NP com- pleteness, recursive functions and universal machines. Bulletin of the American Mathematical Society, 21(1):1–46, 1989.

[B¨uc60a] Jerome Richard B¨uchi. On a decision method in a restricted sec- ond order arithmetic. In Alfred Tarski and Leon Henkin, editors, Proc. Internat. Congr. on Logic, Methodology and Philosophy of Science, pages 1–11. Stanford Univ. Press., 1960. BIBLIOGRAPHY 77

[B¨uc60b] Jerome Richard B¨uchi. Weak second-order arithmetic and finite automata. Z. Math. Logik Grundl. Math., 6:66–92, 1960.

[Bus31] Vannevar Bush. The differential analyzer. A new machine for solving differential equations. J. Franklin Inst., 212:447–488, 1931.

[Bus87] Samuel R. Buss. The Boolean formula value problem is in ALOGTIME. In ACM, editor, Proceedings of the 19th Annual ACM Symposium on Theory of Computing, 1987, New York, New York, pages 123–131. ACM Press, 1987.

[BV93] Ethan Bernstein and Umesh Vazirani. Quantum complexity theory. In Proceedings of the 25th Annual ACM Symposium on the Theory of Computation, pages 11–20. ACM press, New York, 1993.

[CD07] Denis Cousineau and Gilles Dowek. Embedding Pure Type Systems in the lambda-Pi-calculus modulo. In Simona Ronchi Della Rocca, editor, Typed Lambda Calculi and Applications, volume 4583, pages 102–117. Springer, 2007.

[CDG+07] Hubert Comon, Max Dauchet, R´emi Gilleron, Christof L¨oding,Florent Jacquemard, Denis Lugiez, Sophie Tison, and Marc Tommasi. Tree automata techniques and applications. http://tata.gforge.inria.fr/, 2007.

[CF98] Lo¨ıcColson and Daniel Fredholm. System T, call-by-value and the minimum problem. Theoretical Computer Science, 206(1-2): 301–315, 1998.

[CH88] Thierry Coquand and G´erardHuet. The Calculus of Construc- tions. Information and Computation, 76:95–120, 1988.

[CH00] Pierre-Louis Curien and Hugo Herbelin. The duality of compu- tation. SIGPLAN Notices, 35(9):233–243, 2000. International Conference on Functional Programming, ICFP’00, Montreal.

[Chu36] Alonzo Church. An unsolvable problem of elementary number theory. American Journal of Mathematics, 58:345–363, 1936. Reprinted in [Dav65]. 78 BIBLIOGRAPHY

[CKS81] Ashok K. Chandra, Dexter C. Kozen, and Larry J. Stockmeyer. Alternation. Journal of the Association for Computing Machin- ery, 28:114–133, 1981. [CL83a] Ren´eCori and Daniel Lascar. Logique math´ematique: Tome 1 : Calcul propositionnel, alg`ebres de Boole, calcul des pr´edicats. Dunod, 1983. [CL83b] Ren´eCori and Daniel Lascar. Logique math´ematique:Tome 2 : fonctions r´ecursives,th´eor`emede G¨odel,th´eoriedes ensembles. Dunod, 1983. [Cob65] Alan Cobham. The intrinsic computational difficulty of func- tions. In Y. Bar-Hillel, editor, Proceedings of the International Conference on Logic, Methodology, and Philosophy of Science, pages 24–30. North-Holland, Amsterdam, 1965. [Cod68] Edgar Frank Codd. Cellular automata. Academic Press, 1968. [Coh86] Fred Cohen. Computer Viruses. PhD thesis, University of Southern California, January 1986. [Col91] Lo¨ıcColson. About primitive recursive algorithms. Theoretical Computer Science, 83(1):57–69, 1991. [Coo71] Stephen A. Cook. The complexity of theorem proving proce- dures. Proceedings Third Annual ACM Symposium on Theory of Computing, pages 151–158, May 1971. [Coo83] Stephen A. Cook. An overview of computational complexity. Commun. ACM, 26(6):400–408, 1983. [Coo03] Stephen A. Cook. The importance of the P versus NP question. JACM, 50(1):27–29, 2003. [Cop97] B. Jack Copeland. The broad conception of computation. Amer- ican Behavioural Scientist, 40:690–716, 1997. [Cop02] B. Jack Copeland. The Church-Turing thesis. In Edward N. Zalta, editor, The Stanford Encyclopedia of Philosophy. Stan- ford University, Fall 2002. Available online at: http://plato. stanford.edu/entries/church-turing/. [Cou10] Bruno Courcelle. Graph algebras and monadic second-order logic. Cambridge University Press, 2010. BIBLIOGRAPHY 79

[CP02] Cristian Calude and Boris Pavlov. Coins, quantum measure- ments, and Turing’s barrier. Quantum Information Processing, 1(1-2):107–127, 2002.

[CR73] Stephen A. Cook and Robert A. Reckhow. Time bounded ran- dom access machines. Journal of Computer and System Sci- ences, 7(4):354–375, 1973.

[Cra74] Marcel Crabb´e.Non-normalisation de ZF, 1974. Manuscript.

[Cra91] Marcel Crabb´e.Stratification and cut-elimination. The Journal of Symbolic Logic, 56(1):213–226, 1991.

[CS99] B. Jack Copeland and Richard Sylvan. Beyond the universal turing machine. Australasian Journal of Philosophy, 77:46–66, January 1999.

[CS07] B. Jack Copeland and Oron Shagrir. Physical Computation: How General are Gandy’s Principles for Mechanisms? Minds and Machines, 17:217–231, 2007.

[CV05] Rudi Cilibrasi and Paul Vitanyi. Clustering by compression. IEEE Trans. Information Theory, 51(4):1523–1545, 2005.

[CV07] N. Chater and P.M.B. Vitanyi. ‘Ideal learning’ of natural lan- guage: Positive results about learning from positive evidence. Journal of Mathematical Psychology, 51(3):135–163, 2007.

[CVdW04] Rudi Cilibrasi, Paul Vitanyi, and Ronald de Wolf. Algorith- mic clustering of music based on string compression. Computer Music J., 28(4):49–67, 2004.

[Dav58] Martin Davis. Computability and Unsolvability. Dover Publica- tions, 1958.

[Dav65] Martin Davis. The Undecidable: Basic Papers on Undecidable Propositions, Unsolvable Problems and Computable Functions. Raven Press, 1965. Reprinted by Dover Publications, Incorpo- rated in 2004.

[DBG97] Scott Dexter, Patrick Boyle, and Yuri Gurevich. Gurevich local evolving algebras and Sch¨onagestorage modification machines. Journal of Universal Computer Science, 3(4):279–303, 1997. 80 BIBLIOGRAPHY

[DDE05] Fran¸coisDenis, Pierre Dupont, and Yann Esposito. Links be- tween probabilistic automata and hidden markov models: prob- ability distributions, learning models and induction algorithms. Pattern Recognition, 38:1349–1371, 2005.

[DEH06] Fran¸coisDenis, Yann Esposito, and Amaury Habrard. Learning rational stochastic languages. In 19th Annual Conference on Learning Theory, COLT 2006, volume 4005 of Lecture Notes in Computer Science, pages 274–288. Springer, 2006.

[DEKM98] Richard Durbin, Sean R. Eddy, Anders Krogh, and Graeme J. Mitchison. Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids. Cambridge University Press, 1998.

[Del99] Marianne Delorme. An introduction to cellular automata. In M. Delorme and J. Mazoyer, editors, Cellular automata: a par- allel model, pages 3–51. Kluwer, 1999.

[Deu85] David Deutsch. Quantum theory, the Church-Turing principle and the universal quantum computer. Proc. R. Soc. Lond. Ser. A, A400:97–117, July 1985.

[Deu89] David Deutsch. Quantum computational networks. Proc. R. Soc. Lond. A, 425:73, 1989.

[DG01] Fran¸coisDenis and R´emiGilleron. Pac learning under helpful distributions. ITA, 35(2):129–148, 2001.

[DG08] Nachum Dershowitz and Yuri Gurevich. A natural axiomatiza- tion of computability and proof of church’s thesis. Bulletin. of Symbolic Logic, 14(3):299–350, 2008.

[DHK03] Gilles Dowek, Th´er`eseHardin, and Claude Kirchner. Theorem proving modulo. Journal of Automated Reasoning, 31:32–72, 2003.

[DJ92] David Deutsch and Richard Jozsa. Rapid solution of problems by quantum computation. Proc. R. Soc. Lond. A, 439:553–558, 1992.

[DKV09] Manfred Droste, Werner Kuich, and Heiko Vogler, editors. Handbook of Weighted Automata. Springer Verlag, 2009. BIBLIOGRAPHY 81

[Dow07] Gilles Dowek. Les m´etamorphosesdu calcul : une ´etonnante histoire de math´ematiques. Le Pommier, 2007.

[DS66] Fran¸coiseDejean and Marcel Paul Sch¨utzenberger. On a ques- tion from eggan. Information and Control, 9:23–25, 1966.

[DW03] Gilles Dowek and Benjamin Werner. Proof normalization mod- ulo. The Journal of Symbolic Logic, 68(4):1289–1316, 2003.

[Egg63] Larry C. Eggan. Transition graphs and the star-height of regular events. Michigan Math. Journal, 10:385–397, 1963.

[Eil74] Samuel Eilenberg. Automata, languages and machines, vol- ume A. Academic Press, 1974.

[Ekm94] Jan Ekman. Normal proofs in set theory. PhD thesis, Chalmers university of technology and University of G¨oteborg, 1994.

[Elg65] Calvin C. Elgot. Decision problems of finite automata design and related arithmetics. Transactions of American Math. Soci- ety, 98:21–52, 1965.

[ER64] Calvin Elgot and Abraham Robinson. Random-Access Stored- Program Machines, an Approach to Programming Languages. Journal of the Association for Computing Machinery, 11(4): 365–399, 1964.

[EY09] Kousha Etessami and Mihalis Yannakakis. Recursive markov chains, stochastic grammars, and monotone systems of nonlinear equations. Journal of the ACM, 56(1):1–65, 2009.

[EZ76] Andrzej Ehrenfeucht and H. Paul Zeiger. Complexity measures for regular expressions. Journal of Computer and System Sci- ences, 12:134–146, 1976.

[Fag74] Ronald Fagin. Generalized first-order spectra and polynomial- time recognizable sets. complexity of computation. In Richard Karp, editor, SIAM-AMS Proceedings, volume 7, pages 43–73. American Math. Soc., 1974.

[Fey60] Richard P. Feynman. There’s plenty of room at the bottom: an invitation to open up a new field of physics. Engineering and Science (California Institute of Technology), 23(5):22–36, 1960. 82 BIBLIOGRAPHY

[Fey84] Richard P. Feynman. Quantum-mechanical computers. J. Opt. Soc. Am. B, 1:464, 1984.

[FG10] Marie Ferbus and Serge Grigorieff. ASM and operational algo- rithmic completeness of . To appear, 2010.

[Fre96] Daniel Fredholm. Computing minimum with primitive recur- sion over lists. Theoretical Computer Science, 163(1-2):269–276, 1996.

[FSS84] Merrick L. F¨ursr,James B. Saxe, and Michael Sipser. Parity, circuits, and the polynomial-time hierarchy. Mathematical Sys- tems Theory, 17(1):13–27, 1984.

[F¨ur09] Martin F¨urer. Faster integer multiplication. SIAM Journal on Computing, 39(3):979–1005, 2009. Earlier version in Proc. 39th ACM STOC 2007 conf., pp. 57-66.

[Gan80] Robin O. Gandy. Church’s thesis and principles for mechanisms. In Jon Barwise, H. Jerome Keisler, and Kenneth Kunen, editors, The Kleene Symposium, pages 123–148. North-Holland, 1980.

[GC03] Daniel S. Gra¸caand Jos´eF´elixCosta. Analog computers and recursive functions over the reals. Journal of Complexity, 19(5): 644–664, 2003.

[Gen34] Gehrard Gentzen. Untersuchungen ¨uber das logische schließen. Mathematische Zeitschrift, 39:405–431, 1934.

[Gen36] Gehrard Gentzen. Die widerspruchfreiheit der reinen zahlenthe- orie. Mathematische Annalen, 112:493–565, 1936.

[Gir71] Jean-Yves Girard. Une extension de l’interpr´etationde G¨odel `al’analyse, et son application `al’´eliminationdes coupures dans l’analyse et la th´eoriedes types. In 2d Scandinavian Logic Sym- posium, pages 63–92. North Holland, 1971.

[Gir87] Jean-Yves Girard. Linear logic. Theoretical Computer Science, 50:1–102, 1987.

[Gir98] Jean-Yves Girard. Light linear logic. Information and Compu- tation, 143(2):175–204, 1998. BIBLIOGRAPHY 83

[GJ79] Michael R. Garey and David S. Johnson. Computers and in- tractability. A guide to the theory of NP-completness. W. H. Freeman, 1979. [GLT89] Jean-Yves Girard, Yves Lafont, and Paul Taylor. Proofs and Types, volume 7 of Cambridge tracts in theoretical computer sci- ence. Cambridge university press, 1989. [Glu61] Viktor Mikhailovich Glushkov. The abstract theory of au- tomata. Russian Mathematical Surveys, 16:1–53, 1961. [GN03] Erich Gr¨adeland Antje Nowack. and ab- stract state machines. Lecture Notes in Computer Science, pages 309–323, 2003. [G¨od31] Kurt G¨odel. Uber¨ formal unentscheidbare S¨atzeder Principia Mathematica und verwandter Systeme I. Monatschefte fur Mathematik und Physik, 38:173–198, 1931. Traduction anglaise dans [Dav65]. [G¨od58] Kurt G¨odel. U¨ eine bisher noch nicht ben¨utzteErweiterung des finiten Standpunktes. Dialectica, 12:280–287, 1958. [Gol08] Oded Goldreich. Computational Complexity: A Conceptual Per- spective. Cambridge University Press, 2008. [Gra04] Daniel S. Gra¸ca. Some recent developments on shannon’s gen- eral purpose analog computer. Mathematical Logic Quarterly, 50(4–5):473–485, 2004. [Gra07] Daniel S. Gra¸ca. Computability with Polynomial Differential Equations. PhD thesis, Instituto Superior T´ecnico,2007. [Gri68] T. V. Griffiths. The unsolvability of the equivalence problem for lambda-free nondeterministic generalized machines. Journal of the ACM, 15(3):409–413, 1968. [Gri06] Serge Grigorieff. Synchronization of a bounded degree graph of cellular automata with non uniform delays in time D logm D. Theoretical Computer Science, 356(1-2):170–185, 2006. [Gro96] Lov K. Grover. A fast quantum mechanical algorithm for database search. In Proceedings of the 28th annual ACM sympo- sium on Theory of computing, pages 212–219. ACM Press, New York, 1996. 84 BIBLIOGRAPHY

[Grz57] . On the definitions of computable real con- tinuous functions. Fundamenta Mathematicae, 44:61–71, 1957. [Gur82] Eitan M. Gurari. The equivalence problem for deterministic two-way sequential transducers is decidable. SIAM Journal on Computing, 11:448–452, 1982. [Gur85] Yuri Gurevich. A New Thesis, abstract 85T-68-203. Notices of the American Mathematical Society, 6:317, August 1985. [Gur88a] Yuri Gurevich. Kolmogorov machines and related issues. Bul- letin EATCS, 33:71–82, 1988. [Gur88b] Yuri Gurevich. Logic and the challenge of computer science. In Egon Boerger, editor, Current Trends in Theoretical Computer Science, pages 1–50. Computer Science Press, 1988. [Gur00] Yuri Gurevich. Sequential abstract state machines capture sequential algorithms. ACM Transactions on Computational Logic, 1(1):77–111, 2000. [GV09] Serge Grigorieff and Pierre Valarcher. Evolving MultiAlgebras unify all usual sequential computation models. STACS 2010, to appear, 2009. [Hal83] Lars Halln¨as. On normalization of proofs in set theory. PhD thesis, University of Stockholm, 1983. [Ham02] Joel David Hamkins. Infinite time Turing machines. Minds and Machines, 12(4):521–539, 2002. [Han94] Chris Hankin. Lambda Calculi. A guide for computer scientists, volume 3 of Graduate texts in computer science. Oxford, 1994. [Has88] Kosaburo Hashiguchi. Algorithms for determining relative star height and star height. Information and Computation, 78:124– 169, 1988. [Her68] Gabor Herman. The uniform halting problem for generalized one state turing machines. In Proceedings, Ninth Annual Symposium on Switching and Automata Theory, Schenectady, volume A, pages 368–372. IEEE, 1968. [Hil86] W. Daniel Hillis. The Connection Machine. MIT Press (Par- tiellement disponible sur books.google.fr), 1986. BIBLIOGRAPHY 85

[Hil89] W. Daniel Hillis. Richard Feynman and the Connection Ma- chine. Physics Today, 42(2):78–83, 1989.

[HMU06] John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. In- troduction to Automata Theory, Languages, and Computation. Addison-Wesley, 2006.

[Hog94] Mark Hogarth. Non-Turing computers and non-Turing com- putability. Philosophy of Science Association, i:126–138, 1994.

[Hor19] William George Horner. A new method of solving numerical equations of all orders, by continuous approximation. Philo- sophical Transactions of the Royal Society of London, 2:308–335, July 1819.

[HS86] J. Roger Hindley and Jonathan P. Seldin. Introduction to com- binators and λ-calculus. Cambridge university press, 1986.

[HU79] John E. Hopcroft and Jeffrey D. Ullman. Introduction to Au- tomata Theory, Languages, and Computation. Addison-Wesley, 1979.

[Imm86] Neil Immerman. Relational queries computable in polynomial time. Information and Control, 68(1-3):86–104, 1986.

[Jia92] Tao Jiang. The synchronization of non-uniform networks of fi- nite automata. Information and Computation, 97(2):234–261, 1992.

[Joh90] David S. Johnson. A catalog of complexity classes. In [vL90], volume A, pages 67–161. Elsevier, 1990.

[Jon82] James P. Jones. Universal diophantine equation. Journal of Symbolic Logic, 47:549–571, 1982.

[Jon97] Neil D. Jones. Computability and complexity, from a program- ming perspective. MIT press, 1997.

[JORS99] Sanjay Jain, Daniel Osherson, James S. Royer, and Arun Sharma. Systems that learn. MIT press, 1999.

[JS74] Neil D. Jones and Alan L. Selman. Turing machines and the spectra of first-order formulas. Journal of Symbolic Logic, 39 (1):139–150, 1974. 86 BIBLIOGRAPHY

[Kle36] Stephen C. Kleene. General recursive functions of natural num- bers. Mathematische Annalen, 112:727–742, 1936. Reprinted in [Dav65].

[Kle52] Stephen C. Kleene. Introduction to Metamathematics. D. Van Nostrand Co, 1952.

[Kle56] Stephen C. Kleene. Representation of Events in Nerve Nets and Finite Automata, pages 3–42. Princeton University Press, 1956.

[Kle67] Stephen C. Kleene. Mathematical Logic. John Wiley and Sons, 1967.

[KMP77] Donald E. Knuth, James Morris, and Vaughan Pratt. Fast pat- tern matching in strings. SIAM Journal on Computing, 6(2): 323–350, 1977.

[Knu73] Donald E. Knuth. The Art of Computer Programming, volume 3 : Sorting and Searching. Addison-Wesley, 1973.

[Knu81] Donald E. Knuth. The Art of Computer Programming, volume 2 : Seminumerical algorithms. Addison-Wesley, 1981. 2d edition.

[KO62] Anatolii Alexeevich Karatsuba and Yu Ofman. Multiplication of many-digital numbers by automatic computers. Doklady Akad. Nauk SSSR, 145:293–294, 1962.

[Kol53] Andrei Nikolaievich Kolmogorov. On the notion of algorithm. Uspekhi Mat. Naut, 8:175–176, 1953. In russian.

[KP90] Jean-Louis Krivine and Michel Parigot. Programming with proofs. J. Inf. Process. Cybern. EIK, 26(3):149–167, 1990.

[KR90] Richard M. Karp and Vijaya Ramachandran. Parallel algo- rithms for shared memory machines. In Jan Van Leeuwen, ed- itor, Handbook of Theoretical Computer Science A: Algorithms and Complexity, pages 870–941. Elsevier Science Publishers and The MIT Press, 1990.

[KR02] Manfred Kudlek and Yuri Rogozhin. A universal Turing machine with 3 states and 9 symbols. In Developments in Language The- ory, volume 2295 of Lecture Notes in Computer Science, pages 311–318. Springer, 2002. BIBLIOGRAPHY 87

[Kri90] Jean-Louis Krivine. Lambda-calcul. Masson, 1990.

[KU58] Andrei Nikolaievich Kolmogorov and Vladimir Uspensky. On the definition of an algorithm. Uspekhi Mat. Naut, 13(4), 1958. English translation in AMS translation vol. 21 (1963), 217-245.

[Kud96] Manfred Kudlek. Small deterministic Turing machines. Theo- retical Computer Science, 168:241–255, 1996.

[KV07] Max I. Kanovich and Jacqueline Vauzeilles. Strong planning under uncertainty in domains with numerous but identical ele- ments (a generic approach). Theoretical Computer Science, 379 (1-2):84–119, 2007.

[Lac55] Daniel Lacombe. Extension de la notion de fonction r´ecursive aux fonctions d’une ou plusieurs variables r´eellesIII. Comptes Rendus de l’Acad´emiedes Sciences Paris, 241:151–153, 1955.

[Lac60] Daniel Lacombe. La th´eoriedes fonctions r´ecursives et ses ap- plications. Bulletin de la Soci´et´eMath´ematiquede France, 88: 393–468, 1960.

[LCL+04] M. Li, X. Chen, X. Li, B. Ma, and Paul Vitanyi. The similarity metric. IEEE Trans. Inform. Th, 50(12):3250–3264, 2004.

[Lei83] Daniel Leivant. Reasoning about functional programs and com- plexity classes associated with type disciplines. In Founda- tions of Computer Science, FOCS’83, volume 88, pages 460–469. IEEE Computer Society Press, 1983.

[Lei91] Daniel Leivant. A foundational delineation of computational feasiblity. In Proceedings of the Sixth IEEE Symposium on Logic in Computer Science (LICS’91). IEEE Computer Society Press, 1991.

[Lei94] Daniel Leivant. Predicative recurrence and computational com- plexity I: Word recurrence and poly-time. In P. Clote and J. Remmel, editors, Feasible Mathematics II, pages 320–343. Birkh¨auser,1994.

[Lev73] Leonid Levin. Universal search problems. Problems of informa- tion transmission, 9(3):265–266, 1973. 88 BIBLIOGRAPHY

[Lev86] Leonid Levin. Average case complete problems. SIAM Journal on Computing, 15(1):285–286, 1986.

[Lib04] Leonid Libkin. Elements of Finite Model Theory. Springer, 2004.

[LM93] Daniel Leivant and Jean-Yves Marion. Lambda calculus char- acterizations of poly-time. Fundamenta Informaticae, 19(1,2): 167,184, September 1993.

[LMSS56] K. de Leeuw, Edward F. Moore, Claude E. Shannon, and N. Shapiro. Computability by probabilistic machines. In C.E. Shannon and J. MacCarthy, editors, Automata Studies, pages 183–212. Princeton University Press, 1956.

[LP09] Giuseppe Longo and Thierry Paul. Le monde et le calcul. R´eflexions sur calculabilit´e, math´ematiques et physique. In Logique et Interaction : G´eom´etriede la cognition, volume Actes du colloque et ´ecoleth´ematiquedu CNRS “Logique, Sciences, Philosophie”, Cerisy. Hermann, 2009.

[LV08] Ming Li and Paul Vitanyi. An Introduction to Kolmogorov Com- plexity and its Applications. Springer-Verlag, 2008. 3rd edition.

[Mar01] Jean-Yves Marion. Actual arithmetic and feasibility. In CSL, volume 2142 of Lecture Notes in Computer Science, pages 115– 129. Springer, 2001.

[Mar07] Maurice Margenstern. The domino problem of the hyperbolic plane is undecidable. Bulletin of the EATCS, 93:220–237, 2007.

[Mar08] Maurice Margenstern. The domino problem of the hyperbolic plane is undecidable. Theoretical Computer Science, 407:28–84, 2008.

[Mat77] Yuri Matijasevich. Some purely mathematical results inspired by mathematical logic. In Proceedings of Fifth International Congress on Logic, Methodology and Philosophy of science, Lon- don, Ontario, 1975, pages 121–127. Dordrecht: Reidel, 1977.

[May84] Ernst W. Mayr. An algorithm for the general Petri net reach- ability problem. SIAM Journal on Computing, 13(3):441–460, BIBLIOGRAPHY 89

1984. Preliminary version in Proceedings of the thirteenth an- nual ACM symposium on Theory of computing, p. 238–246, 1981.

[McN66] Robert McNaughton. Testing and generating infinite sequences by a finite automaton. Information and Control, 9:521–530, 1966.

[Mel61] Z.A. Melzak. An informal arthmetical approach to computabil- ity and computation. Canadian Mathematical Bulletin, 4(3): 279–293, 1961.

[Min61] Marvin Minsky. Recursive unsolvability of post’s problem of ’tag’ and other topics in theory of turing machines. Annals of Mathematics, 74:437–455, 1961.

[ML84] Per Martin-L¨of. Intuitionistic type theory. Bibliopolis, 1984.

[Mos01] Yiannis Moschovakis. What is an algorithm? In B. Engquist and W. Schmid, editors, Mathematics unlimited – 2001 and beyond, pages 919–936. Springer, 2001.

[Mos06] Yiannis Moschovakis. On primitive recursive algorithms and the greatest common divisor function. Theoretical Computer Science, 301(1-3):1–30, 2006.

[MP71] Robert McNaughton and Seymour Papert. Counter-Free Au- tomata. The MIT Press, 1971.

[MS99] Christopher D. Manning and Hinrich” Sch¨utze. Foundations of Statistical Natural Language Processing. The MIT Press, Cam- bridge, 1999.

[Mul89] Jean-Michel Muller. Arithm´etiquedes ordinateurs. Masson, 1989.

[MW95] Angus J. Macintyre and Alex Wilkie. On the decidability of the real exponential field. In Pier Giorgio Odifreddi, editor, Kreisel 70th Birthday Volume. CLSI, 1995.

[MY60] Robert McNaughton and H. Yamada. Regular expressions and state graphs for automata. Transactions Electronic Computers, 9:39–47, 1960. 90 BIBLIOGRAPHY

[MY10] Jacques Mazoyer and Jean-Baptiste Yun`es. Computations on cellular automata. In Grzegorz Rozenberg, Thomas H.W. B¨ack, and Joost N. Kok, editors, Handbook of Natural Computing. Springer, 2010. to appear.

[Nie97] Michael A. Nielsen. Computable functions, quantum measure- ments, and quantum dynamics. Physical Review Letters, 79(15): 2915–2918, 1997.

[NvP01] Sara Negri and Jan von Plato. Structural proof theory. Cam- bridge University Press, 2001.

[NW06] Turlough Neary and Damien Woods. Small fast universal Tur- ing machines. Theoretical Computer Science, 362(1-3):171–195, 2006.

[Odi89] Piergiorgio Odiffredi. Classical recursion theory. North-Holland, 1989.

[OK04] Toby Ord and Tien D. Kieu. Using biased coins as oracles. Arxiv preprint cs/0401019, 2004.

[Ord02] Toby Ord. Hypercomputation: computing more than the turing machine. Arxiv preprint math/0209332, 2002.

[Ord06] Toby Ord. The many forms of hypercomputation. Applied Math- ematics and Computation, 178(1):143–153, 2006.

[Pan66] Victor Ya. Pan. Methods of computing the values of polynomi- als. Russian Mathematical Surveys, 21(1):105–137, 1966.

[Pap94] Christos H. Papadimitriou. Computational Complexity. Addison-Wesley, 1994.

[Par92] Michel Parigot. λµ-calculus: An algorithmic interpretation of classical natural deduction. In A. Voronkov, editor, Logic Pro- gramming and Automated Reasoning, volume 624, pages 190– 201. Springer, 1992.

[Pau79] Wolfgang Paul. Kolmogorov complexity and lower bounds. In L. Budach, editor, Second Int. Conf. on Fundamentals of Com- putation Theory, pages 325–334. Akademie Berlin, 1979. BIBLIOGRAPHY 91

[Pav73] Ludmila Pavlotskaya. Solvability of the halting problem for cer- tain classes of turing machines. Mathematical Notes Academy of Science USSR, 13:537–541, 1973.

[Pav78] Ludmila Pavlotskaya. Sufficient conditions for the halting prob- lem decidability of turing machines. Avtomaty i Mashiny, pages 91–118, 1978. (in Russian).

[Paz71] Azaria Paz. Introduction to Probabilistic Automata. Academic Press, 1971.

[Pen97] Mati Pentus. Product-free Lambek calculus and context-free grammars. Journal of Symbolic Logic, 62(2):648–660, 1997.

[Pla95] Wojciech Plandowski. The complexity of the morphism equiv- alence problem for context-free languages. PhD thesis, Warsaw University. Department of Informatics, Mathematics, and Me- chanics, 1995.

[PM93] Christine Paulin-Mohring. Inductive definitions in the system Coq - rules and properties. In M. Bezem and de Groote J.F., ed- itors, Typed lambda calculi and applications, volume 664, pages 328–345. Springer, 1993.

[PMW93] Christine Paulin-Mohring and Benjamin Werner. Synthesis of ml programs in the system coq. J. Symb. Comput., 15(5/6): 607–640, 1993.

[Poi03] Thierry Poibeau. Extraction automatique d’information. Du texte brut au web s´emantique. Herm´es,2003.

[PPST83] Wolfgang Paul, Nicholas John Pippenger, Endre Szemeredi, and William T. Trotter. On determinism versus nondeterminism and related problems. In Proceedings of IEEE FOCS’83, pages 429– 438. IEEE Computer Society, 1983.

[Pra65] Dag Prawitz. Natural deduction, a proof-theoretical study. Almqvist & Wiksell, 1965.

[Rab69] Michael O. Rabin. Decidability of Second-Order Theories and Automata on Infinite Trees. Transactions of the American Mathematical Society, 141:1–35, 1969. 92 BIBLIOGRAPHY

[Rab87] Michael O. Rabin. ACM Turing Award Lecture, 1977: Com- plexity of computations, pages 625–633. ACM Press/Addison- Wesley Publishing Co., 1987.

[Rad62] Tibor Rado. On a simple source for non-computable functions. Bell system technical journal, pages 877–884, 1962.

[Ric06] Jules Richard. Les principes des math´ematiqueset le probl`eme des ensembles. Acta mathematica, 30:295–296, 1906.

[Rob49] Julia Robinson. Definability and decision problems in arith- metic. Journal of Symbolic Logic, 14:98–114, 1949.

[Rog67] Hartley Jr Rogers. Theory of Recursive Functions and Effective Computability. McGraw Hill, New York, 1967.

[Rog96] Yuri Rogozhin. Small universal Turing machines. Theoretical Computer Science, 168:215–240, 1996.

[Ros86] Pierre Rosenstiehl. Existence d’automates finis capables de s’accorder bien qu’arbitrairement connect´eset nombreux. In- ternat. Comp. Centre, 5:245–261, 1986.

[RS97] Grzegorz Rozenberg and Arto Salomaa, editors. Handbooks of Formal Languages: vol 1. Word, language, grammar; vol 2. Lin- ear modeling; vol 3. Beyond words. Springer Verlag, 1997.

[Rub08] Sasha Rubin. Automata presenting structures: A survey of the finite string case. Bulletin of Symbolic Logic, 14(2):169–209, 2008.

[Rus35] Bertrand Russell. The limits of empiricism. In Proceedings of the Aristotelian Society, volume 36, pages 131–150. Blackwell Publishing; The Aristotelian Society, 1935.

[Sak09] Jacques Sakarovitch. Elements of Automata Theory. Cambridge University Press, 2009.

[Sav70] Walter John Savitch. Relationship between nondeterministic and deterministic tape classes. JCSS, 4:177–192, 1970.

[Sav98] John Savage. Models of computation, Exploring the power of computing. Addison Wesley, 1998. BIBLIOGRAPHY 93

[Sch51] Kurt Sch ”utte. Beweisetheoretische erfassung der unend lichen induktion in der zahlentheorie. Mathematische Annalen, 122: 369–389, 1951.

[Sch65] Marcel Paul Sch¨utzenberger. On finite monoids having only trivial subgroups. Information and Control, 8:190–194, 1965.

[Sch80] Arnold Sch¨onhage.Storage modification machines. SIAM Jour- nal on Computing, 9(3):490–508, 1980.

[Sei90] Joel I. Seiferas. Machine-independent complexity. In Jan Van Leeuwen, editor, Handbook of Theoretical Computer Science A: Algorithms and Complexity, pages 163–186. Elsevier Science Publishers and The MIT Press, 1990.

[S´en98] G´eraudS´enizergues. The equivalence problem for determinis- tic pushdown transducers into abelian groups. In Proceedings MFCS’98, volume 1450 of Lecture Notes in Computer Science, pages 305–315. Springer, 1998.

[S´en02] G´eraud S´enizergues. L(A)=L(B)? a simplified decidability proof. Theoretical Computer Science, 281:555–608, 2002.

[SF98] Hava T. Siegelmann and Shmuel Fishman. Analog computation with dynamical systems. Physica D, 120:214–235, 1998.

[Sha41] Claude E. Shannon. Mathematical theory of the differential analyser. Journal of Mathematics and Physics MIT, 20:337– 354, 1941.

[Sha48] Claude E. Shannon. The mathematical theory of communica- tion. Bell System Tech. J., 27:379–423, 1948.

[Sho94] Peter Shor. Algorithms for quantum computation: Discrete log- arithms and factoring. In Shafi Goldwasser, editor, Proceedings of the 35nd Annual Symposium on Foundations of Computer Science, pages 124–134. IEEE Computer Society Press, 1994.

[Sie94] Wilfried Sieg. Mechanical procedures and mathematical expe- rience. Mathematics and mind, pages 71–117, 1994.

[Sie97] Wilfried Sieg. Step by recursive step: Church’s analysis of effec- tive calculability. The Bulletin of Symbolic Logic, 3(2):154–180, 1997. 94 BIBLIOGRAPHY

[Sie99] Wilfried Sieg. Hilbert’s programs: 1917-1922. The Bulletin of Symbolic Logic, 5(1):1–44, 1999.

[Sie08] Wilfried Sieg. Church without dogma–Axioms for computabil- ity. In S.B. Cooper, B. L¨owe, and A. Sorbi, editors, New Com- putational Paradigms. Changing Conceptions of What is Com- putable. Springer, New York, 2008.

[Sim94] Daniel R. Simon. On the power of quantum computation. In Proceedings of the 35th Annual Symposium on Foundations of Computer Science, pages 116–123. IEEE Computer Society Press, 1994.

[Sip06] Michael Sipser. Introduction to the Theory of Computation (2nd ed.). Thomson Course Technology, 2006.

[Smi99] Warren D. Smith. History of “Church’s theses” and a mani- festo on converting physics into a rigorous algorithmic discipline. Technical report, NEC Research Institute, 1999. Avalaible on http://www.math.temple.edu/~wds/homepage/works.html. [Smu61] Raymond M. Smullyan. Theory of Formal Systems. Princeton University Press, 1961.

[Smu93] Raymond M. Smullyan. Recursion Theory for Metamathemat- ics. Oxford University Press, 1993.

[Smu94] Raymond M. Smullyan. Diagonalization and Self-Reference. Ox- ford University Press, 1994.

[Smu95] Raymond M. Smullyan. Th´eorie de la r´ecursivit´e pour la m´etamath´ematique. Masson, Paris, 1995. Traduction Philippe Ithier.

[SS63] John C. Shepherdson and Howard E. Sturgis. Computability of recursive functions. Journal of ACM, 10(2):217–255, 1963.

[SS71] Arnold Sch¨onhageand Volker Strassen. Schnelle multiplikation großer zahlen. Computing, 7:281–292, 1971.

[SS95] Hava T. Siegelmann and Eduardo D. Sontag. On the computa- tional power of neural nets. Journal of Computer and System Sciences, 50(1):132–150, February 1995. BIBLIOGRAPHY 95

[STvEB89] Edith Spaan, Leen Torenvliet, and Peter van Emde Boas. Non- determinism fairness and a fundamental analogy. Bulletin of the EATCS, 37:186–193, 1989.

[SvEB84] Cees F. Slot and Peter van Emde Boas. On tape versus core an application of space efficient perfect hash functions to the invariance of space. In ACM, editor, Proceedings of the sixteenth annual ACM Symposium on Theory of Computing, Washington, DC, April 30–May 2, 1984, pages 391–400. ACM Press, 1984.

[Tai67] William W. Tait. Intentional interpretations of functionals of finite type I. The Journal of Symbolic Logic, 32:198–212, 1967.

[Tar31] Alfred Tarski. Sur les ensembles d´efinissablesde nombres r´eels I. Fundamenta Mathematica, 17:210–239, 1931.

[TG95] Alan M. Turing and Jean-Yves Girard. La machine de Turing. Editions du Seuil, 1995.

[Tur36] Alan M. Turing. On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Math- ematical Society, 42(2):230–265, 1936. Reprinted in [Dav65].

[Tur39] Alan M. Turing. Systems of logic based on ordinals. Proceedings of the London Mathematical Society, 45:161–228, 1939.

[TW68] James W. Thatcher and Jesse B. Wright. Generalized finite automata with an application to a decision problem of second- order logic. Mathematical System Theory, 2:57–82, 1968.

[Urb01] Christian Urban. Strong Normalisation for a Gentzen-like Cut- Elimination Procedure. In Typed lambda calculi and applica- tions, volume 2044, pages 415–429. Springer, 2001.

[vdD03] Lou van den Dries. Generating the greatest common divisor, and limitations of primitive recursive algorithms. Foundations of computational mathematics, 3(3):297–324, 2003.

[vEB90] Peter van Emde Boas. Machine models and simulations, chap- ter 1, pages 1–66. The MIT Press and Elsevier, 1990.

[vL90] Jan van Leeuwen, editor. Handbook of theoretical computer sci- ence, volume A: Algorithms and Complexity, B: Formal Models and Semantics. The MIT Press and Elsevier, 1990. 96 BIBLIOGRAPHY

[vN51] John von Neumann. A general and logical theory of automata. In L.A. Jeffries, editor, Cerebral Mechanisms in Behavior–The Hixon Symposium, pages 1–31. Wiley, 1951. Reprinted in Papers of John von Neumann on Computing and Computer Theory, ed. William Aspray and Arthur Burks, MIT Press, 1987.

[vN66] John von Neumann. Theory of Self-Reproducing Automata. Uni- versity of Illinois Press, 1966. (Edit´eet compl´et´epar Arthur W. Burks `apartir d’un cours donn´epar von Neumann en 1949).

[VSD86] Anastasios Vergis, Kenneth Steiglitz, and Bradley Dickinson. The complexity of analog computation. Mathematics and Com- puters in Simulation, 28(2):91–113, 1986.

[Wac05] Benjamin Wack. Typage et d´eduction dans le calcul de r´e´ecriture. PhD thesis, Universit´eHenri Poincar´e,Nancy 1, 2005.

[Wei00] Klaus Weihrauch. Computable Analysis: an Introduction. Springer, 2000.

[Wer94] Benjamin Werner. Une th´eoriedes constructions inductives. PhD thesis, Universit´eParis 7, 1994.

[WK27] Hermann Weyl and Gottlob Kirschmer. Philosophie der Mathe- matik und Naturwissenschaft. Oldenbourg Wissenschaftsverlag, 1927.

[Wol02] Stephen Wolfram. A New Kind of Science. Wolfram Media, 2002.

[Yao93] Andrew Chi-Chih Yao. Quantum circuit complexity. In Proc. 34th IEEE Symposium on Foundation of Computer Science. IEEE Computer Society Press, 1993.

[Yao03] Andrew Chi-Chih Yao. Classical physics and the Church–Turing Thesis. Journal of the ACM, 50(1):100–105, January 2003.

[Yun06] Jean-Baptiste Yun`es.Fault tolerant solutions to the firing squad synchronization problem in linear cellular automata. Journal of Cellular Automata, 1(3):253–268, 2006.