Précédent : Fondements scientifiques Remonter :
Fondements
scientifiques Suivant : Preuves et
Programmes
Mots clés : Tactiques, objet preuve .
Glossaire :
Tactiques Une tactique est un programme permettant à partir d'une propriété à démontrer de construire un ensemble (éventuellement vide) de nouvelles propriétés qui sont suffisantes pour valider la propriété initiale. Les tactiques peuvent être combinées en utilisant des opérateurs appelés tacticals.
Objet preuve Un objet preuve est une représentation concrète d'une preuve qui explicite les étapes élémentaires ayant permis de justifier la correction du développement (lemmes utilisés, instanciations, récurrence).
Calcul des Constructions Inductives Langage issu de la théorie des types. Intégrant des types d'ordre supérieurs, polymorphes, dépendants et des définitions inductives et co-inductives primitives, il permet la représentation des spécifications et des preuves et sert de base à l'assistant Coq.
CCI Calcul des Constructions Inductives.
Il ne s'agit pas de résoudre tous les problèmes automatiquement, mais d'interagir avec l'utilisateur qui indique des stratégies de preuve (appelées tactiques) qui peuvent résoudre complètement un problème ou bien proposer une liste de sous-problèmes à résoudre. La machine vérifie la correction du raisonnement et certifie donc que les problèmes ainsi résolus correspondent à des théorèmes prouvés.
Le langage dans lequel sont exprimés les objets et les propriétés doit avoir un grand pouvoir d'expression. Notre approche repose sur une théorie des types d'ordre supérieur qui offre un langage de spécification riche et permet une représentation concrète des preuves qui reste proche du raisonnement humain.
Notre système de traitement de démonstrations repose sur le formalisme du Calcul des Constructions Inductives que nous avons élaboré. Le langage de spécification associé est appelé Gallina. Il contient en particulier un calcul des prédicats d'ordre supérieur typé permettant d'exprimer des propriétés sur des objets appartenant à des structures algébriques quelconques. Il permet une représentation directe sans codage excessif des notions fondamentales d'objets structurés, de fonctions ou de relations très souvent utilisées dans les preuves informatiques.
La puissance même du système logique rend a priori impossible l'automatisation complète de la recherche d'une preuve d'une formule. L'approche repose sur deux autres idées. La première est qu'étant donnée une démonstration formelle assez détaillée, il est possible de vérifier mécaniquement sa correction. La seconde est que des programmes arbitraires (appelés tactiques) peuvent être utilisés pour construire par étapes successives une démonstration dont la correction est ensuite vérifiée. Ceci permet de laisser l'utilisateur construire ses propres procédures tout en garantissant la correction des preuves finales.