Participants : Benjamin Grégoire,
Hugo Herbelin, Alexandre Miquel, Benjamin Werner.
Mots clés : démonstrations, compilation .
L'une des originalités du système Coq est
que son formalisme intègre une notion de calcul. Plus exactement,
les objets de Coq correspondent
essentiellement à un noyau fonctionnel pur et terminant de ML. De
plus, le raisonnement sur ces objets se fait modulo la relation
d'exécution de ces programmes (modélisée par la
![]()
![]()
-réduction); pour
certains problèmes, on peut exploiter cette caractéristique pour
réduire d'un ordre de grandeur la taille des démonstrations par
rapport à ce qui est possible dans un formalisme plus
traditionnel.
Ceci a conduit à un style nouveau de démonstrations, exploitant de manière de plus en plus intensive le mécanisme d'exécution interne au système Coq au point de mettre celui-ci à mal. Hugo Herbelin, Alexandre Miquel, Benjamin Grégoire et Benjamin Werner ont commencé à étudier la mise en oeuvre de technologies issues de la compilation des langages fonctionnels pour un système de démonstrations. La proximité de spécialistes de la compilation dans les projets Cristal et Moscova a évidemment favorisé ce travail.
Alexandre Miquel et Benjamin Grégoire ont proposé des premiers prototypes de compilateurs au performances comparables à celles de Caml, mais capables d'effectuer de la réduction forte, c'est-à-dire d'exécuter partiellement des programmes incomplets. Il reste à traiter certains aspects du langage (filtrage en particulier) pour interfacer ces prototypes avec Coq.
Mots clés : appel par nom, appel par valeur, correspondance de Curry-Howard, calcul des séquents, dualité, machines abstraites .
Hugo Herbelin, conjointement avec Pierre-Louis Curien (PPS,
Université Paris 7), a développé un
-calcul (un mini-langage de
programmation) interprétant calculatoirement les démonstrations
du système formel dit ``calcul des séquents de Gentzen'', un
formalisme clé de la théorie de la démonstration. Ce
-calcul, nommé
-calcul, met en évidence de
profondes propriétés du mécanisme d'évaluation des langages : une
dualité entre terme et contexte (c'est-à-dire entre un programme
et son environnement d'utilisation) ainsi qu'une dualité entre
appel par nom et appel par valeur. Ce travail a été l'objet d'une
communication à la conférence ICFP 2000 [18].
Par ailleurs ce calcul s'est révélé être un excellent outil de description des machines abstraites comme celle mise en oeuvre dans le compilateur Objective Caml. Ceci a été l'objet d'une note privée sur la ZINC, la machine abstraite ``byte-code'' d'Objective Caml.
Participant : Benjamin Werner.
La réflexion est une technique de démonstration qui exploite l'expressivité calculatoire de la théorie des types et qui permet la construction de démonstrations par réécriture particulièrement efficaces. Elle a fait l'objet, au sein du projet Coq, de la thèse de Samuel Boutin, ainsi que d'une implémentation dans Coq, ensuite améliorée par Patrick Loiseleur.
Pour étendre le domaine d'application de cette technique, ainsi que pour réduire le temps de calcul nécessaire, Benjamin Werner a suggéré d'expliciter les étapes de réécriture dans le terme de démonstration, sous forme de « trace ».
Par ailleurs, ce travail donne lieu à une collaboration avec le projet Prothéo (Unité de Recherche de Nancy), dont le logiciel ELAN semble bien adapté à la construction des traces et France-Telecom R& D à Lannion; deux thèses sont en cours sur le sujet dans ces deux laboratoires.
Participants : Frédéric Blanqui,
Jean-Pierre Jouannaud, Mitsuhiro Okada, Daria
Walukiewicz-Chrz
szcz.
Mots clés : réécriture d'ordre supérieur, terminaison, confluence, Calcul des constructions, réécriture, normalisation forte .
La notion de calcul du Calcul des Constructions Inductives
n'est pas extensible. Ainsi, l'utilisateur du système Coq peut calculer certaines expressions afin de
simplifier ses démonstrations, mais il ne peut pas définir
lui-même les règles de calcul utilisées pour cela. Frédéric
Blanqui et Daria Walukiewicz-Chrz
szcz étudient des extensions du Calcul
des Constructions Inductives qui donnent cette facilité à
l'utilisateur. Une des questions essentielles dans ce domaine est
la conservation de la terminaison, qui est garante de la
cohérence du système.
Frédéric Blanqui a étendu à la réécriture d'ordre supérieur un
critère de terminaison, le ``Schéma Général'', qu'il avait déjà
développé dans le cas de la réécriture du premier ordre avec
Jean-Pierre Jouannaud et Mitsuhiro Okada. La réécriture d'ordre
supérieur, à la différence de la réécriture du premier ordre,
permet de manipuler des expressions avec des lieurs, comme le
du
-calcul, ou
tout simplement d'avoir des paramètres fonctionnels qu'on puisse
appliquer à des arguments. Elle utilise donc une notion de
filtrage plus complexe que la réécriture du premier ordre : le
filtrage d'ordre supérieur. Frédéric Blanqui a également montré
que le schéma géneral pouvait s'appliquer à différents
formalismes de réécriture d'ordre supérieur. Ces résultats ont
été présentés à la conférence internationale RTA 2000 [17].
Suivant une piste différente, Daria
Walukiewicz-Chrz
szcz a travaillé
sur la normalisation forte de la réécriture sur les termes du
Calcul des Constructions. Il y a deux ans, elle a défini un
système de types, consistant en les règles du Calcul des
Constructions et la règle définissant la réécriture. Pour
conserver la propriété de normalisation forte du système, les
règles de réécriture devaient satisfaire une condition décrite à
l'aide d'un ordre bien-fondé HORPO (Higher-order recursive path
ordering). Pendant l'année écoulée, elle a fini la démonstration
de normalisation du calcul et augmenté la puissance du HORPO pour
pouvoir accepter les règles d'élimination des petit types
inductifs. Finalement, elle a vérifié que HORPO et la méthode de
démonstration de normalisation qu'elle utilise sont modulaires et
donc qu'ils sont adaptés à l'environnement interactif. Elle a
présenté ces résultats [37] au workshop Logical Frameworks and
Meta-Languages en juillet 2000 à Santa Barbara.
Participant : Hugo Herbelin.
Mots clés : calcul des séquents, normalisation forte, réductibilité, substitutions explicites .
La réductibilité est une technique permettant de prouver des
propriétés d'un langage-objet par introjection dans le
méta-langage. Hugo Herbelin a développé une variante de
réductibilité basée sur les séquents et non sur les types comme
il est fait d'habitude. Cette définition se prète bien à la prise
en compte d'une substitution explicite dans le langage-objet. En
exploitant cette définition, Hugo Herbelin a donné une
démonstration de normalisation forte du
-calcul avec substitutions
explicites [30].
Mots clés : démonstrations, réécriture .
La présentation d'une logique dans une forme ``modulo'', c'est-à-dire où les axiomes ont été remplacés par des règles de réécriture, permet de mettre en évidence l'aspect calculatoire des démonstrations et en particulier la notion de coupure.
Gilles Dowek a comparé deux algorithmes de démonstration automatique pour la déduction modulo : la résolution du premier ordre (où les règles sont remplacées par des axiomes) et la résolution modulo proposée en 1998 dans un travail en collaboration avec Thérèse Hardin et Claude Kirchner, où les règles de réécritures sont pleinement exploitées [5]. Il a montré que la résolution modulo pouvait être vue comme une restriction de la résolution dont la complétude dépendait de la propriété d'élimination des coupures du calcul des séquents modulo ce système de réécriture. Ces résultats ont été présentés à la conférence FroCoS 2000 [23].
En 1999, Gilles Dowek et Benjamin Werner ont montré qu'une théorie modulo avait la propriété d'élimination des coupures quand elle avait un pré-modèle, qui est un modèle multivalué dont les valeur de vérité sont des ensembles de démonstrations et ils ont mis en évidence des liens entre la propriété d'élimination de ces coupures et des propriétés combinatoires du système de réécriture. En particulier, l'élimination des coupures est toujours valide pour diverses classes de systèmes de réécriture terminants et confluents [DW99].
La connaissance de ces théories modulo qui vérifient et ne vérifient pas l'élimination des coupures a progressé dans deux direction. D'une part, Gilles Dowek et Benjamin Werner ont démontré que la terminaison et la confluence n'étaient pas des conditions suffisantes pour la cohérence et l'élimination des coupures. Le contre-exemple est présenté dans [41]. D'autre part, exploitant un résultat de Marcel Crabbé, Gilles Dowek [24] a montré que les Fondations stratifiées de Quine pouvaient être présentées comme une théorie modulo et que cette théorie avait la propriété d'élimination des coupures. Cette démonstration ouvre de nouvelles voies quant à l'exploration des liens qui existent entre l'existence d'un modèle pour une théorie modulo, et l'existence d'un pré-modèle (qui est une condition suffisante pour avoir l'élimination des coupures).
Par ailleurs, Gilles Dowek a montré que la notion de coupure modulo, généralisait la notion de coupure avec des règles de pliage et de dépliage due à Dag Prawitz [11].
Mots clés : théorie des ensembles, démonstration automatique, substitutions explicites, déduction modulo .
La théorie des ensembles peut s'exprimer sous, entre autres, deux formes : au premier ordre avec des axiomes d'existence (par exemple, la théorie de Zermelo), ou avec un symbole (dit de compréhension) représentant l'ensemble des éléments d'un ensemble A qui vérifient une proposition P.
Cette seconde présentation a pour avantage une notation naturelle pour les ensembles définis par compréhension mais son inconvénient est que ce n'est plus une théorie du premier ordre car le symbole de compréhension est un lieur et il prend en argument une proposition; ce n'est donc pas un symbole de fonction du premier ordre.
De plus ces deux théories ont un ensemble infini d'axiomes; les méthodes de démonstration automatique du premier ordre ne peuvent donc pas s'appliquer directement.
Stéphane Vaillant étudie une présentation de la théorie des ensembles au premier ordre avec une syntaxe proche de celle utilisant un lieur et avec un nombre fini d'axiomes. Cette présentation a été obtenue à partir des travaux de Gilles Dowek Thérèse Hardin et Claude Kirchner pour la théorie des types : c'est un codage de la théorie avec symbole de compréhension dans un langage du premier ordre par l'intermédiaire d'une substitution explicite. La théorie obtenue est une extension conservative de la théorie de Zermelo.
Une démonstration dans ce système peut s'exprimer en déduction modulo : une partie des axiomes (ceux concernant le codage) s'exprime sous forme d'une congruence (décidable) sur les propositions, les étapes de la démonstration liées au codage sont alors supprimées et la démonstration obtenue est proche d'une démonstration obtenue dans le système avec lieur.
Le travail de Stéphane Vaillant s'oriente vers une implémentation d'un système de démonstration en déduction modulo pour la présentation étudiée. Il sera alors intéressant d'une part d'établir une comparaison entre les résultats obtenus avec cette implémentation et ceux déja obtenus en résolution avec la théorie des ensembles de Von Neumann, Bernays et Gödel (NBG), et d'autre part de comparer les deux présentations.
Participants : Alexandre Miquel, Hugo
Herbelin.
Mots clés : Paradoxe de Russell, théorie des ensembles, ensembles antifondés .
Alexandre Miquel a étudié les liens entre les paradoxes de la théorie des ensembles et ceux de la théorie des types. Tout comme la première théorie des ensembles -- due à G. Cantor -- était contradictoire (paradoxes de Burali-Forti et de Russell), plusieurs théories des types introduites au cours des années 1960-1970 se sont également révélées contradictoires (Type:Type, système U). Toutefois, contrairement à la théorie des ensembles, l'étude de ces formalismes incohérents présente un certain intérêt en raison des traits de programmation que ces formalismes proposent, en dépit de leur faiblesse logique inhérente.
Alexandre Miquel a ainsi montré qu'on pouvait encoder la théorie des ensembles de Cantor dans les systèmes U et U- de manière à pouvoir dériver un équivalent du paradoxe de Russell en théorie des types. Ce travail se base sur un codage des ensembles antifondés en théorie des types à l'aide de graphes pointés. Alexandre Miquel a également montré que ce codage pouvait être étendu à d'autres théories des types (non paradoxales), permettant ainsi d'exprimer la puissance logique de ces systèmes de types en termes de théorie des ensembles.
Ce travail a fait l'objet d'un exposé au congrès TYPES au mois de décembre 2000 à Durham.
Participant : Pierre Courtieu.
Mots clés : structure non libre, quotients, théorie des types, Calcul des constructions inductives, types inductifs, constructeurs .
Le problème posé par les structures non libres et en particulier par les quotients a été étudié dans le cadre des théories intensionnelles notamment par Backhouse et al., Hofmann, Barthes, Geuvers et récemment par Samuel Boutin, qui est l'auteur du développement des types quotients dans Coq. Le type T/R ainsi obtenu n'est pas un type inductif, ce qui empêche la génération d'un principe d'élimination.
Les type normalisés sont une variante des types quotients, dans laquelle on associe au type non pas une relation, mais une fonction de normalisation nf. Un terme de ce nouveau type T/nf est un terme t de T associé à une démonstration que t = (nf t), c.a.d. que t est en forme normale pour nf.
L'avantage de cette méthode réside dans le fait que chaque classe d'équivalence correspond à un unique terme clos du type normalisé T/nf (à la pertinence des démonstrations près). Bien entendu tous les quotients ne peuvent pas être représentés de cette manière, il faut que la relation du quotient soit exprimable sous la forme d'un calcul.