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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapitre 5<br />
Calcul <strong>de</strong> l’image réciproque d’une<br />
fonction<br />
Etant donnés les DAGs <strong>de</strong>s fonctions ⃗ f <strong>de</strong> {0,1} m dans {0,1} n , <strong>de</strong> Cns <strong>de</strong> {0,1} m dans<br />
{0,1}, et<strong>de</strong>χ<strong>de</strong>{0,1} n dans{0,1}, nousétudionsici<strong>de</strong>salgorithmescalcu<strong>la</strong>nt<strong>la</strong>fonction<br />
Pre( ⃗ f,Cns,χ), définie <strong>de</strong> {0,1} n dans {0,1}. Après avoir présenté quelques résultats <strong>de</strong><br />
complexité, nous comparons ce problème à celui du calcul <strong>de</strong> l’image, et montrons qu’il<br />
est plus complexe. Nous proposons alors quelques techniques <strong>de</strong> calcul, en discutant leurs<br />
intérêts respectifs.<br />
5.1 Difficulté du calcul <strong>de</strong> Pre( ⃗ f,Cns,χ)<br />
La difficulté intrinsèque du problème est indiquée par le théorème suivant, qui montre que<br />
le calcul <strong>de</strong> Pre( ⃗ f,Cns,χ) est NP–difficile 1 . On obtient le Théorème 5.2 plus précis quant<br />
aux graphes <strong>de</strong> décision.<br />
Théorème 5.1 Etant données les formes canoniques <strong>de</strong> ⃗ f et <strong>de</strong> χ, <strong>la</strong> canonisation <strong>de</strong><br />
Pre( ⃗ f,1,χ) est NP–difficile.<br />
<strong>Preuve</strong>. Nous ne donnons que <strong>la</strong> preuve sur les DAGs. Soit C = ( ∧ n<br />
k=1 c k ) une<br />
3–forme normale conjonctive composée <strong>de</strong> n c<strong>la</strong>uses c k . Chaque c<strong>la</strong>use c k est une disjonction<br />
<strong>de</strong> trois littéraux, donc le calcul <strong>de</strong>s graphes <strong>de</strong> toutes les c<strong>la</strong>uses se fait en O(n).<br />
Soit χ le graphe <strong>de</strong> <strong>la</strong> fonction λ[x 1 ...x n ].( ∧ n<br />
k=1 x k ). Ce graphe est un peigne, construit<br />
en O(n). Tester si le graphe <strong>de</strong> Pre( ⃗ f,1,χ) est différent <strong>de</strong> 0 se fait en O(1). Or C est<br />
satisfiable si et seulement si Pre( ⃗ f,1,χ) ≠ 0, donc calculer Pre( ⃗ f,1,χ) est NP–difficile.<br />
✷<br />
Théorème 5.2 Etant donnés les DAGs <strong>de</strong> ⃗ f et χ, le calcul <strong>de</strong> Pre( ⃗ f,1,χ) pour un ordre<br />
<strong>de</strong>s variables fixé est non polynomial.<br />
1 On a Pre( ⃗ f,Cns,χ) = Pre( ⃗ f@[Cns],1,λ(⃗y@[y n+1 ]).(χ(⃗y) ∧ y n+1 )). Comme le graphe <strong>de</strong><br />
λ(⃗y@[y n+1 ]).(χ(⃗y)∧y n+1 ) est obtenu à partir du graphe <strong>de</strong> χ par un produit en O(|χ|), donc polynomial,<br />
le calcul <strong>de</strong> Pre( ⃗ f,Cns,χ) et Pre( ⃗ f,1,χ) sont <strong>de</strong> même c<strong>la</strong>sse <strong>de</strong> complexité.<br />
109