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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.4. MANIPULATIONS DE GRAPHES DE DÉCISION 51<br />
Théorème 2.9 Soient f et g <strong>de</strong>ux graphes <strong>de</strong> décision binaires. La complexité du calcul<br />
du graphe <strong>de</strong> décision binaire <strong>de</strong> (¬f) est en O(|f|), celui du graphe <strong>de</strong> décision binaire <strong>de</strong><br />
(f ⋆g) est en O(|f|×|g|), où ⋆ est un opérateur booléen diadique quelconque (par exemple<br />
∨,∧,⇒,⇔, ou ⊕).<br />
<strong>Preuve</strong>. La négation d’un BDD f nécessite une recopie <strong>de</strong> celui-ci avec inversion <strong>de</strong>s<br />
feuilles, d’où une négation en O(|f|). Nous avons vu que l’obtention du BDD <strong>de</strong> (f ⋆g)<br />
requiert au plus |f|×|g| applications <strong>de</strong> <strong>la</strong> règle 2.12. Montrons maintenant que <strong>la</strong> taille<br />
du BDD <strong>de</strong> (f ⋆ g) est en O(|f| × |g|). Cette preuve est due à Bryant [28]. Par nature,<br />
<strong>la</strong> taille du BDD <strong>de</strong> (f ⋆ g) est bornée par |f| × |g|. Considérons maintenant 2n + 2m<br />
variables x 1 < ... < x 2n+2m . Soient les formules<br />
f =<br />
g =<br />
(<br />
∨ n<br />
)<br />
(x k ∧x n+m+k ) et (2.14)<br />
k=1<br />
(<br />
∨ m<br />
)<br />
(x n+k ∧x 2n+m+k ) . (2.15)<br />
k=1<br />
Leurs BDDs ont respectivement les tailles 2 n+1 et 2 m+1 . On a :<br />
f ∨g =<br />
( n+m<br />
) ∨<br />
(x k ∧x n+m+k ) ,<br />
k=1<br />
dont le BDD est <strong>de</strong> taille 2 n+m+1 , c’est à dire (|f| × |g|)/2. La complexité du calcul <strong>de</strong><br />
(f ⋆g) est donc en O(|f|×|g|) pour l’application <strong>de</strong>s opérateurs booléens ∨,∧,⇒,⇔,⊕.<br />
✷<br />
Théorème 2.10 Soient f et g <strong>de</strong>ux graphes <strong>de</strong> décision typés. La complexité du calcul<br />
du graphe <strong>de</strong> décision typé <strong>de</strong> (¬f) est en O(1), celui du graphe <strong>de</strong> décision typé <strong>de</strong> (f⋆g)<br />
est en O(|f|×|g|), où ⋆ est un opérateur booléen quelconque.<br />
Les opérateurs booléens usuels ont donc <strong>de</strong>s coûts tout à fait raisonnables sur les<br />
graphes, puisque polynomiaux par rapport aux tailles <strong>de</strong>s graphes. <strong>Pour</strong> implémenter<br />
l’évaluation d’une fonction n–aire g, il suffit <strong>de</strong> généraliser l’opération ⋆ au cas n–aire, et<br />
donner les réécritures <strong>de</strong> g dans les cas terminaux (potentiellement 2 n cas terminaux sont<br />
nécessaires pour décrire complètement g). La complexité <strong>de</strong> l’évaluation <strong>de</strong> g(f 1 ,...,f n )<br />
sera finalement bornée par O( ∏ n<br />
k=1 |f k |). En résumé, l’évaluation d’une opération n–aire<br />
implémentée “en dur” se fait au pire polynomialement <strong>de</strong> <strong>de</strong>gré n.<br />
2.4.3 Composition <strong>de</strong> graphes <strong>de</strong> décision<br />
Nous abordons ici l’évaluation <strong>de</strong> g(f 1 ,...,f n ) dans le cas où g est donnée sous <strong>la</strong> forme<br />
d’un graphe. Nous étudions d’abord <strong>la</strong> substitution d’une variable d’un graphe par un<br />
autre graphe, puis le problème <strong>de</strong> <strong>la</strong> composition en général.<br />
D’après <strong>la</strong> règle 2.13, <strong>la</strong> substitution d’une variable dans un graphe g par un graphe<br />
f s’effectue avec une complexité bornée par O(|g| 2 × |f|). D’un autre coté, il est c<strong>la</strong>ir