Sous-sections
Tactique Field
Participants : David Delahaye,
Micaela Mayero, Benjamin Werner, Gilles Dowek.
Mots clés : corps commutatifs, nombres
réels, réflexion, langage de tactiques .
David Delahaye et Micaela Mayero ont développé une
tactique - appelée Field - qui permet de
décider d'égalités sur les corps commutatifs modulo des
démonstrations d'inégalités. Ce travail provenait d'un besoin
important d'une procédure de décision pour les nombres réels.
Cette procédure est générale et fonctionne pour tous les
corps commutatifs. Les développements basés sur les nombres
rationnels pourront donc l'utiliser. Du point de vue du code
proprement dit, cette tactique a montré l'utilité du nouveau
langage de tactiques intégré à Coq V7 (
tac). Notamment, il a
permis de constater l'adéquation de
tac dans l'écriture de
tactiques réflexives. Le développement est relativement
conséquent et avoisine les 900 lignes de code.
Participants : Micaela Mayero,
Gilles Dowek.
Mots clés : Coq, nombres réels,
limite, dérivée, spécification .
Micaela Mayero a développé une bibliothèque de
démonstrations de théorèmes concernant les nombres réels et
les fonctions d'une variable réelle : par exemple, le
théorème selon lequel la dérivée d'une composition est le
produit des dérivées des fonctions composées.
Afin de définir les fonctions transcendantes, Micaela
Mayero a formalisé une grande partie de la théorie
mathématique concernant les suites de Cauchy et les séries
entières. La fonction exponentielle est en passe d'être
terminée.
Micaela Mayero a également réalisé, pour les nombres
réels, une grammaire ainsi qu'un pretty-printer qui sont
intégrés à Coq V7. Dans le but
d'augmenter l'automatisation des démonstrations faites sur
les réels, une nouvelle tactique appelée Field (voire section 6.2.1). Grâce à ces
travaux, et pour répondre à des demandes d'utilisateur pour
la Coq V7, Micaela Mayero a
« nettoyé » les démonstrations concernant les réels
afin d'en diminuer la taille des scripts ainsi que celle des
y
-termes de démonstration.
Participants : Micaela Mayero,
Gilles Dowek.
Mots clés : méthodes formelles,
analyse numérique, dérivation, Odyssée, Coq, Fortran
.
Suite à la définition de la sémantique de Fortran
effectuée en Coq l'an passé, Micaela
Mayero a effectué la démonstration du dérivateur pour les
fonctions polynomiales à une variable. Un développement plus
important est en cours afin de prouver la correction sur un
ensemble plus vaste de programmes (fonctions).
Participants : Jean
Goubault-Larrecq, Nabil El Kadhi, Muriel Roger, Éva Rose,
Kumar Neeraj Verma, Xavier Rival.
Mots clés : protocoles
cryptographiques, audit de logs, analyse statique, sécurité
.
Au sein du GIE Dyade, Jean Goubault-Larrecq et son équipe
VIP ont continué à développer les trois thèmes liés à la
sécurité qu'il avait identifiés en 1999 : d'abord, une
technique d'audit de logs basée sur la logique temporelle,
sur laquelle Muriel Roger avait passé son stage de DEA, et
qui a été améliorée depuis, prenant en compte des problèmes
algorithmiques (efficacité) et les besoins des clients (Bull
OSS, Bull Trustway, les participants du projet européen
ITEA/TASSC, Alcatel/Next&So); cette technique, qui avait
déjà fait l'objet d'un brevet Dyade, fera l'objet d'une
publication étendue en 2001. L'audit de logs fait par
ailleurs l'objet d'une collaboration avec Mireille Ducassé,
de l'IRISA, projet Lande, et de l'INSA Nantes.
Ensuite, une technique d'analyse de protocoles
cryptographiques à l'aide de variantes d'automates d'arbre;
le prototype de juin 1999 a été étendu pour traiter des
principaux en multi-session parallèle, et a fait l'objet de
diverses présentations, donc un article à un workshop
international [29]. Il est aussi à la source d'un projet de
collaboration entre le GIE Dyade, l'IRISA/INSA et Bull
Trustway sur la vérification d'une implémentation du
protocole SSL. À long terme, il est souhaité que cet outil
fournisse aussi une démonstration Coq
aussi automatisée que possible de son analyse. C'est dans
cette optique que Xavier Rival a développé plusieurs
bibliothèques de calculs d'automates d'arbres en Coq [46].
Enfin, l'étude d'un cadre d'analyse statique en vue de
vérifier des propriétés de confidentialité d'applets. Nabil
El Kadhi a effectué plusieurs publications et communications
à ce sujet [26,25,27], et soutiendra sa thèse à
l'université Tunis II en 2001. Un prototype a été réalisé en
Caml, qui a servi à valider les idées de base sur des
protocoles classiques comme ceux de Needham-Schroeder et de
Yahalom. Ces travaux forment le substrat d'un prototype plus
industriel développé par Pierre Boury (Dyade/Bull) dans le
cadre du contrat européen ITEA/TASSC (Transactional
Added-value Services for SmartCards).
D'autre part, Éva Rose a continué ses travaux de thèse
(directeur : Jean Goubault-Larrecq) sur la ``lightweight
bytecode verification'', une technique permettant la
vérification de bytecode Java et JavaCard sur des terminaux à
faibles ressources. Elle a en particulier étendu son approche
à la gestion des exceptions, ainsi qu'à la représentation
compacte des certificats légers. Ceci sera présenté dans un
rapport de recherche INRIA à venir, qui formera aussi
l'essentiel de sa thèse. Ces derniers sont maintenant
utilisés au sein de la KVM de Sun (
http://java.sun.com/products/cldc/). Elle a d'autre
part proposé une extension simple à Java permettant un
raffinement de la protection des accès aux champs des classes
par typage [35].
D'un autre côté, Kumar Neeraj Verma, étudiant de B.Tech. à
l'IIT Delhi, qui avait déjà effectué un stage de deux mois
chez Dyade sur la réalisation de bibliothèque de BDDs
(diagrammes de décision binaire) certifiés, par réflexion en
Coq, est revenu passer son DEA à l'INRIA
[36]. Il a poursuivi son travail en réalisant
un model-checker symbolique complet, prouvé, du mu-calcul
modal. Il est maintenant en thèse avec Jean
Goubault-Larrecq.
Participant : Jean Duprat.
Mots clés : comptage de références,
algorithme distribué, sûreté, vivacité, démonstrations
formelles, système de traitement de démonstrations
mathématiques, Coq .
Le comptage de références est une technique classique
utilisée par exemple par les systèmes d'exploitation pour
réaliser des ramasse-miettes. Luc Moreau a proposé un
algorithme distribué basée sur une machine abstraite. Luc
Moreau et Jean Duprat ont utilisé le système Coq pour prouver la vivacité et la sûreté de cet
algorithme. Cette implémentation fait partie des
contributions de Coq. Jean Duprat a
présenté ce travail à TYPES 1999. Ce travail est décrit dans
un article [16] à paraître dans Acta
Informatica.
Participant : Jean Duprat.
Mots clés : théorie des graphes,
constructions, système de traitement de démonstrations, Coq
.
La théorie des graphes est actuellement présentée selon
deux facettes : l'utilisation de la théorie des
ensembles pour les définitions et théorèmes, l'utilisation
d'un langage impératif pour décrire les algorithmes et
calculer leur complexité. La cohérence entre ces deux mondes
fait généralement beaucoup appel à l'intuition du lecteur.
L'utilisation du calcul des constructions permettrait
d'unifier spécifications et calculs dans un même monde d'où
il sera possible d'extraire des programmes certifiés.
Certains travaux ont montré la faisabilité en prouvant un
théorème spécifique de théorie des graphes. L'objectif est
maintenant de spécifier les bases de la théorie afin de
faciliter et d'unifier les démonstrations de théorèmes. Jean
Duprat a commencé ce travail avec le concours d'un stagiaire
de première année de Magistère Informatique et Modélisation
de l'Ecole Normale Supérieure de Lyon, Clément Renard en
1999. Ce travail se poursuit à l'heure actuelle et a été
présenté à TYPES 2000 par Jean Duprat.
Participant : Jean Duprat.
Mots clés : pi-calcul, mu-logique,
système de traitement de démonstrations mathématiques, Coq
.
Ce travail s'amorce sur une étude de cas de contrÔleur
d'accès proposée par Yves Ledru dans une algèbre de
processus. Noël Bernard et Yves Dumond proposent de spécifier
le problème en pi-calcul et d'exprimer les propriétés avec la
mu-logique. Ainsi, une vérification formelle des propriétés
du systèmes pourrait être automatisée. Jean Duprat s'est
joint à eux pour tenter d'écrire cela en Coq. Ce travail a débuté en 2000 et doit être
poursuivi.
Participants : Benjamin Grégoire,
Benjamin Werner.
Mots clés : Code auto-certifié,
Assembleur typé, compilation .
Benjamin Grégoire s'est intéressé a la technologie du code
auto-certifié (``Proof-Carrying Code'' de P. Lee et
G. Necula) et au langage assembleur typé (``Typed
Assembly Language'' de G. Morisett, K. Crary,
D. Walker et N. Glew). Il a cherché a comprendre
quel rapport existe entre ces deux techniques de
certification de programme (bytecode). Le résultat de ces
réflexions est qu'il semble possible de compiler le language
Coq vers du bytecode typé. Cela
permettrait de fournir une nouvelle méthode de démonstration
de programme, à cheval entre l'utilisation de code
auto-certifié et d'un assembleur typé, en héritant
directement de tous les outils de démonstrations de
programmes déjà présents dans Coq.
Participants : Emmanuel Freund,
Christine Paulin.
Emmanuel Freund durant un stage de maîtrise et Christine
Paulin ont développé des bibliothèques Coq de manipulation d'automates temporisés. Ils
ont représenté les p-automates [40] qui
ont été élaborés dans le cadre du projet RNRT Calife. Ce
développement comprend une axiomatisation du temps qui
reprend une partie des axiomes de la théorie des réels
développée par Micaela Mayero et une définition des systèmes
de transitions sur laquelle repose la représentation des
p-automates. Ce travail est décrit dans [40]. Il
a été réalisé en parallèle avec une modélisation dans
Isabelle-HOL [39]. La représentation en machine des
p-automates a permis d'affiner leur définition. D'autre part
les types dépendants de Coq se sont
révélés utiles pour modéliser la synchronisation d'une
famille arbitraire de p-automates.
Participants : Philippe Audebaud,
Christine Paulin.
Mots clés : algorithmes probabilistes,
sémantique axiomatique, spécification, démonstration
.
En collaboration avec Richard Lassaigne (Équipe de Logique
de l'Université Paris 7), Philippe Audebaud et Christine
Paulin ont poursuivi l'étude de la mécanisation des
spécifications et preuves d'algorithmes probabilistes.
L'objectif de ce travail est de réunir des compétences
diverses afin d'aboutir à la spécification et la preuve
d'algorithmes probabilistes classiques comme le Minimal Cut
sur les graphes ou le test de primalité sur les entiers.
Comme proposé par Dexter Kozen [Koz81],
les programmes probabilistes sont interprétés comme des
transformateurs de mesures. Philippe Audebaud a repris ce
travail, pour proposer un système d'inférence en sémantique
axiomatique, qui étend très exactement le système de Hoare.
Ce travail s'appuie sur un travail commun avec Elena Zucca
[AZ99] qui mettait en avant la thèse
selon laquelle il est possible de construire un tel système
d'inférence pour tout langage possédant une sémantique
dénotationnelle (directe ou seulement par continuations). De
fait, le système proposé est immédiatement extensible en
présence d'exceptions et de blocs d'instructions étiquetées.
La nécessité de prendre en compte, sur le plan syntaxique,
des formules atomiques de la forme
Prob[A]
a a posé des contraintes très fortes sur le
modèle proposé. Tout cela est discuté plus en détail dans un
rapport de recherche en cours de finition.
Christine Paulin étudie plus particulièrement une
traduction des programmes fonctionnels probabilistes en
théorie des types à l'aide d'une transformation
monadique.