Sous-sections

Réduction, réécriture, automatisation

Compilation des démonstrations



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 $ \beta$$ \delta$$ \iota$-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.

Sémantique du calcul



Participant : Hugo Herbelin.

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 $ \lambda$-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 $ \lambda$-calcul, nommé $ \overline{\lambda}$-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.

Réflexion avec traces



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.

Lambda-calcul et réécriture



Participants : Frédéric Blanqui, Jean-Pierre Jouannaud, Mitsuhiro Okada, Daria Walukiewicz-Chrz\normalsize{\k{a\/}}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\normalsize{\k{a\/}}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 $ \lambda$ du $ \lambda$-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\normalsize{\k{a\/}}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.

Substitution explicite et normalisation forte



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 $ \overline{\lambda}$-calcul avec substitutions explicites [30].

Normalisation des démonstrations modulo



Participants : Gilles Dowek, Benjamin Werner.

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].

Démonstration automatique en théorie des ensembles



Participants : Stéphane Vaillant, Gilles Dowek, Thérèse Hardin.

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.

Paradoxes en théorie des types



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.

Représentation des structures non libres en théorie des types



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.