Projet :
COQ

Précédent : Preuves par réflection
Remonter : Résultats nouveaux Suivant :
Preuves
de programmes
Sous-sections
Développement de l'assistant Coq
Résumé :
Nous avons distribué cette année la version Coq V6.2.
Les principales modifications apportées à cette version
sont:
- l'utilisation de l'outil camlp4 développé dans le projet
Cristal pour la gestion des grammaires extensibles;
- la réorganisation des tactiques de base pour une
meilleure extensibilité;
- l'ajout de nouvelles procédures de preuves
automatiques;
- la distribution d'un outil de preuve de programmes
impératifs;
- un outil de recherche dans les bibliothèques de
preuve;
- l'ajout de bibliothèques sur les nombres réels ou les
ensembles finis;
- le distribution d'une version Windows en plus des
versions Unix;
- la réorganisation de la documentation et sa distribution
au format HTML.
Participants : David Delahaye, Benjamin Werner.
David Delahaye s'est attaché à maintenir et améliorer l'outil
de recherche en bibliothèque modulo isomorphismes de types
SearchIsos intégré au système d'aide à la preuve
Coq. Il a beaucoup mieux formalisé la théorie sous-jacente
de SearchIsos, qu'il décrit dans [[39]]. Ce travail a été
présenté à la conférence TYPES'98.
Participants : Eduardo Giménez, Hugo Herbelin, Patrick
Loiseleur, Amokrane Saïbi.
E. Giménez a implanté de nouvelles tactiques de
preuve :
- Une procédure pour décider l'égalité propositionelle de
deux objets appartenant à un type de données récursif.
- Une extension de la tactique de démonstration automatique
Auto qui permet d'enchainer des tactiques arbitraires
qui sont sélectionnées selon la forme du but ou du contexte
courant, de destructurer automatiquement des hypothèses ou
d'utiliser localement des lemmes.
- Une tactique combinant introduction et élimination
d'hypothèses selon des motifs fournis par l'utilisateur.
P. Loiseleur a fonctionalisé la base de tactiques utilisée par
Auto ce qui permet à l'utilisateur de moduler entre une
tactique Auto résolvant peu de buts mais échouant
rapidement et une tactique Auto explorant un large
ensemble de possibilités.
Dans le cadre de
son travail chez Dyade, Amokrane Saïbi a terminé la programmation
d'une famille de tactiques visant à automatiser la connaissance
de l'intrus dans un protocole cryptographique (suivant la
modélisation de Dominique Bolignano[Bol96]). L'intrus peut
intercepter tous les messages transmis sur le réseau et déduire
de nouveaux messages en effectuant une des opérations de
chiffrement, de déchiffrement, de décomposition et de
composition. Le problème est de savoir si un intrus peut déduire
un certain message m à partir d'une liste de messages.
Cette connaissance est modélisée comme un prédicat binaire.
L'automatisation de la démonstration de ce prédicat repose sur
une procédure de décision élaborée par Jean Goubault. Elle a
nécessité la construction de tactiques pour prouver l'égalité ou
l'inégalité entre messages, ainsi que l'appartenance d'un message
à une liste. Pour améliorer l'efficacité de la tactique, des
optimisations ont été nécessaires. En particulier une
fonctionalité de sauvegarde de lemmes intermédiaires a été mise
en place afin d'assurer le partage des termes de preuve.
Participants : David Delahaye, Benjamin Werner.
Dans le but d'avoir un langage de preuves un peu moins
procédural pour Coq, David Delahaye a entrepris un travail
de bibliographie et de prospection auprès des autres outils
d'aide à la preuve. Il s'est notamment intéressé aux travaux de
John Harrison, de Gérard Huet et de César Muñoz. Quant aux outils
d'aide à la preuve, il s'est intéressé surtout à PVS aussi
bien du point de vue preuve que du point de vue langage ainsi
qu'aux systèmes MIZAR et HOL.
Participants : David Delahaye, Hugo Herbelin, Patrick
Loiseleur.
Patrick Loiseleur s'est chargé plus particulièrement de la
restructuration du manuel de référence de Coq V6.2, qui
est organisé en une partie description du langage et une partie
manuel de référence.
David Delahaye a produit la version HTML à l'aide de l'outil
HeVeA développé par Luc Maranget du projet Para.

Précédent : Preuves par réflection
Remonter : Résultats nouveaux Suivant :
Preuves
de programmes