Académique Documents
Professionnel Documents
Culture Documents
Thierry Coquand,
B : tes travaux se situent à la frontière de l’informatique et des mathématiques. Est-ce
que ce sont pour toi deux domaines distincts ?
TC : le point de départ de ma thèse était une tentative d’identifier ces deux domaines. Avec le
recul, je me rends compte de la naïveté de ce projet. Cependant, il existe des analogies
remarquables entre les deux domaines, qui nous apprennent énormément sur l’un et sur
l’autre, et c’est cela qui m’intéresse.
B : peux-tu nous parler d’une de ces analogies que tu as étudiée dans ta thèse ?
J’ai été influencé par les travaux du mathématicien néerlandais, Nicolaas de Bruijn, qui a eu
l’idée d’utiliser des notations issues de l’informatique pour représenter les démonstrations.
Ses travaux, ceux du statisticien et logicien suédois Per Martin-Löf et du logicien français
Jean-Yves Girard m’ont beaucoup influencé. Ma thèse fait la synthèse des langages qu’ils ont
proposés.
On retrouve dans nos travaux, l’idée que les démonstrations mathématiques sont des
programmes exprimés dans un type particulier de langage de programmation : un langage
fonctionnel, comme les langages Lisp ou ML. Cette manière d’exprimer les programmes est
particulièrement appropriée pour obtenir une représentation uniforme des programmes
informatiques et des démonstrations mathématiques. La programmation fonctionnelle apporte
comme une correspondance magique entre programmes et démonstrations. C’est ce que j’ai
fait dans ma thèse. Et c’est le programme que j’ai poursuivi pendant trente ans dans un
domaine qui reste toujours très riche.
L’informatique ici aussi apporte un renouveau : parce que les systèmes qu’ils conçoivent sont
très complexes, les informaticiens sont obligés de trouver de bonnes notations.
La correction d’un raisonnement mathématique doit être un fait objectif. Mais le chemin vers
la perfection est long et ce que nous avons découvert, depuis cinquante ans est qu’écrire des
démonstrations absolument correctes est impossible sans ordinateur. Chaque étape du
développement des mathématiques nous a cependant apporté de nouvelles notations qui nous
ont rapproché de cet idéal. C’est pour cela qu’il y a une histoire de des langages d’expression
des démonstrations.
Il nous reste cependant encore beaucoup de progrès à faire : les démonstrations formelles que
nous écrivons aujourd’hui sont difficilement lisibles par les humains. Nous devons donc
comprendre comment concilier complexité, correction et lisibilité. Nous ne sommes qu’au
début de cette histoire.
TC : les informaticiens sont confrontés à la complexité des programmes, de même que les
mathématiciens confrontés à celle des démonstrations. Ils ont donc eux aussi besoin de
vérifier que leurs programmes sont corrects, qu’ils font bien ce qu’ils sont supposés faire. Les
outils pour raisonner sur les programmes, pour vérifier leur correction sont les mêmes que
ceux qui permettent de vérifier la correction des démonstrations mathématiques.
TC : Georges Gonthier et son équipe ont formalisé une démonstration du théorème de Feit-
Thompson. La démonstration de ce théorème était connue depuis les années 1960 mais il leur
a fallu six ans pour construire cette démonstration formelle, c’est bien le signe que tout n’était
pas dit dans la démonstration originale. La démonstration de Georges nous permet d’avoir
véritablement confiance dans ce résultat. Mais au delà, elle nous permet aussi de maîtriser la
complexité du problème, de l’analyser, de comprendre sa structure de façon plus
fondamentale.
TC : c’est une motivation bien sûr. On peut rêver de proposer aux mathématiciens des outils à
la mesure de leurs rêves, des outils qui leurs permettent de dompter la complexité de certaines
démonstrations. Mais nous n’en sommes qu’au début. Les mathématiciens ne se sont pas
encore emparés de ces logiciels comme les astronomes des télescopes. Peut-être l’outil est-il
encore trop récent ?
TC : non bien entendu, mais les démonstrations par l’absurde occupent une place singulière
au sein des démonstrations. Cette singularité fait qu’ils trouvent mal leur place dans la
correspondance entre programmes et démonstrations. Cette correspondance est surtout une
correspondance entre les programmes fonctionnels et les démonstrations constructives. Peut-
on aller au-delà des démonstrations constructives ? C’est une direction de recherche active
aujourd’hui.
TC : ma réponse va peut-être surprendre les lecteurs de Binaire. Mais depuis trente ans nous
sommes bloqués par une question qui a l’air simple. Qu’est-ce que l’égalité ? Comment
définir ce symbole que nous notons « = » ? Les réponses que, depuis Leibniz, nous avons
apportées à cette question sont toutes insatisfaisantes. Car elles n’égalisent pas assez d’objets,
nous voudrions montrer que tel objet est égal à tel autre, mais nous n’y parvenons pas car
notre définition de l’égalité est trop tatillonne.
TC : ce n’est pas un secret : le travail d’équipe. Ce que j’ai fait n’était possible qu’avec les
gens qui sont venus avant comme mon directeur de thèse, Gérard Huet, et d’autres pour
poursuive les travaux après comme Hugo Herbelin. On bâtit nos résultats sur ceux des autres.
J’ai mentionné des travaux qui ont influencé ma recherche. Et leurs impacts ne dépendent pas
que de nous. La théorie des constructions n’aurait jamais eu cet impact sans le système Coq,
c’est-à-dire plus de 15 ans de travail d’une équipe brillante.
TC : j’aimerais que toute cette théorie serve pour enseigner les démonstrations aux enfants.
Ce sujet passionnait déjà de Bruijn. La notion de démonstration est difficile à enseigner aux
enfants. Qu’est-ce que c’est une démonstration ? Comment peut-on se convaincre qu’elle est
correcte ? Est-ce que j’ai donné assez de détail pour convaincre quelqu’un d’autre ? Il me
semble qu’enseigner la notion de démonstrations en s’appuyant sur la vérification
d’algorithmes est la bonne direction. Il y a par exemple les travaux là-dessus de Julien
Narboux à Strasbourg. Les enfants comprennent bien la notion d’algorithme et la proximité
des notations entre programmes et démonstrations facilite la tâche.