Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Activités antérieures d'enseignement, de recherche, et de
responsabilité collective
Claude Marché
1 Activités d'enseignement
1985 et 1986
Deux stages pédagogiques d'un mois en première S et
terminale C, en cours de mathématiques,
au lycée Lakanal de Sceaux et au lycée Pascal
d'Orsay.
1989-1990
Première année de monitorat à Orsay, service de 64h eqTD.
Travaux dirigés et travaux pratiques d'initiation au langage PASCAL,
en MIAGE et en DESS (professeur : Brigitte Rozoy). J'ai réalisé à
cette occasion un polycopié d'initiation au PASCAL, adapté au système
d'exploitation sur lequel on travaillait (VMS), destiné aux grands
débutants.
1990-1991
Deuxième année de monitorat à Orsay, service de 64h eqTD.
Travaux dirigés et travaux pratiques d'initiation au langage PASCAL
Travaux dirigés d'algorithmique, en MIAGE première année (professeur :
Michèle Soria). Le programme d'algorithmique contenait les algorithmes
de recherche (dichotomie, par arbres binaires, hachage), les
algorithmes de tri, et algorithmes de recherche de mots dans un texte.
Ce cours a été sanctionné par un examen théorique et un projet
(comptage du nombre d'occurrences de chaque mot dans un texte).
1992-1993
Troisième année de monitorat à Orsay, service de 64h eqTD.
Travaux dirigés du certificat calculabilité de la maîtrise de
Mathématiques (professeur : Laurence Puel). Le programme comporte la
théorie des langages formels, le l-calcul, le typage, et des
notions de base de logique, ainsi que l'utilisation du langage
fonctionnel CAML-light comme application.
1994-1995
ATER à l'ENS de Cachan, service d'enseignement de 192
heures statutaires.
Cours/TD/TP d'initiation à l'informatique en section A3
(Biologie), 66.67h eqTD.
1 groupe de TD/TP d'initiation à l'informatique (Programmation
et algorithmique en langage C) en section B4 première
année, 16.67h eqTD (Cours assuré par Béatrice Bérard).
TD/TP d'initiation à UNIX et au langage Fortran en section B13
(Mécanique), 40h eqTD (Cours assuré par Antoine Petit).
cours/TD/TP de mise à niveau UNIX et Fortran en DEA
mécanique, 22.5h eqTD.
cours/TD d'initiation à l'informatique (Word, Excel, Turbo
Pascal) en section D2 (Économie), 30h eqTD
1995-1996
Maître de Conférences Stagiaire, service d'enseignement de 192 heures
statutaires et de 25.5 heures complémentaires.
Cours et TD de Calculabilité et langages formels de Maîtrise de
Mathématiques, 35.5h eqTD (Cours partagé avec Hubert Comon).
1 groupe de TD de « Langages de Programmation » en Maitrise
d'Informatique, 35h eqTD (Cours assuré par Laurence Puel).
1 groupe de TD de Compilation en Maitrise
d'Informatique, 35h eqTD (Cours assuré par Michel Beaudouin-Lafon).
1 groupe d'étude de cas Langages et Compilation en Maitrise
d'Informatique, 42h eqTD.
1 groupe TD et 1 groupe TP de modélisation et approche
fonctionnelle de la programmation DEUG MIAS M1, 42h eqTD (Cours
assuré par Marie-Christine Rousset et Claude Delobel).
En heures complémentaires, cours/TD/TP de mise à niveau UNIX et
Fortran en DEA mécanique de l'ENS de Cachan, 28h eqTD.
1996-1997
Maître de Conférences Titulaire, service d'enseignement de 192 heures
statutaires et de 42 heures complémentaires.
1 groupe TD et 2 groupes de TP de Principes
d'Interprétation des Langages, DEUG MIAS M3, 44h eqTD (Cours
assuré par Jean-Pierre Jouannaud).
Cours, 1 groupe TD, 1 groupe TP de Étude de cas Langages et Génie
Logiciel, DEUG MIAS M3, 59.4h eqTD.
Cours et TD de Calculabilité et langages formels de Maîtrise de
Mathématiques, 35.5h eqTD (Cours partagé avec Jean-Pierre Jouannaud).
1 groupe TD et 1 groupe TP de modélisation et approche
fonctionnelle de la programmation DEUG MIAS M1, 42h eqTD (Cours
assuré par Marie-Christine Rousset et Claude Delobel).
Cours d'option Réécriture du DEA Sémantique, 11.25h eqTD.
1 groupe d'étude de cas Langages et Compilation en Maitrise
d'Informatique, 42h eqTD, en heures complémentaires.
De plus, cette année j'ai été tuteur du moniteur de première année
Quentin El-Haik. Les modules Principes d'Interprétation des
Langages et Étude de cas Langages et Génie Logiciel étaient
des cours entièrement nouveaux mis en place dans le cadre de la
nouvelle formule du DEUG MIAS. La mise en place de ces cours a été
coordonnée avec Jean-Pierre Jouannaud et Ralf Treinen pour le module
PIL, avec réalisation d'un poly de cours de plus de cent pages ; et
avec Ralf Treinen pour le module LGL, avec la réalisation d'un poly de
mise à niveau en CAML d'une soixantaine de pages.
1997-1998
Service d'enseignement de 192 heures statutaires.
Cours, 1 groupe TD, 1 groupe TP de Étude de cas Langages et Génie
Logiciel, DEUG MIAS M3, semestre décalé. 59.4h eqTD.
Cours de Informatique théorique 2 commun entre la
maîtrise d'Informatique et la Maîtrise de Mathématiques. 37.5h eqTD,
cours partagé avec Jean-Pierre Jouannaud.
1 groupe TP de Principes d'Interprétation des Langages,
DEUG MIAS M3, 12h eqTD (Cours assuré par Jean-Pierre
Jouannaud).
Cours, 1 groupe TD, 1 groupe TP de Étude de cas Langages et Génie
Logiciel, DEUG MIAS M3, 59.4h eqTD.
Décharge pour encadrement de moniteur, et encadrement du stage de
DEA de Xavier Urbain en 1997.
Cette année-là, j'ai été tuteur du moniteur de deuxième année
Quentin El-Haik.
Avec Ralf Treinen et Benjamin Monate, nous avons mis en place un
serveur sous Linux sur les ordinateurs du parc informatique du
première cycle, destiné aux TP d'Informatique de DEUG MIAS. Réseau
d'une centaine de machines à gérer. Pour cette première année, seuls
les modules PIL et LGL avaient des TP sous Linux, ce qui représente
une centaine de comptes utilisateurs à gérer.
1998-1999
Service d'enseignement de 192 heures statutaires (dont 30h de
décharge) et de 13.2 heures complémentaires.
Correspondant Apogée pour le département d'Informatique (30h de
décharge).
1 groupe de TD et 2 groupes de TP en Introduction à
l'Informatique, DEUG MIAS S1, 47.4h eqTD (Cours assuré par
Patrick Amar, Nathalie Drach, Claire Kenyon et Marie-Christine Rousset).
1 groupe TD et 1 groupe de TP de Principes
d'Interprétation des Langages, DEUG MIAS M3, 31h eqTD (Cours
assuré par Jean-Pierre Jouannaud).
Cours, 1 groupe TD, 1 groupe TP de Langages et Génie
Logiciel, DEUG MIAS M3, 59.4h eqTD.
Cours de Informatique théorique 2 commun entre la
maîtrise d'Informatique et la Maîtrise de Mathématiques. 37.5h eqTD,
cours partagé avec Jean-Pierre Jouannaud.
APOGÉE (Application POur la Gestion des Étudiants et des
Enseignements) est un nouvel outil informatique mis en place cette
année à l'université Paris 11, et je me suis chargé de la tâche de
correspondant Apogée pour le département d'Informatique. J'ai mis en
place dans la base de données APOGÉE les structures des enseignements
jusqu'au niveau des unités d'enseignements capitalisables pour la
Licence-Maîtrise et le C4/DU d'informatique. Édition des PV de jury
pour la Licence-Maîtrise, La MIAGE (IUP et CFA), le C4/DU
d'informatique, les DESS SCHM et II. Et j'ai assisté les secrétaires
pédagogiques pour la saisie de s notes et l'édition des PV de jury.
Cette année, j'ai été aussi tuteur du moniteur de première année
Benjamin Monate, tâche pour laquelle j'ai obtenu 4h de décharge
l'année suivante.
Enfin, j'ai poursuivi ma tâche de gestion du serveur Linux des
machines de TP du premier cycle, avec la mise à jour du serveur et du
réseau, et toujours la gestion des comptes utilisateurs et de leurs
environnements. Pour cette année, le module S1 avait des TP sous
Linux. Vu le nombre d'étudiants (450), nous avons travaillé avec un
compte partagé.
1999-2000
Service d'enseignement de 192 heures statutaires (dont 38h de
décharge) et de 24.58 heures complémentaires.
Correspondant Apogée pour le département d'Informatique (30h de
décharge).
Tuteur du moniteur de deuxième année Benjamin Monate
(4h de décharge).
Tuteur du moniteur de première année Benjamin Monate
(4h de décharge, reportée de l'année précédente).
Co-encadrement (avec Judicaël Courant) de deux étudiants de
Maîtrise d'Informatique dans le cadre d'un TER-stage au LRI, 3h
eqTD.
1 groupe TER Génie Logiciel, 2nd semestre Licence
d'Informatique, 42h eqTD (Cours assuré par Marie-Claude Gaudel,
coordination des TER assurée par Alain Denise).
1 groupe de TP en Approche Fonctionnelle de la Programmation, DEUG
MIAS S2, 15h eqTD (Cours assuré par Philippe Chatalic).
1 groupe de Méthodologie Informatique (mixte TD/TP), DEUG
MIAS S2, 11h eqTD (Cours assuré par Philippe Chatalic).
1 groupe de TD et 2 groupes de TP en Introduction à
l'Informatique, DEUG MIAS S1, 46h eqTD (Cours assuré par Nathalie
Drach, Claire Kenyon et Véronique Ventos).
Cours de tronc commun Termes en logique du premier ordre
du DEA Sémantique, 18h eqTD.
1 groupe TP de Principes
d'Interprétation des Langages, DEUG MIAS S3, 10h eqTD (Cours
assuré par Brigitte Rozoy).
Remplacement d'un enseignant en congé maladie de longue durée
(Ralf Treinen), en Langages et Génie Logiciel, 14.17h eqTD.
En tant que correspondant Apogée pour le département d'Informatique :
Mise à jour des structures des enseignements pour la
Licence-Maîtrise et le C4/DU d'informatique. Mise en place des
structures des enseignements jusqu'au niveau des unités
d'enseignements capitalisables pour la MIAGE (IUP et CFA) et les DESS
SCHM et II. Édition des PV de jury pour la Licence-Maîtrise, La
MIAGE (IUP et CFA), le C4/DU d'informatique, les DESS SCHM et II,
ainsi le PV de diplôme final de la NFI FIIFO.
Avec Ralf Treinen et Benjamin Monate, nous avons poursuivi la tâche de
gestion du serveur Linux des machines de TP du premier cycle. Cette
année a vu la mise en place de TP sous Linux en S@, avec plus de 200
comptes à gérer.
2000-2001
Service d'enseignement de 192 heures statutaires (dont 34h de
décharge) et de 0.7 heures complémentaires.
Correspondant Apogée pour le département d'Informatique (30h de
décharge).
Tuteur du moniteur de première année Francesco Zappa-Nardelli
(4h de décharge).
2 groupes de TP en Approche Fonctionnelle de la
Programmation, DEUG MIAS S2, 30h eqTD (Cours assuré par Claude
Delobel et Christine Paulin).
1 groupe TP de Principes
d'Interprétation des Langages, DEUG MIAS S3, 10h eqTD (Cours
assuré par Brigitte Rozoy).
Cours, 1 groupe TD, 2 groupes TP de Principes
d'Interprétation des Langages, DEUG MIAS S3 décalé, 65.5h eqTD,
plus 1.4h eqTD de remplacement d'un enseignant en congé maladie de
longue durée (Laura Monceaux).
1 groupe TER Génie Logiciel, 2nd semestre Licence
d'Informatique, 42h eqTD (cours assuré par Marie-Claude Gaudel et
Frédéric Voisin).
2 groupes TP de Introduction à l'Informatique, DEUG MIAS
S1, 30h eqTD (Cours assuré par Laurence Devillers, Nathalie Drach et
Véronique Ventos).
De plus, j'ai assuré la coordination de tous les groupes de TER Génie
Logiciel de Licence d'Informatique et de MIAGE IUP2.
En tant que correspondant Apogée, j'ai de nouveau assuré la mise à
jour des structures des enseignements pour les filières du
département. Pour la MIAGE, la structure des enseignements a été
complétée pour descendre jusqu'au niveau des matières. Et j'ai
continué à assister les secrétaires pédagogiques pour la saisie de
s notes et l'édition des PV de jury.
Avec Ralf Treinen et Benjamin Monate, nous avons poursuivi la tâche de
gestion du serveur Linux des machines de TP du premier cycle. Les TP
de S1, S2, S3 PIL et S4 LGL se sont déroulés sous Linux.
Pour cette tâche, cette année, Ralf Treinen et moi avons partagé une prime pédagogique.
2001-2002
Service d'enseignement de 192 heures statutaires (dont 34h de
décharge) et de 13.67 heures complémentaires.
Correspondant Apogée pour le département d'Informatique (30h de
décharge).
Tuteur du moniteur de deuxième année Francesco Zappa-Nardelli
(4h de décharge).
Cours, 1 groupe TD, 1 groupe TP de Langages et Génie
Logiciel, DEUG MIAS S4 décalé, 55.5h eqTD.
Cours, 1 groupe TD, 1 groupe TP de Principes
d'Interprétation des Langages, DEUG MIAS S3, 55.5h eqTD.
1 groupe TER Génie Logiciel, 2nd semestre Licence
d'Informatique, 42h eqTD.
1 groupe TP de Introduction à l'Informatique, DEUG MIAS
S1, 13.67h eqTD (Cours assuré par Nicole Bidoit, Céline Rouveirol et
Claire Kenyon).
Coordination des TP de DEUG MIAS, 5h eqTD.
De plus, j'assure la coordination de tous les groupes de TER Génie
Logiciel de Licence d'Informatique et de MIAGE IUP2, ainsi que la mise
en place de l'utilisation du logiciel Rational Rose pour ce TER.
Ma tâche de coordination des TP sous Linux de DEUG est cette année
matérialisée par 5h eqTD.
2 Activités d'administration et autres tâches d'utilité
collective
Activités liées à l'enseignement
Organisation (avec Alain Denise, Laurence Devillers et Nathalie Drach) du stand
du département d'Informatique à la journée portes ouvertes du centre
d'Orsay de l'université Paris 11, au printemps 1996.
Organisation (avec Alain Denise, Rachid Gherbi et Ralf Treinen) du stand
du département d'Informatique à la journée portes ouvertes du centre
d'Orsay de l'université Paris 11, au printemps 1997.
Depuis l'année universitaire 1997-1998, avec Ralf Treinen et Benjamin
Monate, j'ai participé à la mise en place puis à la maintenance d'un
serveur sous le système d'exploitation Linux, au sein du parc
informatique du premier cycle (bâtiment 336). Ce serveur permet à la
centaine de PC sans disque de ce parc de démarrer sous Linux. Les TP
d'informatique de DEUG MIAS se sont alors déroulés sous Linux. Au
total, chaque année cela représente plusieurs centaines de comptes
utilisateurs à gérer, avec les problèmes classiques d'oubli de mot de
passe, de dépassement de quota disque, etc.
Depuis le mois de juin 1998, je suis chargé de la tâche de
correspondant Apogée (Application POur la Gestion des Étudiants et des
Enseignements) pour le département d'Informatique. Je me suis chargé
de saisir puis de mettre à jour dans la base de données Apogée les
structures des enseignements des différentes filières du département :
Licence-Maîtrise, MIAGE (IUP et CFA), le C4/DU
d'informatique, les DESS SCHM et II, la FIIFO. L'utilisation d'Apogée
pour l'obtention des procès verbaux de diplôme nécessite également de
saisir les modalités de collecte (règles de conservation de note, de
capitalisation d'unité, etc.), les règles de calcul de notes et de
résultats pour toutes ces filières. Enfin, l'utilisation de cette base
de données posant très régulièrement des difficultés, j'ai consacré
beaucoup de temps à assister les secrétaires pédagogiques pour les
saisies d'inscriptions pédagogiques, les saisies des notes, les calculs
de notes et de résultats et enfin l'édition tant attendue des PV de
jury.
Enfin, je me suis régulièrement occupé ces dernières années de la
gestion de pages web pour les enseignements (notamment pour la mise à
disposition des énoncés et des corrigés de TD/TP), en DEUG
(modules S1, PIL, LGL) et en Licence d'Informatique (TER de Génie
Logiciel).
Activités liées à la recherche
Organisation locale, avec Ralf Treinen, de l'école d'été CCL'99
(http://www.lri.fr/~ccl99/) et Workshop CCL'99
(http://www.lri.fr/~treinen/ccl/workshops/ccl99/) ; qui ont eu
lieu respectivement du 5 au 8 septembre et du 9 au 10 septembre 1999,
à Gif-sur-Yvette. Cette école et ce workshop étaient organisés dans le
cadre du projet Esprit européen CCL2
(http://www.ps.uni-sb.de/ccl/). Les notes de cours de l'école
ont été édités (éditeurs : Hubert Comon, Claude Marché et Ralf
Treinen) chez Springer-Verlag dans les Lecture Notes in Computer
Science [7].
Membre du comité de programme de la 25ème conférence internationale
Mathematical Foundations of Computer Science, qui s'est
déroulée du 28 août au 1er septembre 2000 à Bratislava (Slovaquie).
Encadrement de stages, DEA et thèses :
Stages de Magistère de Mathématiques : Landy
Rabehasaina en juin/juillet 1996, Julien Forest en juin/juillet 1997
Éric Balandraud et Alexandre Giraud en aout/septembre 1997.
Stages (hors cursus) de Maîtrise de mathématiques :
Xavier Urbain en juin 1996, Guillaume Dufay en juin 1999.
Stages (hors cursus) de Maîtrise d'Informatique :
Stéphane Vaillant en juin/juillet 1998.
TER-stages de Maîtrise d'informatique : Guillaume
Muller et Anne Dorland dans la période mars-juin 2000.
Stage de DEA de Xavier Urbain, février-septembre 1997.
Encadrement scientifique de la thèse de doctorat de Xavier
Urbain (directeur de thèse « officiel » : Jean-Pierre Jouannaud), de
septembre 1998 à septembre 2001. Thèse soutenue le 1er octobre
2001.
Co-encadrement scientifique (avec Evelyne Contejean) de la thèse
de doctorat de Benjamin Monate. Thèse soutenue le 7 janvier 2002.
Parmi les autres tâches mineures dont je me suis occupé, on peut citer
:
Représentant de l'équipe Démons à la commission matériel du
LRI depuis 1995.
Pour la journée spéciale des 20 ans du LRI, réalisation d'un
poster et présentation d'une démonstration du logiciel CiME.
Représentant des personnels du collège B du LRI au comité d'évaluation
du LRI le 27 avril 2000.
Rapports de referee : depuis 10 ans, une quinzaine de rapports pour
des journaux d'audience internationale, une trentaine de rapports pour
des conférences d'audience internationale (sans compter ceux pour la
conférence MFCS'2000), 3 rapports sur des chapitres
de livre.
D'autres tâches que j'ai oublié et que je n'ai jamais
notées...
Divers
Pour mes besoins personnels, d'une part pour la production de pages
Web, d'autre part pour l'écrire de la documentation de programmes CAML
(CiME en particulier), je me suis impliqué dans des projets
logiciels existants :
BibTeX2html, un outil pour générer des pages web de
bibliographies, à partir de fichier de base de données BibTeX
(http://www.lri.fr/~filliatr/bibtex2html/).
OcamlWeb, outil pour la programmation littéraire dans le langage
Objective CAML (http://www.lri.fr/~filliatr/ocamlweb/).
3 Activités de Recherche
Mon travail se situe à l'interface de l'informatique et des
mathématiques. Mon domaine est la preuve automatique, soit de
théorèmes mathématiques, soit de programmes informatiques, à l'aide
d'un ordinateur. Les méthodes qui m'intéressent peuvent être parfois
entièrement automatisées, quand il s'agit de domaines très
spécifiques ; et d'autre fois combinent l'automatisation et
l'interaction avec l'utilisateur, ce qu'on appelle une preuve
assistée, preuve qui sera dans tous les cas vérifiée par
l'ordinateur.
Plus spécifiquement, je me suis beaucoup concentré sur le traitement
mécanisé d'axiomatiques spécifiées par des systèmes d'équations.
L'importance des équations en mathématiques est connue : elles
permettent de définir axiomatiquement les structures algébriques
classiques comme les monoïdes, les groupes, les espaces vectoriels ou
les algèbres. Elles sont également fondamentales en informatique :
langages de programmation de haut niveau (programmation logique avec
égalité, programmation fonctionnelle), spécifications algébriques
(types abstraits), prototypage, l-calcul (logique des
combinateurs), calcul symbolique formel, optimisation de code,
inférence de type, géométrie algorithmique, etc.
Dans une première partie, je vais décrire les travaux qui ont concerné
ma thèse de doctorat et un peu après, qui se concentrent, d'un point
de vue théorique sur l'algorithme de complétion dite normalisée, et
d'un point de vue appliqué, sur le logiciel CiME dans sa première version,
distribuée en 1996 [9].
Dans une seconde partie, je vais décrire mes travaux plus récents, qui
s'inscrivent dans un spectre plus large.
4 La complétion normalisée, le logiciel CiME version 1
Le calcul avec des équations passe traditionnellement par leur
orientation en règles de réécriture, par exemple pour les
utiliser comme méthode de simplification. On utilise alors ces
règles pour réduire les expressions jusqu'à obtenir des
formes normales (c-à-d irréductibles). Savoir si une règle peut
être appliquée à une expression est l'enjeu du processus de filtrage, c'est-à-dire de la recherche de motifs. Deux grands types
de problème se posent en réécriture : le premier est celui de la
terminaison, autrement dit comment s'assurer que la réduction
par les règles s'arrête en temps fini sur une forme normale. Ce
type de problème se traite traditionnellement par l'utilisation d'ordres de réduction. Le second type de problème est celui de
la confluence, c'est-à-dire de l'unicité du résultat quel que
soit l'ordre d'application des règles. On traite le problème de la
confluence en analysant les ambiguïtés possibles, ce qui passe
par l'unification des membres gauches de règles, de manière
à déterminer les expressions pouvant être instances de plusieurs
règles à la fois.
Lorsqu'une axiomatique nous est donnée sous la forme d'un ensemble
d'équations, nous cherchons donc à les orienter en règles, en
choisissant pour membre gauche le plus grand des deux membres de
l'équation pour un ordre de réduction donné. Si le système
obtenu n'est pas confluent, on est amené à introduire de nouvelles
équations (les paires critiques) : il s'agit là du processus
de complétion, introduit en 1970 dans un fameux article de
Knuth et Bendix [17], qui l'appliquait à la théorie des
groupes.
Malheureusement, certains groupes d'axiomes, comme les axiomes
permutatifs (la commutativité en particulier), ne peuvent pas
être orientés en des règles de réécritures sans perdre la
propriété essentielle de terminaison. Pour s'affranchir de ce
problème, Peterson et Stickel [29]
en 1981 ont
proposé d'intégrer la commutativité dans le processus de
réduction par l'utilisation du filtrage modulo
commutativité. De plus, l'équation d'associativité n'étant
à son tour plus orientable modulo commutativité, on a besoin
également du filtrage associatif-commutatif. Le problème de la
terminaison doit alors être traité à l'aide d'ordres de
réductions compatibles avec l'associativité et la
commutativité. Au niveau du test de confluence, ou dans
l'algorithme de complétion du calcul des paires critiques, cela
demande l'utilisation de l'unification associative-commutative.
Cette technique de réécriture modulo AC (associativité et
commutativité) a ensuite été généralisée à une théorie
E arbitraire sous les conditions que d'une part il existe des ordres
de réduction non triviaux (c-à-d différents de l'égalité)
compatibles avec E, et que d'autre part l'unification modulo E
soit décidable et finitaire [12, 2].
Ces conditions sur la technique générale de réécriture modulo
E excluent des cas fondamentaux très simples pour E : identité
(x.1=x), inverse (x.x-1=1), idempotence (x.x=x), théorie
des groupes, des anneaux.
Le cas des anneaux représente un enjeu pourtant particulièrement
important car il est lié à un algorithme bien connu dans le domaine du
calcul algébrique formel : le calcul des bases standard
d'idéaux de polynômes. Un certain nombre de chercheurs avaient déjà
remarqué que cet algorithme s'apparentait avec l'algorithme de
complétion de Knuth et
Bendix [15, 5, 6] mais le
problème de pouvoir les considérer comme deux instances particulières
d'un seul et même algorithme restait ouvert. Une analyse de
l'algorithme de calcul de bases standard montre que pour considérer
cet algorithme comme un algorithme de complétion modulo une certaine
théorie E, il faudrait prendre pour E la théorie définie par
l'anneau de base, celui dans lequel vivent les coefficients des
polynômes. Or justement une telle théorie ne satisfait pas les
conditions voulues. Ma thèse a donné une réponse à ce problème, grâce
à une nouvelle technique dite de complétion normalisée, que je
vais détailler dans la suite.
En 1989, Peterson, Baird et Wilkerson [3] ont proposé une
méthode pour faire de la réécriture modulo ACU (associativité,
commutativité et unité) par l'utilisation de la réécriture
contrainte [16]. Pour mon stage de DEA, j'ai
donné un algorithme de complétion adapté au cas de E=ACU, ce qui a
nécessité d'introduire un nouveau type d'inférence en plus de
l'orientation et du calcul de paires critiques : le calcul des instances critiques. Ce travail mené conjointement avec Jean-Pierre
Jouannaud a fait l'objet d'une publication dans le journal Theoretical Computer Science (numéro 1 dans la liste de
publications jointe) [13, 14]. Cette
approche n'a malheureusement pas pu s'appliquer telle quelle aux
autres cas précités.
L'idée qui a guidé mon travail a été d'étudier le fonctionnement de
l'algorithme de calcul des bases standard d'idéaux de polynômes. En
s'inspirant du travail sur la complétion ACU contrainte et sur ce qui
serait nécessaire pour traiter le cas des bases standard, nous avons
introduit une nouvelle notion de réécriture, la réécriture
normalisée, dont l'idée fondamentale est que l'on doit réduire
uniquement les expressions en forme normale pour la théorie
E, ce qui nécessite de présenter E par un système de réécriture
S qui soit convergent (c-à-d qui termine et qui soit confluent). Les
résultats obtenus font partie de ma thèse [22] et se
résument en quatre grands points :
Introduction de la réécriture normalisée modulo S, où S est
un système convergent (modulo AC éventuellement). La réduction a
lieu uniquement sur les formes normales pour S. J'ai montré que
cette réduction englobe le cas de la réécriture modulo AC habituelle
(S=Ø), la réécriture ACU contrainte (S=ACU),
mais également la réduction des polynômes telle qu'on la trouve dans
le calcul des bases standard sur Z (S=CR,
théorie des anneaux commutatifs), ou sur les corps finis
(S=FF(p), corps fini à p éléments). Le résultat
fondamental est que pour montrer la terminaison de la réécriture
normalisée modulo S, on n'a pas besoin d'un ordre de réduction
compatible avec S, mais avec AC seulement.
Description de l'algorithme de complétion normalisée
général, pour un S arbitraire. Cet algorithme utilise le calcul
des couples normalisants (généralisation de la notion
d'instances critiques introduite pour le cas ACU). Le résultat
fondamental est le théorème de complétude. Le calcul des couples
normalisants est suffisamment paramétrique pour pouvoir obtenir une
complétion très efficace dans certain cas, en particulier dans le
cas des groupes et des anneaux commutatifs, ceci par l'utilisation
de la technique de symétrisation, inspirée du travail de Le
Chenadec [19].
Résultats de terminaison de la complétion pour certaines classes
de théories. La terminaison de la complétion modulo AC lorsque les
équations à compléter sont sans variables, était connue depuis
1991 [27, 20]; et d'autre part, la
terminaison des algorithmes de calcul de bases standards était
connue depuis leur existence. J'ai montré par une méthode uniforme
la terminaison de la complétion normalisée close modulo S dans
toute une famille de théories S (Ø, C, AC, ACU,
ACI, ACI1, AG, CR, BR, FF(p)), résultats qui
contiennent donc les résultats précédents. Une conséquence
importante est la décidabilité de l'égalité pour toutes les théories
définies par des équations closes arbitraires plus l'une quelconque
des théories précédentes. Enfin, j'ai montré au contraire un
résultat d'indécidabilité de l'égalité modulo une théorie
close plus les axiomes d'associativité, de commutativité et de
distributivité qui a été publié indépendamment dans
International Journal of Foundations of Computer Science
(numéro 2 dans la liste de publications
jointe) [21].
Implantation de la complétion normalisée : j'ai réalisé un
prototype appelé CiME, qui a été et est toujours disponible par le
Web (http://cime.lri.fr) et qui permet de compléter des
théories en travaillant modulo un choix de théories S possibles,
ce qui donne un logiciel paramétrique pouvant faire aussi bien de la
complétion de Knuth-Bendix (S=Ø), de la complétion
associative-commutative (S=AC) ou du calcul de bases standards
(S=CR, S=FF(p)), de la complétion ACU contrainte
Jouannaud-Marché (S=ACU, et d'autres complétions nouvelles :
modulo idempotence (S=ACUI utile pour définir les ensembles), les
groupes (S=AG), les anneaux booléens (S=BR), etc.
Mes travaux de thèse ont été ensuite publiés dans les actes de la
conférence LICS'94 [23], puis dans une version complète
et améliorée, dans le Journal of Symbolic
Computation [24]. Les améliorations en question
concernent en particulier un résultat technique sur l'algorithme
d'unification modulo une théorie, travail réalisé avec Alexandre
Boudet et Evelyne Contejean et publié dans les actes de la conférence
RTA'96 [4]. Dans le même temps, le prototype CiME de ma
thèse est devenu un logiciel distribué (http://cime.lri.fr) et
nous en avons fait une démonstration lors de cette même
conférence [9].
5 La preuve automatique de terminaison, la réécriture
paramétrée, CiME version 2
À partir de l'année 1996 approximativement, j'ai commencé à élargir
mon spectre d'activités de recherche, mais en gardant toujours un fil
conducteur, qui a été l'implantation des nouvelles méthodes et
algorithmes de preuve décrits en théorie. Pour ce faire, j'avais
souhaité utiliser le logiciel CiME comme base de départ, mais pour
qu'une nouvelle méthode inventée soit facilement implantable dans
CiME, il a été nécessaire de revoir complètement l'interface
utilisateur de CiME. En fait, ce logiciel, spécialisé au départ dans
la complétion normalisée, est devenu une véritable « boîte à outils
logicielle », que l'on a appelée CiME2 [10]. L'interface
utilisateur est devenue très proche d'un logiciel de type « calcul
formel » fournissant de multiples fonctionnalités par l'intermédiaire
de fonctions prédéfinies, formant une collection aisément extensible.
Mes activités de recherche qui suivent, soutendues par l'implantation
dans CiME, ont alors grosso-modo correspondu à l'encadrement
scientifique d'étudiants en thèse, et on concerné deux thèmes
principaux.
Le premier thème est celui de la terminaison : il s'agit de
montrer qu'un processus de calcul donné va s'arrêter en temps fini
quels que soient les paramètres qu'on lui donne en entrée.
Le second thème est celui de la réécriture dite paramétrée : il
s'agit d'étudier des familles de processus de calcul par règles
de réécriture, familles indexées par des paramètres entiers, et de
chercher à établir des propriétés de ces processus de manière uniforme
pour toute la famille ainsi considérée.
5.1 Preuve automatique de terminaison
Il existe deux aspects tout à fait différents de la recherche sur le
thème de la terminaison. Le premier consiste à rechercher des
techniques mathématiques nouvelles afin de résoudre des conjectures
difficiles, dont certaines sont très célèbres comme le problème de
Syracuse : à partir d'un nombre entier x0 arbitraire, on calcule la
suite définie par
xn+1
=
xn/2 si xn est pair
xn+1
=
3xn+1 sinon
La conjecture affirme que l'on obtient toujours 1 au bout d'un nombre fini
d'étapes, par exemple en partant de 7 :
7
® 22 ® 11® 34® 17 ® 52® 26® 13® 40
® 20® 10 ® 5 ® 16® 8 ® 4 ® 2 ® 1
Mais l'aspect qui m'intéresse n'est pas celui-là. Au contraire, je
m'intéresse à des problèmes de terminaison qui seraient considérés
plutôt comme « faciles » pour un chercheur spécialiste en preuve de
terminaison. Il s'agit de programmes (ou plus abstraitement de
processus de calcul) dont le programmeur souhaite vérifier
la terminaison, afin de garantir la correction de ces programmes. On
souhaite ainsi que de telles preuves soient établies automatiquement
par un logiciel de vérification. Dans cette optique, l'objectif n'est
pas de prouver la terminaison pour des cas difficiles, mais de prouver
automatiquement par ordinateur la terminaison dans des cas que
l'on rencontre dans la pratique courante de la programmation.
Parmi les classes de processus dont on souhaite prouver la
terminaison, les systèmes de réécriture jouent un rôle central. En
effet, ils forment à la fois un formalisme très simple et générique
(remplacement syntaxique d'expressions par d'autres) et universel
(toute machine de Turing peut être codée par un système de règles de
réécriture). Aussi, il est important dans un premier temps de
construire des algorithmes de preuves de terminaison pour les systèmes
de réécriture. Ensuite, les preuves de terminaison pour d'autres
classes de formalismes de calcul s'opèrent par un codage préalable en
système de réécriture, codage devant préserver la terminaison.
Des algorithmes permettant d'établir automatiquement la terminaison de
systèmes de réécriture peuvent être utilisés directement dans des
environnements de spécification et vérification de programmes basés
sur la logique équationnelle : OBJ, CafeOBJ, Maude, etc...
L'approche que j'ai utilisé maintenant pour construire de tels
algorithmes est basée sur la séparation en étapes bien distinctes
indiquées figure 1, la correction de chacune de ces
étapes pouvant être prouvées indépendemment. Cette structure se
retrouve exactement dans l'implantation dans CiME.
Figure 1: Étapes d'une preuve automatique de terminaison
La première étape est la phase de codage dont on voit un exemple
ci-après pour la programmation logique. La deuxième étape consiste à voir un
critère de terminaison comme une transformation qui à un système de
réécriture donné associe des contraintes de terminaison, la
satisfiabilité de ces contraintes entraînant la terminaison du système
de départ. La troisième étape est le résolveur, qui à partir des
contraintes recherche un ordre bien fondé qui les rende vraies. Une
quatrième étape, qui peut sembler superflue au premier abord mais
s'avère très importante en pratique, est une vérification : à partir
de contraintes de terminaison et d'un ordre bien fondé, elle vérifie
que cet ordre valide effectivement les contraintes. Cette dernière
étape est utile pour une question de sûreté : il est en effet beaucoup
plus facile de vérifier que de résoudre, et il est difficile de faire
entièrement confiance aux algorithmes de résolution qui requièrent des
codes complexes et volumineux. De plus, la vérification est beaucoup
moins coûteuse en temps de calcul et en pratique une fois qu'un ordre
à été trouvé prouvant la terminaison d'un système, on en garde la
trace.
Amélioration des critères de terminaison
En 1997, Arts et Giesl ont découvert un nouveau critère de terminaison, dit
des paires de dépendances [1]. Ce critère s'est avéré
très intéressant car à la fois facilement automatisable et suffisamment
puissant pour traiter de nombreux cas concrets qu'il n'était pas possible de
traiter auparavant. Avec Xavier Urbain, j'ai
proposé [25, 18] des
généralisation de ce critère à la réécriture modulo associativité et
commutativité.
L'étape suivante, qui fait l'objet de la thèse de Xavier
Urbain [30], a eu pour objectif de traiter des
systèmes de réécriture de grande taille. Nous avons proposé un critère
qui s'applique à des systèmes présentés modulairement, pour
lesquels il est très important de pouvoir prouver la terminaison de
manière incrémentale. Ce travail est essentiel pour permettre
le « passage à l'échelle » de cette technique, et donc sa large
application au sein des systèmes de spécifications mentionnés
précédemment. Xavier a ensuite implanté cette méthode dans CiME, et
comme exemple convaincant il a réussi à prouver automatiquement la
terminaison d'un système issu d'une modélisation µ-CRL de
processus communicants --- système proposé par Thomas Arts, chercheur
chez Ericsson --- comportant environ quatre cents règles, et formant
une hiérarchie d'une cinquantaine de modules.
Lors de l'application pratique de ces techniques, on constate très
vite que la phase de résolution des contraintes est la plus coûteuse
en complexité, mais aussi incomplète, car la satisfiabilité de ces
contraintes est indécidable. Les algorithmes se proposent de
rechercher un ordre vérifiant les contraintes au sein d'une classe
particulière d'ordre. La plus utilisée et la plus maîtrisée à l'heure
actuelle est la classe des ordre récursifs sur les chemins. Nous avons
travaillé, Avec Evelyne Contejean, Ana-Paola Tomàs et Xavier Urbain,
sur la résolution de contraintes de terminaison dans le cas des ordres
basés sur les interprétations polynomiales [11] et dans
le futur il sera nécessaire de l'étendre en particulier au cas des
interprétations exponentielles, mais aussi à la recherche d'ordre
construit par les méthodes de filtrage des arguments (AFS), et plus
généralement de schéma de programme récursif (RPS).
Comme mentionné précédemment, l'application des techniques de preuve
de terminaison de la réécriture à d'autres formalismes de calcul passe
par la construction de codages préservant la terminaison. En 2000,
j'ai étudié avec Enno Ohlebusch et Claus Claves, de l'université de
Bielefeld, le cas de la programmation logique [28] et
cette étude a donné lieu à un système implémenté (TALP) qui utilise
une des procédures de preuve de terminaison de la version prototype
actuelle de la boîte à outils CiME. Sur des exemples classiques de
programmes logiques, les résultats obtenus sont tout à faits
compétitifs par rapport à des systèmes de preuve de terminaison
dédiés.
5.2 Systèmes de réécriture paramétrés
Il s'agit en fait de classes de systèmes, indexées par un ou plusieurs
entiers, et pour lesquels on cherche à établir les propriétés
essentielles comme la terminaison mais aussi la confluence, ainsi que
le dénombrement des formes irréductibles, de manière uniforme pour
tous les systèmes de la famille. Ce travail est une collaboration avec
Evelyne Contejean (chargée de Recherche CNRS) et Benjamin Monate
(étudiant en thèse). Il se poursuit encore actuellement.
Une motivation importante de ce travail est son application à certains
problèmes de physique théorique [8], et plus
généralement le sujet de la réécriture paramétrée est depuis longtemps
posé dans la communauté scientifique du domaine, mais sur lequel il
n'y a jamais eu, avant la thèse de Benjamin Monate [26], de
résultats significatifs.
Le travail déjà réalisé est limité à des systèmes de réécriture de
mots, qui forment des présentations de groupe. Des algorithmes de
vérification de la confluence ont été décrit et prouvés dans le cas où
les contraintes utilisées dans l'indexation sont linéaires. Ces
algorithmes sont implantés dans la boîte à outils CiME2, et en cours
de test depuis janvier 2002.
Timothy Baird, Gerald Peterson, and Ralph Wilkerson.
Complete sets of reductions modulo Associativity, Commutativity and
Identity.
In Proc. 3rd Rewriting Techniques and Applications, Chapel Hill,
LNCS 355, pages 29--44. Springer-Verlag, April 1989.
Alexandre Boudet, Evelyne Contejean, and Claude Marché.
AC-complete unification and its application to theorem proving.
In Harald Ganzinger, editor, 7th International Conference on
Rewriting Techniques and Applications, volume 1103 of Lecture Notes in
Computer Science, pages 18--32, New Brunswick, NJ, USA, July 1996.
Springer-Verlag.
Reinhard Bündgen.
Simulating Buchberger's algorithm by a Knuth-Bendix completion
procedure.
In Ronald. V. Book, editor, 4th International Conference on
Rewriting Techniques and Applications, volume 488 of Lecture Notes in
Computer Science, Como, Italy, April 1991. Springer-Verlag.
Hubert Comon, Claude Marché, and Ralf Treinen, editors.
Constraints in Computational Logics, volume 2002 of Lecture Notes in Computer Science.
Springer-Verlag, 2001.
Evelyne Contejean, Antoine Coste, and Benjamin Monate.
Rewriting techniques in theoretical physics.
In Leo Bachmair, editor, 11th International Conference on
Rewriting Techniques and Applications, volume 1833 of Lecture Notes in
Computer Science, pages 80--94, Norwich, UK, July 2000. Springer-Verlag.
Evelyne Contejean and Claude Marché.
CiME: Completion Modulo E.
In Harald Ganzinger, editor, 7th International Conference on
Rewriting Techniques and Applications, volume 1103 of Lecture Notes in
Computer Science, pages 416--419, New Brunswick, NJ, USA, July 1996.
Springer-Verlag.
System Description available at http://cime.lri.fr/.
Evelyne Contejean, Claude Marché, Ana-Paola Tomás, and Xavier Urbain.
Solving termination constraints via finite domain polynomial
interpretations.
Unpublished draft, International Workshop on Constraints in
Computational Logics, Gif-sur-Yvette, France, September 1999.
Jean-Pierre Jouannaud and Claude Marché.
Completion modulo associativity, commutativity and identity.
In Alfonso Miola, editor, Proc. Int. Symposium on Design and
Implementation of Symbolic Computation Systems, LNCS 429, pages 111--120,
Capri, Italy, April 1990. Springer-Verlag.
Jean-Pierre Jouannaud and Claude Marché.
Termination and completion modulo associativity, commutativity and
identity.
Theoretical Computer Science, 104:29--51, 1992.
Abdelilah Kandri-Rody, Deepak Kapur, and Franz Winkler.
Knuth-Bendix procedure and Buchberger algorithm --- a
synthesis.
In Proc. of the 20th Int. Symp. on Symbolic and Algebraic
Computation, Portland, Oregon, pages 55--67, 1989.
Claude Kirchner and Hélène Kirchner.
Constraint equational reasoning.
In Proc. of the 20th Int. Symp. on Symbolic and Algebraic
Computation, Portland, Oregon, 1989.
Donald E. Knuth and Peter B. Bendix.
Simple word problems in universal algebras.
In J. Leech, editor, Computational Problems in Abstract
Algebra, pages 263--297. Pergamon Press, 1970.
Keiichirou Kusakari, Claude Marché, and Xavier Urbain.
Termination of associative-commutative rewriting using dependency
pairs criteria.
Research Report 1304, LRI, 2002.
Claude Marché.
On ground AC-completion.
In Ronald. V. Book, editor, 4th International Conference on
Rewriting Techniques and Applications, volume 488 of Lecture Notes in
Computer Science, Como, Italy, April 1991. Springer-Verlag.
Claude Marché.
Réécriture modulo une théorie présentée par
un système convergent et décidabilité des problèmes du mot
dans certaines classes de théories équationnelles.
Thèse de doctorat, Université Paris-Sud, Orsay, France, October
1993.
Claude Marché.
Normalised rewriting and normalised completion.
In Proceedings of the Ninth Annual IEEE Symposium on Logic in
Computer Science, pages 394--403, Paris, France, July 1994. IEEE Comp.
Soc. Press.
Claude Marché and Xavier Urbain.
Termination of associative-commutative rewriting by dependency pairs.
In Tobias Nipkow, editor, 9th International Conference on
Rewriting Techniques and Applications, volume 1379 of Lecture Notes in
Computer Science, pages 241--255, Tsukuba, Japan, April 1998.
Springer-Verlag.
Benjamin Monate.
Propriétés uniformes de familles de systèmes de
réécriture de mots paramétrées par des entiers.
Thèse de doctorat, Université Paris-Sud, Orsay, France, January
2002.
Paliath Narendran and Michaël Rusinowitch.
Any ground associative-commutative theory has a finite canonical
system.
In Ronald V. Book, editor, Proc. 4th Rewriting Techniques and
Applications, LNCS 488, Como, Italy, April 1991. Springer-Verlag.
Enno Ohlebusch, Claus Claves, and Claude Marché.
TALP: A tool for the termination analysis of logic programs.
In Leo Bachmair, editor, 11th International Conference on
Rewriting Techniques and Applications, volume 1833 of Lecture Notes in
Computer Science, pages 270--273, Norwich, UK, July 2000. Springer-Verlag.
Available at http://bibiserv.techfak.uni-bielefeld.de/talp/.