
Précédent : Le développement du système Coq Remonter
: Le
développement du système Coq Suivant : Diffusion
Coq est un assistant à la démonstration. Ses
principales fonctionnalités sont au niveau du
formalisme :
- Une structure primitive de définitions mutuellement
inductives permettant des spécifications de haut niveau soit
dans un style fonctionnel en déclarant des types concrets et en
définissant des fonctions par des équations représentant un
calcul, soit dans un style déclaratif en spécifiant des
relations à l'aide de clauses.
- Une structure primitive de définitions co-inductives
permettant de représenter directement des structures infinies
régulières et de construire des preuves sur de tels objets sans
passer par la notion classique de bi-simulation.
- Une interprétation des preuves comme des programmes
certifiés mise en oeuvre dans une compilation des preuves sous
forme de programmes ML mais aussi des outils pour associer un
programme à une spécification et engendrer automatiquement des
obligations de preuve permettant de justifier sa
correction.
Au niveau de l'architecture de l'assistant :
- Un système de bibliothèques mathématiques modulaires
permettant de compiler et recharger rapidement des théories
mathématiques.
- La possibilité d'introduire des notations spécifiques par
l'utilisation de grammaires et fonctions d'impression
interprétées.
- La possibilité de développer des tactiques comme des
programmes ML sophistiqués qui peuvent ensuite être chargés et
utilisés dans l'environnement.