SAVOIRS par L.T.D. Nguyen et J. Ledent La théorie homotopique des types : de nouveaux fondements des mathématiques ? Depuis la fin du xixe siècle, la théorie des ensembles sert de fondement aux mathématiques actuelles. Au début du xxie siècle, une théorie alternative se développe, peut-être plus à même d’accéder directement et efficacement aux mathématiques d’aujourd’hui. L Bertrand Russell (1872–1970). es mathématiciens, logiciens et philosophes de la fin du xixe siècle se sont attelés à la formalisation rigoureuse des notions mathématiques les plus élémentaires. Qu’est-ce qu’une preuve mathématique ? Quelles sont les « règles de déduction » autorisées ? Sur quels axiomes doivent reposer les mathématiques ? L’aboutissement de ces recherches a été l’élaboration de la théorie des ensembles de Zermelo– Fraenkel, qui est aujourd’hui considérée comme la théorie sur laquelle se fondent toutes les mathématiques. Depuis le début des années 2000, une concurrente au titre de « fondement des mathématiques » pointe le bout de son nez : c’est la théorie homotopique des types, née de la rencontre entre la théorie des types (voir l’article consacré à la correspondance de Curry– Howard), et une branche abstraite des mathématiques appelée la théorie de l’homotopie. © Bertrand Russell Society Définir la notion d’égalité 120 Les logiciens qui s’intéressent aux fondements des mathématiques se rendent parfois compte que les notions les plus intuitives ne sont pas toujours les plus simples à définir. Un exemple bien connu est celui de la preuve de 1 + 1 = 2, qui n’arrive qu’en page 379 des célèbres Principia Mathematica de Russell et Whitehead. Ce n’est pas tant la preuve de ce résultat qui est difficile que la quantité Tangente Hors-série n°55. Les démonstrations d p r A l d d d d p a s l m ( ( L l d f d ( p t p e ( o D t u e x a NOUVELLES FORMES de définitions nécessaires au préalable pour pouvoir l’énoncer et le prouver rigoureusement. Ainsi, au cœur des nouvelles idées à l’origine de la théorie homotopique des types se trouve la notion même d’égalité. Qu’est-ce que cela veut dire, pour deux objets mathématiques, d’être « égaux » ? La définition la plus courante nous vient de Leibniz, au xviie siècle, pour qui deux objets sont égaux si, et seulement si, ils ont les mêmes propriétés. En langage plus mathématique : (x = y) + pour toute propriété P, (P (x) + P (y)). e e t e e a – s e x e s . e e e é Gottfried Wilhelm Leibniz (1646–1716). La théorie des types de Martin-Löf, sur laquelle repose la théorie homotopique des types, adopte un point de vue différent sur la notion d’égalité. Du côté de la théorie des types, les propositions (au sens mathématique usuel) correspondent à des types. Les habitants d’un type correspondent à des preuves de la proposition associée. Si A est un type et x est un habitant de A, on note x : A (que l’on prononce « x est de type A » ou encore « x est une preuve de A »). Définir la notion d’égalité va donc re- venir à définir, pour tous objets x et y, un nouveau type, que l’on note (x = y). Les habitants de ce type seront des preuves d’égalité entre x et y. Dans la théorie des types, on dispose d’un cadre général permettant de définir de nouveaux types : les types inductifs. Pour comprendre de quoi il s’agit, regardons un exemple de type inductif qui nous est familier : les nombres entiers naturels. En théorie des types, on définit le type des entiers de la manière suivante : • zéro (noté 0) est un entier ; • si n est un entier, alors son successeur (noté n + 1) est un entier. Alfred North Whitehead (1861–1947). On a défini le type des entiers en donnant la « forme » de ses habitants. On dit que « zéro » et « successeur » sont les deux constructeurs du type des entiers. Là où les types inductifs interviennent, c’est qu’avec une telle définition, on obtient automatiquement un principe de raisonnement associé, le raisonnement par induction. Dans le cas des entiers, ce principe avance que pour prouver qu’une proposition P (n) est vraie pour tout entier n, il suffit de prouver qu’elle est vraie pour 0, et qu’elle se propage par passage au successeur. Revenons à l’égalité : comme pour les entiers, on va définir le type (x = y) en donnant la forme des habitants de ce type. Le type égalité n’a en fait qu’un constructeur, qui correspond à la réflexivité, la propriété d’être égal à soimême. On le note : reflx : (x = x). Cela signifie que pour un x donné, reflx est une preuve de (x = x). Le principe d’induction associé est pour le moins étrange : il affirme que « pour prouver qu’une proposition P(x, y, p) portant sur des preuves d’égalité p : (x = y) est vraie pour tout p, il suffit de prouver que P (x, x, reflx) est vraie ». Hors-série n°55. Les démonstrations Tangente 121 SAVOIRS La théorie homotopique… Topologie, homotopie et chemins La théorie de l’homotopie est un sous-domaine de la topologie algébrique, qui est elle-même une branche abstraite des mathématiques proche de la géométrie. La topologie a pour objet d’étude les espaces topologiques, que l’on peut voir comme des « formes géométriques à déformation près ». Ainsi, une tasse et un beignet représentent en fait le même espace topologique : on peut déformer la tasse de manière continue, jusqu’à obtenir le beignet. Le trou au milieu du beignet correspondra à l’anse de la tasse. © Marcelo Coelho (MIT) et Jamie Zigelbaum Steve Awodey au Congrès de logique, méthodologie et philosophie des sciences (Nancy, 2011). 122 © É. Thomas Sur un espace topologique, on peut définir la notion de chemins, c’est-à-dire les façons dont on peut relier de manière continue deux points d’un espace. Mieux, on peut ensuite se demander si deux chemins peuvent être déformés l’un en l’autre, toujours de manière continue. Lorsque c’est le cas, on dit qu’on a un 2-chemin (aussi appelé une homotopie), qui relie deux chemins entre eux. Et ainsi de suite : on peut construire des 3-chemins (qui relient des 2-chemins entre eux), des 4-chemins… La théorie de l’homotopie est l’étude de la structure de ces chemins d’ordre supérieur. Ceci ne ressemble pas vraiment à ce que les mathématiciens ont l’habitude de faire ! Et pourtant, ce principe s’avère en fait très puissant : il permet de prouver toutes les propriétés habituelles de l’égalité, y compris le principe de Leibniz. Depuis l’apparition de la théorie des types de Martin-Löf dans les années 1970, les logiciens ont essayé de comprendre ce type égalité et son étrange principe d’induction. Une question notamment est restée ouverte pendant plus de vingt ans : peut-on montrer l’unicité des preuves d’égalité, c’est-àdire le fait que la seule preuve d’égalité possible est reflx ? Cette propriété semble naturelle, on peut par exemple aisément prouver que « tout entier est soit 0, soit le successeur d’un autre entier ». Mais, mystérieusement, personne n’arrivait à prouver de propriété similaire à propos des preuves d’égalité. C’est finalement en 1994 que Martin Hofmann et Thomas Streicher ont répondu à la question par la négative : on ne peut prouver ni qu’elle est vraie, ni qu’elle est fausse ! Les conséquences de cette révélation sont à la base de la théorie homotopique des types, mais les logiciens n’ont pas remarqué tout de suite son importance. Ce n’est qu’en 2009 que le lauréat de la médaille Fields Vladimir Voevodsky (d’une part) et Steve Awodey avec son étudiant Michael Warren (d’autre part) ont proposé une conception des types égalité pour laquelle l’unicité des preuves d’égalité est naturellement… fausse. Cette nouvelle interprétation étend la correspondance de Curry–Howard : un type est vu comme un espace topologique, et une preuve d’égalité p : (x = y) entre deux éléments de ce type correspond à un chemin de x vers y dans l’espace Tangente Hors-série n°55. Les démonstrations t s l c s d t d L L t v d d « m d d f e s q q p fi m d s U c c d L v m t c D l t E e c p e t s s e n t r - é e t e é : , n s n e e l e é t t e d e topologique correspondant. Des liens se créent entre la théorie des types et la théorie de l’homotopie (voir en encadré). Les types égalité n’ont plus la structure triviale imposée par l’unicité des preuves d’égalité, mais sont maintenant munis d’une structure complexe d’espace de chemins. L’interprétation homotopique Les liens entre théorie des types et théorie de l’homotopie ont ouvert la voie à une multitude de nouvelles idées dans les deux domaines. En théorie des types, la nouvelle interprétation « homotopique » des types égalité a mené Voevodsky à formuler l’axiome d’univalence, qui permet de justifier de manière élégante certains principes fondamentaux des mathématiques. Par exemple, il permet de prouver l’extensionnalité fonctionnelle, qui exprime que deux fonctions sont égales lorsqu’elles prennent les mêmes valeurs partout. Mieux, il permet aussi de justifier formellement une pratique que les mathématiciens qualifiaient jusque-là d’« abus de langage » : le fait que deux structures isomorphes sont égales. Une autre idée nouvelle est le fait de classifier les types en fonction de la complexité de leur égalité, c’est-à-dire de l’espace des chemins sur ce type. Les plus simples sont les types de niveau −1, dans lesquels tous les éléments sont reliés par un chemin. Les types de niveau 0 sont ceux où tous les chemins sont reliés par des 2-chemins. De manière similaire, on peut définir les types de niveau 1, 2, 3… jusqu’aux types de niveau ∞ ! En bas de cette hiérarchie, on retrouve en fait des objets mathématiques bien connus : les types de niveau −1 se comportent comme les propositions mathé- © É. Thomas e NOUVELLES FORMES matiques, et ceux de niveau 0 se comportent comme des ensembles (c’est par exemple au niveau 0 que se trouve le type des entiers). Au-delà, les types de niveau n correspondent en fait à des n-groupoïdes, une structure abstraite issue de la théorie des catégories. Cette construction permet de résoudre certaines des difficultés de la théorie des types, parfois jugée « trop éloignée » des mathématiques usuelles. Par exemple, en théorie des types, de par sa nature constructive, une preuve de « il existe x tel que P (x) » contient forcément un témoin d’existence, c’est-à-dire un objet précis x qui vérifie la propriété P. En mathématiques usuelles, on veut pouvoir prouver une Vladimir Voevodsky à l’Institut Henri-Poincaré (avril 2014). Hors-série n°55. Les démonstrations Tangente 123 SAVOIRS La théorie homotopique… proposition de cette forme sans exhiber de témoin : par exemple, on suppose qu’il n’en existe pas, et on aboutit à une contradiction. La théorie homotopique des types unifie ces deux points de vue : le « il existe » des mathématiques usuelles correspond à un type de niveau −1, qui contient comme seule information le fait que la proposition soit vraie ou fausse. Le « il existe » constructif correspond quant à lui à un type de niveau supérieur, qui peut alors contenir comme information supplémentaire un témoin d’existence. D’autre part, la théorie homotopique des types peut être vue comme un langage privilégié permettant d’exprimer de manière simple les concepts de la théorie de l’homotopie. Par exemple, en théorie de l’homotopie, on définit habituellement un chemin dans un espace X comme une fonction continue allant de l’intervalle [0, 1] dans X. Si l’on voulait formaliser complètement cette définition, il faudrait d’abord définir la notion d’intervalle, qui s’appuie sur la définition des nombres réels, qui sont eux-mêmes définis à partir des nombres rationnels, eux-mêmes définis à partir des entiers… Cela rend très difficile la formalisation des théorèmes de la théorie de l’homotopie dans des assistants de preuve tels que Coq. Avec la théorie homotopique des types, la notion de chemin devient un des concepts les plus fondamentaux : un chemin de x vers y, c’est simplement une preuve de (x = y). En développant cette idée, on aboutit à un nouvel outil important : la notion de type inductif supérieur, qui généralise celle de type inductif. Cet outil permet de définir un type non seulement en précisant quels sont ses éléments, mais aussi en précisant quels sont les 124 chemins (et les 2-chemins, etc.) sur ce type. Cette idée très simple permet de définir tous les espaces topologiques intéressants de manière intuitive, ce qui facilite considérablement les preuves formelles en théorie de l’homotopie ! Le type du cercle On peut ainsi définir le cercle comme un type inductif supérieur. Ce que l’on veut en fait définir, c’est l’espace topologique correspondant au cercle, ou encore un « cercle à déformation près ». On ne s’intéressera pas, par exemple, à caractériser le rayon de ce cercle. Le type du cercle, noté C, est le type inductif supérieur généré par les deux constructeurs suivants : • BASE : C, • LOOP : (BASE = BASE). Le premier constructeur permet de dire qu’il existe un élément, nommé BASE, qui est de type C (ou bien, « qui appartient au cercle »). C’est un constructeur « usuel » de type inductif, car il définit un élément du type cercle. Au contraire, le second constructeur stipule qu’il existe un chemin, nommé LOOP, allant de BASE vers BASE, dans le type C. C’est un constructeur dit d’ordre supérieur : il ne définit pas un élément de C, mais un chemin dans C. Comme tout type inductif, le cercle est muni d’un principe d’induction, qui nous permet de prouver des propriétés le concernant. Selon ce principe, pour prouver qu’un propriété P (x) est vraie pour tout élément x du cercle, il suffit Tangente Hors-série n°55. Les démonstrations d q l c c d t b t n c q c À s s B t c fl d D d c b e n m p d d L t m D d r ( O L c c l c E e e s i s e n , . e x e , r t , l t . , t i s r e NOUVELLES FORMES de prouver que P(BASE) est vraie, et que P est préservée par « transport » le long de LOOP. Pour bien saisir ce principe d’induction, il faudrait définir précisément la notion de transport, issue de la théorie de l’homotopie. L’idée intuitive est qu’un type inductif est « librement engendré » par ses constructeurs : les constructeurs définissent de nouveaux éléments du type. Dans le cas du cercle, cela donne en particulier que le chemin LOOP est distinct du chemin trivial reflBASE. À quoi ressemble l’espace des chemins sur le cercle ? Plus précisément, quels sont les chemins allant de BASE vers BASE, ou encore, quels sont les habitants du type (BASE = BASE) ? On en connaît déjà deux : le chemin trivial reflBASE, et LOOP. Mais on peut en créer de nouveaux ! D’une part, la propriété de transitivité de l’égalité (si x = y et y = z, alors x = z) correspond à la concaténation (la mise bout-à-bout) de chemins. Si p : (x = y) et q : (y = z), alors leur concaténation est notée p • q : (x = z). Concaténer le chemin trivial n’a aucun effet, mais on peut par contre itérer le chemin LOOP afin de faire plusieurs tours du cercle. On définit ainsi LOOP2 = LOOP • LOOP, LOOP3 = LOOP2 • LOOP, etc. Intuitivement, le chemin LOOPn est le chemin faisant n tours du cercle. D’autre part, la propriété de symétrie de l’égalité (si x = y alors y = x) correspond à l’inversion d’un chemin (parcourir le chemin dans l’autre sens). On peut également définir l’inverse de LOOP, noté LOOP−1, qui fait le tour du cercle dans l’autre sens. En itérant ce chemin, on définit pour chaque entier n le chemin LOOP−n, qui fait n tours du cercle dans le sens inverse de LOOP. Enfin, LOOP • LOOP−1 = reflBASE. L’espace des chemins de BASE vers BASE ressemble à l’ensemble Z des entiers relatifs, où reflBASE joue le rôle du 0, les LOOPn jouent le rôle des entiers positifs, et les LOOP−n jouent le rôle des entiers négatifs. En fait, le type Z et le type (BASE = BASE) sont équivalents, et l’axiome d’univalence permet alors de dire qu’ils sont égaux ! Au final, on retrouve un résultat bien connu en topologie : « Le groupe fondamental du cercle est . » Le langage de la théorie des types La théorie des types est basée sur la correspondance de Curry–Howard. Le langage dans lequel elle s’exprime est conçu comme étant à la fois un langage de programmation, et un langage pour écrire des preuves mathématiques. Son formalisme est par conséquent assez éloigné de ce que l’on a l’habitude de voir en mathématiques. Voyons à quoi il ressemble. Les deux principales composantes de ce langage sont les types et les termes. • Les types (notés en majuscules : A, B, C…) correspondent d’une part à la notion habituelle de type en programmation (un programme de type A " B prend en entrée un argument de type A et renvoie une sortie de type B), et d’autre part aux propositions mathématiques. • Les termes (notés en minuscules t, u, v…) peuvent être vus à la fois comme des programmes et comme des preuves. La notation t : A signifie donc à la fois que t est un programme de type A, et que t est une preuve de la proposition A. Per Martin-Löf (né en 1942). Les symboles logiques usuels / (« et »), 0 (« ou »), & (« implique »), 6 (« quel que soit ») et 7 (« il Hors-série n°55. Les démonstrations Tangente 125 SAVOIRS La théorie homotopique… existe ») sont tous remplacés par des constructeurs de types, qui occupent des fonctions analogues. Les symboles sont changés pour éviter toute confusion (et parce que la théorie des types formalise les mathématiques intuitionnistes, qui ne sont pas les mathématiques usuelles) : • Le type produit A × B est l’analogue du « et » logique. Les termes de type A × B sont des paires de la forme (t, u) où t : A et u : B, d’où la notation, qui rappelle le produit cartésien ensembliste. D’un point de vue logique, on le comprend comme suit : une preuve de A × B (« A et B »), c’est la donnée d’une preuve de A, et d’une preuve de B. • Le type somme A + B est l’analogue du « ou » logique. Un terme de type A + B est soit de la forme inj1 (t) où t : A, soit de la forme inj2 (t) où t : B. Cela rappelle l’union disjointe de A et B en termes ensemblistes. D’un point de vue logique, une preuve de A + B (« A ou B »), c’est soit une preuve de A, soit une preuve de B. • Le type des fonctions de A dans B, noté A " B, correspond à l’implication. À cause des liens entre la théorie des types et le λ-calcul, les fonctions s’écrivent λx.t au lieu de la notation plus traditionnelle x 7 t. La fonction λx.t est de type A " B lorsque t est de type B, sous l’hypothèse que la variable x est de type A. Pour pouvoir bien définir ce constructeur, il faudrait introduire la notion de contexte de typage ; on ne s’en embarrassera pas ici. L’interprétation logique de tout cela est qu’une preuve de A " B (« A implique B »), c’est un programme qui prend en entrée une preuve de A, et s’en sert pour fabriquer une preuve de B. 126 • Le type des fonctions dépendantes P B ^ x h est une généralisation du type x.A A " B. C’est l’analogue de la quantification universelle « 6 x d A, B (x) ». Un terme de ce type, c’est une fonction (toujours notée λx.t) qui prend en entrée un x de type A, et renvoie un résultat de type B (x) : le type du résultat peut désormais dépendre de l’argument x que l’on a reçu en enB ^ x h (« quel trée. Une preuve de P x.A que soit x dans A, B (x) »), c’est donc un programme qui prend en entrée un argument x et renvoie une preuve de B (x). • Le type des paires dépendantes | B^ xh x.A est l’analogue de la quantifi- cation existentielle « 7 x d A, B (x) ». Les termes de ce type sont les paires de la forme (t, u) où t : A et u : B (t). Le type de la deuxième composante peut donc dépendre de la première composante. D’un point de vue logique, une preuve de | B^ xh x.A (« il existe x dans A tel que B (x)) c’est la donnée d’un témoin t particulier dans A, et d’une preuve de B (t). Il devient maintenant possible de voir quelques exemples de preuves en théorie des types. Commençons par la proposition « A implique A », qui se traduit par le type A " A. Une preuve de cette proposition, c’est un programme de type A " A. La fonction identité convient : λx.x est de type A " A, c’est une preuve de « A implique A ». Le mot « preuve » n’est ici pas à prendre à la légère, le terme « λx.x » contient tout le raisonnement nécessaire pour prouver A " A, il dit très exactement : « Supposons A, alors par hypothèse A est vrai. » Une fois que l’on dispose de ce terme, pour vérifier que λx.x : Tangente Hors-série n°55. Les démonstrations A l d f à q n p a U p L O t e O u t e s L V C d s l t L s t « e a m t e t C m s e t i e e n e s - e e t e s n e r e e é t e t r : NOUVELLES FORMES A " A, ce n’est plus que du calcul, de l’application bête et méchante de règles de typage. Même un ordinateur peut le faire ! C’est justement l’idée qui est à la base des assistants de preuve tels que Coq, qui sont incapables de raisonner mais qui peuvent vérifier qu’une preuve (rédigée dans un formalisme adéquat) est correcte. Un exemple plus sophistiqué est proposé en encadré. L’axiome du choix L’axiome d’univalence où fst et snd sont respectivement les projections selon la première et la deuxième composante. Mais alors, l’axiome du choix serait-il prouvable en théorie des types ? En fait non, ce type représente un énoncé strictement plus faible que l’axiome du choix, à cause du fait que l’on est en mathématiques constructives : le type R contient strictement plus d’informations que le quantificateur 7 habituel. Pour énoncer le « vrai » axiome du choix, il faut utiliser un opérateur de troncature noté ||A||, qui permet d’oublier ces informations supplémentaires. Le « vrai » axiome du choix s’énonce alors : On peut aller plus loin et définir la notion d’équivalence A - B des types A et B : A - B: = | | b % g % f ^ x h = x l ^ h^ h ^ h f:A " B g:B " A x:A # b % f % g^ yh = y l. ^y:Bh On peut voir cette équivalence comme une notion « d’isomorphisme » entre types : il existe des fonctions f : A " B et g : B " A telles que leur composée dans les deux sens soit l’identité. L’axiome d’univalence proposé par Vladimir Voevodsky s’énonce alors : (A = B) - (A - B). Cet axiome propose que la notion d’équivalence et la notion d’égalité sont équivalentes. En particulier, si on le lit de droite à gauche, il dit que deux types isomorphes sont égaux ! La théorie homotopique des types semble donc être en voie d’unifier la théorie des types et les mathématiques « usuelles » basées sur la théorie des ensembles. Ces dernières années, elle a suscité l’engouement de nombreux mathématiciens, logiciens et informaticiens, si bien qu’en 2013, une année entière lui a été consacrée à l’Institute for Advanced Study à Princeton. Certains informaticiens ont déjà commencé à implémenter de nouveaux Si l’on essaye de traduire naïvement l’axiome du choix dans le langage de la théorie des types, on aboutit au type suivant (que l’on notera AC') : AC': = %| ^ x:Ah ^y:B^ x hh C ^ x, yh " c f: | % C^ x, f^ x hh. % ^ x:Ah B^ x hm ^ x:Ah On peut vérifier que le terme suivant est une preuve de AC' : λh.(λx.fst (h (x)), λx.snd (h(x))) : AC’, AC': = % | ^ x:Ah ^y: B^ x hh C ^ x, yh " | % C^ x, f^ x hh ^ h c f: % B^ x hm x: A . ^ x: Ah assistants de preuve expérimentaux (Cubical et Andromeda) basés sur la théorie homotopique des types. Elle a également de forts liens avec la théorie des catégories, et s’inscrit donc dans la continuation des développements abstraits des mathématiques du xxe siècle, comme les travaux d’Alexander Grothendieck (voir Tangente 162, 2015). La théorie homotopique des types promet de fournir un langage adapté aussi bien à l’expression des concepts et des raisonnements les plus abstraits des mathématiques modernes, qu’à leur formalisation et leur vérification par un ordinateur. L.T.D. N. & J. L. Hors-série n°55. Les démonstrations Tangente 127