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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

90 CHAPITRE 4. CALCUL DE L’IMAGE D’UNE FONCTION<br />

La complexité <strong>de</strong> cet algorithme dépend du choix <strong>de</strong> <strong>la</strong> couverture (h j ) j∈J . Si à chaque<br />

étape <strong>la</strong> couverture (h j ) j∈J contient au moins <strong>de</strong>ux ensembles h 1 et h 2 tels que h 1 ⊈ h 2 et<br />

h 2 ⊈ h 1 , l’algorithme se termine. Si à chaque étape <strong>la</strong> couverture (h j ) j∈J est une partition,<br />

le nombre <strong>de</strong> récursions est borné par le nombre d’éléments du domaine, c’est à dire 2 m .<br />

En utilisant un cache qui conserve les calculs intermédiaires [38], ce nombre <strong>de</strong> récursions<br />

peut être radicalement réduit. Ce cache conserve les couples ( ⃗ f,χ) tels que χ = Img( ⃗ f,1).<br />

Au lieu <strong>de</strong> prendre en compte le vecteur ⃗ f en entier, cet algorithme <strong>de</strong> cache peut être<br />

raffiné en utilisant les propriétés suivantes [47] :<br />

Théorème 4.5 La fonction caractéristique <strong>de</strong> Img([f 1 ... f k−1 ε(1) f k+1 ... f n ],χ) est<br />

où χ ′ = Img([f 1 ... f k−1 f k+1 ... f n ],χ).<br />

λ⃗y.(ε(y k )∧χ ′ (y 1 ,...,y k−1 ,y k+1 ,...,y n )),<br />

Théorème 4.6 La fonction caractéristique <strong>de</strong> Img([f 1 ... f k−1 ε(f j ) f k+1 ... f n ],χ) est<br />

λ⃗y.((y j ⇔ ε(y k ))∧χ ′ (y 1 ,...,y k−1 ,y k+1 ,...,y n )),<br />

où χ ′ = Img([f 1 ... f k−1 f k+1 ... f n ],χ).<br />

Théorème 4.7 Soit χ ′ 1 et χ ′ 2 les fonctions caractéristiques <strong>de</strong> Img( ⃗ f 1 ,χ 1 ) et Img( ⃗ f 2 ,χ 2 ).<br />

Alors <strong>la</strong> fonction caractéristique <strong>de</strong> Img(λ(⃗x 1 @⃗x 2 ).( ⃗ f 1 (⃗x 1 )@ ⃗ f 2 (⃗x 2 )),χ 1 ×χ 2 ) est :<br />

λ(⃗y 1 @⃗y 2 ).(χ ′ 1(⃗y 1 )∧χ ′ 2(⃗y 2 )).<br />

Le Théorème 4.5 permet d’éliminer les composantes constantes <strong>de</strong> f. ⃗ Le Théorème 4.6<br />

affirme que si plusieurs composantes <strong>de</strong> f ⃗ sont égales ou complémentaires, toutes ces composantes<br />

sauf une peuvent être éliminées. Ces <strong>de</strong>ux processus d’élimination réduisent<br />

le nombre d’entrées dans le cache, et augmente les possibilités <strong>de</strong> reconnaissance, d’où<br />

réduction du nombre <strong>de</strong> recursions. Le Théorème 4.7 signifie que si on peut trouver<br />

une partition P = { f ⃗ 1 ,..., f ⃗ q } <strong>de</strong>s composantes <strong>de</strong> f, ⃗ telle que les vecteurs f ⃗ k aient <strong>de</strong>s<br />

supports <strong>de</strong> variables disjoints, alors calculer Img( f,1) ⃗ revient à calculer les q fonctions<br />

caractéristiques <strong>de</strong>s ensembles Img( f ⃗ k ,1), puis à construire le produit cartésien (i.e. conjonction<br />

avec renommage <strong>de</strong>s variables) <strong>de</strong> ces fonctions caractéristiques [44]. De cette<br />

façon, le nombre maximum <strong>de</strong> récursions est réduit <strong>de</strong> 2 m à ( ∑ q<br />

k=1 2sup k ), où supk est <strong>la</strong><br />

taille du support <strong>de</strong> f ⃗ k .<br />

Soit “eliminate-and-partition” <strong>la</strong> fonction qui, appliquée à un vecteur ⃗ f, retourne un<br />

couple (c,P), tel que : c est <strong>la</strong> fonction caractéristique re<strong>la</strong>tive aux composantes éliminées<br />

<strong>de</strong> ⃗ f (par convention, c = 1 si aucune composante <strong>de</strong> ⃗ f ne peut être éliminée), et P<br />

est <strong>la</strong> partition <strong>de</strong>s composantes restantes <strong>de</strong> ⃗ f en vecteurs <strong>de</strong> supports disjoints. Notons<br />

que le processus d’élimination utilisant les Théorèmes 4.5 et 4.6 peut être effectué en<br />

O(nlogn) avec les TDGs, mais il est plus coûteux avec les BDDs (voir <strong>la</strong> discussion sur le<br />

test d’i<strong>de</strong>ntification étendu page suivante). Le partitionnement <strong>de</strong>s composantes restantes

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

Saved successfully!

Ooh no, something went wrong!