07.11.2013 Views

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.5. CONCLUSION 117<br />

graphes <strong>de</strong> <strong>la</strong> fonction <strong>de</strong> transition. Cependant, si on utilise l’ensemble <strong>de</strong>s états vali<strong>de</strong>s<br />

Valid pour simplifier les arguments <strong>de</strong> <strong>la</strong> composition, <strong>la</strong> validation est instantanée, car <strong>la</strong><br />

fonction ok est égale à 1 sur l’ensemble Valid, ce qui implique que (ok⇓Valid) = 1.<br />

Il est à remarquer que <strong>la</strong> formule AG(ok) est une propriété <strong>de</strong> sûreté, donc elle appartient<br />

à <strong>la</strong> c<strong>la</strong>sse <strong>de</strong> formules qui peuvent être vérifiées en comparant <strong>la</strong> machine sur<br />

<strong>la</strong>quelle doit être validée cette formule avec un automate construit à partir <strong>de</strong> <strong>la</strong> formule.<br />

On peut donc utiliser <strong>la</strong> technique <strong>de</strong> vérification présentée dans <strong>la</strong> Section 3.2. Dans ce<br />

cas précis, il suffit <strong>de</strong> vérifier que <strong>la</strong> sortie ok est toujours égale à 1 sur l’espace <strong>de</strong>s états<br />

vali<strong>de</strong>s <strong>de</strong> <strong>la</strong> machine. Vali<strong>de</strong>r <strong>la</strong> propriété en utilisant cette métho<strong>de</strong> ne requiert que 58<br />

secon<strong>de</strong>s, le calcul <strong>de</strong>s états vali<strong>de</strong>s étant effectué en 20 étapes.<br />

Cette exemple semble montrer que si <strong>la</strong> formule peut être validée en utilisant une comparaison<br />

<strong>de</strong> machines (l’une étant le modèle universel), alors il est préférable d’appliquer<br />

cette technique plutôt que l’algorithme général <strong>de</strong> vérification <strong>de</strong>s formules CTL. En pratique,<br />

on trouve en effet <strong>de</strong>s machines qui ne peuvent être traversées en arrière, alors<br />

que leur ensemble d’états vali<strong>de</strong>s peut être symboliquement calculé. Ceci n’est qu’une<br />

illustration du Théorème 5.3, où nous avons montré que calculer l’image réciproque est<br />

intrinsèquement plus difficile que calculer l’image 3 .<br />

Parallèlementànotretechnique<strong>de</strong>preuvesymbolique<strong>de</strong>formuleCTLsurunemachine<br />

séquentielle, l’équipe d’Edmund C<strong>la</strong>rke <strong>de</strong> Carnegie Mellon University a développé une<br />

technique <strong>de</strong> preuve très simi<strong>la</strong>ire [29]. Elle diffère <strong>de</strong> <strong>la</strong> notre en ce qu’elle utilise <strong>la</strong><br />

re<strong>la</strong>tion <strong>de</strong> transition <strong>de</strong> <strong>la</strong> machine pour <strong>la</strong> résolution <strong>de</strong>s équations <strong>de</strong> points fixes (voir<br />

Section 5.2), alors que nous utilisons <strong>la</strong> composition sur <strong>la</strong> fonction <strong>de</strong> transition (voir<br />

Section 5.3). Cette technique a été utilisée pour <strong>la</strong> vérification d’opérateurs arithmétiques<br />

“pipeline”[30], possèdantjusqu’à10 120 étatsutiles, cequirendinapplicableslestechniques<br />

énumératives. Cette métho<strong>de</strong> a été aussi utilisée pour vali<strong>de</strong>r <strong>de</strong>s protocoles décrits en<br />

CCS [60]. Retenons surtout ce qui me semble être l’application <strong>la</strong> plus probante, <strong>la</strong><br />

détection d’erreurs dans un protocole <strong>de</strong> communication entre les caches mémoires d’une<br />

machine multi-processeurs, erreurs qui n’avaient pas été détectées durant <strong>la</strong> pério<strong>de</strong> <strong>de</strong><br />

test [88].<br />

5.5 Conclusion<br />

Nous avons présenté dans le Chapitre 3 une procédure automatique <strong>de</strong> validation <strong>de</strong> formules<br />

CTL sur une machine séquentielle, qui s’appuie sur <strong>de</strong>s manipu<strong>la</strong>tions <strong>de</strong> formules<br />

propositionnelles quantifiées. Cette procédure <strong>de</strong> preuve ne requiert ni <strong>la</strong> construction<br />

du diagramme d’état <strong>de</strong> <strong>la</strong> machine, ni <strong>la</strong> construction <strong>de</strong> <strong>la</strong> re<strong>la</strong>tion <strong>de</strong> transition <strong>de</strong> <strong>la</strong><br />

machine.<br />

3 A propos <strong>de</strong>s <strong>de</strong>ux stratégies possibles pour vérifier une propriété <strong>de</strong> sûreté, certains ont affirmé que le<br />

nombre d’itérations requis pour atteindre le point fixe par un parcours en arrière est inférieur à celui requis<br />

par un parcours en avant. C’est évi<strong>de</strong>mment faux. <strong>Pour</strong> n 1 ≥ 0 et n 2 ≥ 0 quelconques, on peut exhiber un<br />

modèle sur lequel le nombre d’itérations nécessaire pour atteindre le point fixe en avant (respectivement<br />

en arrière) est égal à n 1 (respectivement à n 2 ). Il n’y a aucune re<strong>la</strong>tion entre n 1 et n 2 .

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!