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.

3.3.<br />

VÉRIFICATION DE PROPRIÉTÉS TEMPORELLES 77<br />

vérifier directement par énumération que (⃗y |= f), on calcule <strong>la</strong> fonction caractéristique<br />

F <strong>de</strong>s états qui satisfont f, puis on vérifie que F(⃗y) = 1. Nous décrivons ci-après un<br />

algorithme basé sur cette technique, qui ne nécessite aucune construction <strong>de</strong> graphe d’état.<br />

L’algorithme prend comme entrées une machine M décrite par son 6–uplet<br />

(n,m,r,ω,δ,Init) et <strong>la</strong> formule temporelle f à vali<strong>de</strong>r. Il calcule récursivement l’ensemble<br />

d’états <strong>de</strong> <strong>la</strong> machine M qui satisfont <strong>la</strong> formule f à partir <strong>de</strong>s ensembles d’états satisfaisant<br />

les sous-formules <strong>de</strong> f. A chaque étape, il n’y a que cinq cas à considérer, correspondant<br />

aux cinq types <strong>de</strong> formules donnés dans <strong>la</strong> section précé<strong>de</strong>nte.<br />

Les formules <strong>de</strong> type propositionnelle<br />

Les ensembles d’états sont représentés par les DAGs <strong>de</strong> leurs fonctions caractéristiques.<br />

Ainsi les formules <strong>de</strong> type (1) et (2) sont triviales à traiter. Par exemple, si f = (f 1 ∧f 2 ),<br />

et F 1 et F 2 sont les fonctions caractéristiques <strong>de</strong>s ensembles d’états satisfaisant respectivement<br />

f 1 et f 2 , alors F est λ⃗y.(F 1 (⃗y)∧F 2 (⃗y)). Le coût <strong>de</strong> calcul du DAG <strong>de</strong> F est en<br />

O(|F 1 |×|F 2 |). De <strong>la</strong> même façon, ⃗y |= f si et seulement si F(⃗y) = 1, ce qui est calculé en<br />

O(n). Finalement, (M |= f) si et seulement si (Init ⇒ F) est une tautologie, ce qui est<br />

calculé en O(|Init|×|F|). Les autres types <strong>de</strong> formules temporelles sont moins immédiats<br />

à traiter, et leur traitement repose sur <strong>de</strong>s équations <strong>de</strong> points fixes [46, 29, 30].<br />

Les formules <strong>de</strong> type EX et AX<br />

Soit f une formule et F l’ensemble d’états satisfaisant f. L’ensemble d’états EX qui<br />

satisfont EX(f) est défini par EX = {⃗y / ∃⃗x δ(⃗y,⃗x) ∈ F}. Sa fonction caractéristique<br />

est :<br />

EX = λ⃗y.(∃⃗x Cns(⃗y,⃗x)∧F( ⃗ f(⃗y,⃗x))). (3.6)<br />

Comme AX(f) = ¬EX(¬f), <strong>la</strong> fonction caractéristique AX <strong>de</strong> l’ensemble d’états satisfaisant<br />

AX(f) est :<br />

Les formules <strong>de</strong> type EU et AU<br />

AX = λ⃗y.(¬(∃⃗x Cns(⃗y,⃗x)∧¬F( ⃗ f(⃗y,⃗x))). (3.7)<br />

Soient f et g <strong>de</strong>ux formules et F et G les ensembles d’états qui satisfont respectivement f<br />

et g. L’ensemble EU d’états <strong>de</strong> <strong>la</strong> machine M qui satisfont <strong>la</strong> formule E[fUg] est défini<br />

comme <strong>la</strong> limite <strong>de</strong> <strong>la</strong> suite d’ensembles (E k ) suivante [40, 21, 46, 29] :<br />

E 0 = G,<br />

et<br />

E k+1 = E k ∪{⃗y / (⃗y ∈ F)∧(∃⃗x δ(⃗y,⃗x) ∈ E k )}.<br />

Les fonctions caractéristiques <strong>de</strong> ces ensembles sont les suivantes :<br />

E 0 = G, et (3.8)<br />

(<br />

E k+1 = λ⃗y. E k (⃗y)∨ ( F(⃗y)∧(∃⃗x Cns(⃗y,⃗x)∧E k ( f(⃗y,⃗x))) ⃗ )) . (3.9)

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

Saved successfully!

Ooh no, something went wrong!