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