Projet Coq

Précédent : Composition de l'équipe
Remonter : Projet COQ, Spécifications et preuves
Suivant : Fondements
scientifiques
Coq était jusqu'en septembre un projet
commun avec le Laboratoire de l'Informatique du Parallélisme, URA
1398 du CNRS à l'ENS Lyon. Une demande de projet commun avec le
LRI, URA 410 du CNRS à l'université Paris Sud sera prochainement
déposée.
Le projet Coq a pour but la réalisation de systèmes de
traitement de démonstrations, c'est-à-dire de systèmes
capables de vérifier, produire et transformer des démonstrations
mathématiques.
Ces systèmes peuvent en particulier être utilisés pour
vérifier les démonstrations de correction de matériels et de
logiciels informatiques vis-à-vis d'une spécification formelle,
permettant ainsi la production de produits informatiques de
qualité totale (zéro défaut). Ils construisent
explicitement un objet représentant la preuve de correction du
programme qui peut ainsi être à nouveau vérifiée dans le cadre de
la certification d'un logiciel.
Dans la conception d'un système de traitement de
démonstrations, le choix du formalisme dans lequel s'expriment
les définitions, les axiomes, les théorèmes et les démonstrations
est crucial. La théorie des ensembles n'est pas totalement
adaptée aux buts orientés vers l'informatique que nous
poursuivons, nous travaillons donc avec une variante issue des
travaux en théorie des types appelée Le Calcul des
Constructions Inductives et notée CCI.
Ses caractéristiques sont :
- les fonctions sont représentables par des algorithmes;
- les prédicats peuvent être définis inductivement par un
ensemble de clauses et les preuves sont des objets du
langage.
Ses avantages sont :
- la preuve d'existence d'un objet est automatiquement
traduite en un programme exécutable réalisant la spécification
initiale; inversement la donnée d'une spécification et d'un
programme permet d'engendrer des obligations de preuves;
- l'objet preuve sert à la documentation et permet la
vérification par un programme indépendant rendant ainsi la
démonstration sûre quelque soit la complexité des procédures de
preuves utilisées.
Les principaux travaux portent sur:
- des concepts de haut-niveau dans le langage: modules,
sous-typage, définitions par filtrage, structures
infinies;
- une représentation interne des termes de preuve rendant
efficace les opérations de réduction et de démonstration;
- le développement de théories classiques des mathématiques
et de programmes certifiés (en particulier le noyau du système
Coq).
Précédent : Composition de l'équipe
Remonter : Projet COQ, Spécifications et preuves
Suivant : Fondements scientifiques