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.
88 CHAPITRE 4. CALCUL DE L’IMAGE D’UNE FONCTION<br />
Or le DAG <strong>de</strong> cette re<strong>la</strong>tion ne peut pas toujours être construit. Ceci vient du fait<br />
que les variables y j n’ont pas d’occurrence libre dans les formules f k (⃗x) (1 ≤ j ≤ n et<br />
1 ≤ k ≤ n), et donc que <strong>la</strong> construction du produit ( ∧ n<br />
k=1 (y k ⇔ f k (⃗x))) requiert le calcul<br />
<strong>de</strong> <strong>la</strong> plupart <strong>de</strong>s 2 n sous-produits ( ∧ n<br />
k=1 ε k (f k )). Le graphe G représentant le produit<br />
( ∧ n<br />
k=1 (y k ⇔ f k (⃗x))) va croître <strong>de</strong> façon explosive, alors que <strong>la</strong> fonction Img( ⃗ f,1) obtenue<br />
après <strong>la</strong> ∃–élimination <strong>de</strong>s variables x 1 ,...,x m peut être <strong>de</strong> taille réduite.<br />
Cette différence extrème <strong>de</strong> taille entre le graphe <strong>de</strong> ( ∧ n<br />
k=1 (y k ⇔ f k (⃗x))) et celui <strong>de</strong><br />
Img( ⃗ f,1) est traduite par <strong>la</strong> Figure 22. Par exemple, si les variables y 1 ,...,y n sont<br />
inférieures aux variables x 1 ,...,x m , on risque d’obtenir un graphe G dont les 2 n premiers<br />
noeuds seront tous expansés. On distingue dans ce graphe 3 types <strong>de</strong> chemins :<br />
le chemin <strong>de</strong> type (a) atteint une feuille 1 sans rencontrer <strong>de</strong> variable x k ; le chemin <strong>de</strong><br />
type (b) atteint une feuille 0 sans rencontrer <strong>de</strong> variable x k ; le chemin <strong>de</strong> type (c) rencontre<br />
au moins une variable x k . Le graphe <strong>de</strong> (∃⃗x G) montre que les sous graphes <strong>de</strong><br />
<strong>la</strong> partie à éliminer, correspondant aux chemins <strong>de</strong> type (c), contiennent beaucoup trop<br />
d’information : ils rassemblent toutes les interprétations <strong>de</strong> ⃗x telles que ( ∧ n<br />
k=1 y k ⇔ f k (⃗x))<br />
soit vrai pour un certain ⃗y fixé, alors qu’on a juste besoin <strong>de</strong> savoir si ( ∧ n<br />
k=1 y k ⇔ f k (⃗x))<br />
est satisfiable pour cet ⃗y. Alors que l’information <strong>de</strong> satisfiabilité sur une forme canonique<br />
est <strong>de</strong> taille O(1), il est d’abord <strong>de</strong>mandé <strong>de</strong> calculer un graphe <strong>de</strong> re<strong>la</strong>tion sur ⃗x, qui<br />
est potentiellement une information <strong>de</strong> taille O(2 m /m) ! L’expérience montre [43] que<br />
pour n > 30, cette métho<strong>de</strong> ne peut être appliquée à <strong>de</strong>s machines non triviales, ou à <strong>de</strong>s<br />
machines dont <strong>la</strong> fonction <strong>de</strong> transition possè<strong>de</strong> un graphe insuffisamment régulier [29].<br />
Figure 22. Graphes <strong>de</strong> G et <strong>de</strong> (∃⃗x G).<br />
Dans [120], H. Touati et al. proposent une technique permettant <strong>de</strong> réduire le coût<br />
du calcul <strong>de</strong> l’image basé sur l’équation 4.1. L’idée est d’ordonner les variables <strong>de</strong> ⃗x et ⃗y,<br />
ainsi que les calculs <strong>de</strong>s termes (y k ⇔ f k (⃗x)), <strong>de</strong> façon à éliminer les variables quantifiées<br />
aussi tôt que possible, et à gar<strong>de</strong>r un produit intermédiaire <strong>de</strong> taille raisonnable. Cette<br />
heuristique est efficace sur beaucoup d’exemples, mais si les composantes du vecteur ⃗ f ont<br />
<strong>de</strong>s supports très semb<strong>la</strong>bles, alors l’ordonnancement obtenu ne permet pas une réduction<br />
significative du coût du calcul.