Une Boite `a Outils Pour la Preuve Formelle de Syst`emes Séquentiels
Une Boite `a Outils Pour la Preuve Formelle de Syst`emes Séquentiels
Une Boite `a Outils Pour la Preuve Formelle de Syst`emes Séquentiels
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
INTRODUCTION 11<br />
<strong>la</strong> vérification <strong>de</strong> <strong>de</strong>scriptions fonctionnelles <strong>de</strong> machines, en particulier <strong>la</strong> métho<strong>de</strong> <strong>de</strong>s<br />
assertions <strong>de</strong> Floyd et les techniques d’exécution symbolique <strong>de</strong> programmes.<br />
W. Hunt a utilisé le démonstrateur <strong>de</strong> Boyer-Moore pour effectuer <strong>la</strong> vérification<br />
d’un petit microprocesseur [79]. Ce démonstrateur travaille sur un sous-ensemble <strong>de</strong> <strong>la</strong><br />
logique du premier ordre (seuls les quantificateurs universels sont autorisés), et permet<br />
l’utilisation du principe d’induction dans les preuves. L’utilisation du démonstrateur <strong>de</strong><br />
D. Boyer-Moore pour <strong>la</strong> preuve <strong>de</strong> matériel a été poursuivie, en particulier en Europe par<br />
l’équipe <strong>de</strong> D. Borrione [20].<br />
M. Gordon a développé un autre formalisme, appelé LCF-LSM [67, 68], construit<br />
au-<strong>de</strong>ssus du système LCF (Logic of Computable Functions) développé par R. Milner à<br />
Edimbourg pour <strong>la</strong> génération interactive <strong>de</strong> preuves formelles. La couche LSM (Logic of<br />
Sequential Machines) rajoutée par M. Gordon étend le calcul <strong>de</strong> LCF avec <strong>de</strong>s <strong>de</strong>scriptions<br />
comportementales du CCS (Calculus of Communicating Systems). Ce système a lui aussi<br />
étéutilisépourvérifierunpetitordinateur[68],maisn’aeuaucuneimplicationindustrielle.<br />
Le travail <strong>de</strong> H. G. Barrow [9] est très proche <strong>de</strong> celui <strong>de</strong> M. Gordon, excepté qu’il utilise<br />
PROLOG comme démonstrateur.<br />
La logique du premier ordre a une gran<strong>de</strong> puissance d’expression qui permet son utilisation<br />
directe comme formalisme <strong>de</strong> <strong>de</strong>scription <strong>de</strong> matériel, mais <strong>la</strong> puissance d’expression du<br />
premier ordre rend impossible l’automatisation <strong>de</strong>s preuves [36]. Un démonstrateur <strong>de</strong><br />
cette puissance ne peut pas réaliser tout seul <strong>la</strong> preuve <strong>de</strong> correction d’un circuit non<br />
trivial. L’utilisateur doit être capable <strong>de</strong> conduire <strong>la</strong> preuve, le système n’étant là que<br />
pour lui éviter <strong>de</strong> fastidieuses réécritures <strong>de</strong> formules. Par exemple, le système LCF offre<br />
<strong>de</strong>s primitives <strong>de</strong> constructions <strong>de</strong> preuves appelées “tactics” et “tacticals”. Les premières<br />
permettent <strong>de</strong> décomposer les problèmes à résoudre en sous-problèmes, et les secon<strong>de</strong>s<br />
<strong>de</strong> combiner les premières pour construire <strong>de</strong>s preuves complexes. Les preuves effectuées<br />
avec les systèmes cités ci-<strong>de</strong>ssus ont d’ailleurs été faites par les logiciens/mathématiciens<br />
créateurs <strong>de</strong> ces outils, et ont été longues à réaliser. Or il n’est pas envisageable à court<br />
terme <strong>de</strong> <strong>de</strong>man<strong>de</strong>r aux concepteurs <strong>de</strong> circuits <strong>de</strong> <strong>de</strong>venir aussi spécialistes <strong>de</strong> logique<br />
formelle, ni d’associer à chaque équipe <strong>de</strong> conception un logicien <strong>de</strong> haut niveau. L’objectif<br />
<strong>de</strong> développer <strong>de</strong>s outils <strong>de</strong> vérification automatiques a conduit d’autres équipes, dont celle<br />
du Centre <strong>de</strong> Recherche <strong>de</strong> BULL [5, 6], vers <strong>de</strong>s voies différentes.<br />
Un système logique décidable et assez puissant pour exprimer et résoudre les problèmes<br />
<strong>de</strong> vérification <strong>de</strong> matériel, à partir du moment où ils se situent sur un domaine<br />
d’interprétation fini, est <strong>la</strong> logique propositionnelle. En 1986, R. E. Bryant propose [27]<br />
une nouvelle forme canonique <strong>de</strong>s formules propositionnelles, les Graphes <strong>de</strong> Décision<br />
Binaires, ou BDDs. Cette forme puissante et compacte permet pour <strong>la</strong> première fois <strong>de</strong><br />
prouver complètement <strong>la</strong> correction <strong>de</strong> gros additionneurs (32 bits et plus). En 1987, une<br />
forme améliorée <strong>de</strong>s BDDs, appelée Graphes <strong>de</strong> Décisions Typés ou TDGs, est proposée<br />
par J. P. Billon [18]. Cette forme, plus un processus d’exécution symbolique, conçu par<br />
J. C. Madre [89, 19], du <strong>la</strong>ngage <strong>de</strong> <strong>de</strong>scription <strong>de</strong> matériel LDS, permet <strong>la</strong> conception en<br />
1988 <strong>de</strong> PRIAM, premier outil industriel <strong>de</strong> preuve <strong>de</strong> circuits combinatoires. PRIAM a<br />
été intégré dans le système <strong>de</strong> CAO <strong>de</strong> BULL et est maintenant utilisé quotidiennement