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.

116 CHAPITRE 5. CALCUL DE L’IMAGE RÉCIPROQUE D’UNE FONCTION<br />

path <strong>de</strong> <strong>la</strong> fonction “produce-functions”), <strong>de</strong> façon à calculer les termes partiels du type<br />

(S ◦ ⃗ f) <strong>de</strong>s noeuds fils.<br />

Chaque fois qu’une feuille 1 est atteinte, le graphe d’une <strong>de</strong>s fonctions h k est généré.<br />

Ce graphe est celui du terme (S 1 ◦f), ⃗ où S 1 est <strong>la</strong> somme <strong>de</strong> tous les chemins accèdant à 1<br />

en passant par une unique branche terminale. Comme <strong>la</strong> formule g[y 1 ← f 1 ,..., y n ← f n ]<br />

est aussi <strong>la</strong> somme <strong>de</strong> toutes ses interprétations (i.e. chemins) <strong>la</strong> satisfaisant, on a bien :<br />

⎛ ⎞<br />

∨<br />

g[y 1 ← f 1 ,..., y n ← f n ] = ⎝ h k<br />

⎠.<br />

h k ∈ SetFun<br />

L’éc<strong>la</strong>tement <strong>de</strong> <strong>la</strong> composition (χ◦ ⃗ f) en une liste <strong>de</strong> graphes h 1 ,...,h q dont on sait que<br />

<strong>la</strong> somme est (χ◦ ⃗ f), mais qui n’est pas réalisée, permet ensuite d’∃–éliminer les variables<br />

⃗x indépen<strong>de</strong>mment sur chaque graphe h k . Cet algorithme pourrait encore être amélioré<br />

en éliminant directement les variables ⃗x dans les termes partiels (S◦ ⃗ f), <strong>de</strong> façon à réduire<br />

le nombre <strong>de</strong> variables le plus tôt possible.<br />

5.4 Résultats expérimentaux et discussion<br />

La technique <strong>de</strong> vérification <strong>de</strong> formules CTL présentée ici a été appliquée à <strong>de</strong>ux machines<br />

chez BULL. La machine clm1 conçue chez BULL (voir Section 4.7.2, Table 5)<br />

décrit une partie <strong>de</strong> l’interface entre <strong>de</strong>ux bus. Elle est faite <strong>de</strong> 33 registres d’état et <strong>de</strong><br />

14 entrées. Les graphes qui représentent globalement sa fonction <strong>de</strong> transition ont plus<br />

<strong>de</strong> 10000 noeuds, et cinq <strong>de</strong>s registres ont une fonction <strong>de</strong> transition <strong>de</strong> plus <strong>de</strong> 2500<br />

noeuds. Cette machine possè<strong>de</strong> environ 3.8 10 5 états vali<strong>de</strong>s parmi les 2 33 états potentiels.<br />

Le temps CPU nécessaire pour effectuer le calcul symbolique <strong>de</strong> ses états vali<strong>de</strong>s est <strong>de</strong><br />

88.5 secon<strong>de</strong>s sur un Sun SPARC Station 1. La propriété temporelle à vali<strong>de</strong>r sur cette<br />

machine requiert le calcul d’un seul point fixe <strong>de</strong>mandant 38 itérations. Nous n’avons pu<br />

construire le graphe <strong>de</strong> <strong>la</strong> re<strong>la</strong>tion <strong>de</strong> transition <strong>de</strong> cette machine, aussi <strong>la</strong> technique décrite<br />

Section 5.2 ne peut être utilisée. La composition χ( ⃗ f(⃗y,⃗x)) utilisée à chaque itération a<br />

cessé d’être raisonnablement calcu<strong>la</strong>ble avec l’algorithme <strong>de</strong> composition standard après<br />

seulement quelques itérations. Si on utilise <strong>la</strong> composition standard et <strong>la</strong> simplification<br />

décrite Section 5.3.1, le point fixe est calculé en 1502 secon<strong>de</strong>s. La fonction “restrict”<br />

(utilisée conjointement avec le domaine D défini Section 5.3.1) est indispensable pendant<br />

ce calcul, puisqu’il réduit les graphes <strong>de</strong> ⃗ f utilisés dans <strong>la</strong> composition <strong>de</strong> façon à ce que<br />

pendantlecalculdupointfixe, aucun<strong>de</strong>cesgraphesn’aunetaillesupérieureà186, soitun<br />

gain <strong>de</strong> taille al<strong>la</strong>nt jusqu’à 10 pour chacune <strong>de</strong>s fonctions <strong>de</strong> transition f k <strong>de</strong>s variables<br />

d’état. Le temps CPU est ramené à 623 secon<strong>de</strong>s si on utilise en plus <strong>la</strong> minimisation<br />

incrémentale <strong>de</strong> <strong>la</strong> Section 5.3.2 pour évaluer <strong>la</strong> composition.<br />

La machine séquentielle sync est un synchronisateur ayant 21 registres d’états et 4<br />

entrées. La propriété à vali<strong>de</strong>r exprime que <strong>la</strong> valeur d’une sortie ok est égale à 1 pour<br />

tous les états vali<strong>de</strong>s <strong>de</strong> <strong>la</strong> machine. Ceci est traduit par <strong>la</strong> formule (Init |= AG(ok)). Le<br />

temps CPU nécessaire pour prouver cette formule avec <strong>la</strong> composition standard et sans<br />

utilisation <strong>de</strong>s états vali<strong>de</strong>s est <strong>de</strong> 2080 secon<strong>de</strong>s et le point fixe est atteint en 9 étapes.<br />

L’opérateur “restrict” n’a ici été d’aucune utilité puisqu’il n’a pu réduire <strong>la</strong> taille <strong>de</strong>s

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

Saved successfully!

Ooh no, something went wrong!