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.

2.4. MANIPULATIONS DE GRAPHES DE DÉCISION 57<br />

((y 1 ∧c 1 ) ∨<br />

(¬y 1 ∧((y 2 ∧c 2 ) ∨<br />

(¬y 2 ∧((y 3 ∧c 3 ) ∨<br />

...<br />

(¬y n−2 ∧((y n−1 ∧c n−1 ) ∨<br />

(¬y n−1 ∧(¬y n ∨c n )))) ... )))))<br />

Le graphe <strong>de</strong> g est donné ci-<strong>de</strong>ssous. Comme chaque c<strong>la</strong>use c k est une disjonction <strong>de</strong> trois<br />

littéraux, <strong>la</strong> taille <strong>de</strong> g est bornée par 4n, et il peut être facilement construit en O(n).<br />

Considérons alors <strong>la</strong> formule close (∃⃗x ∀⃗y g) qui est construite en O(n).<br />

Figure 14. Graphe <strong>de</strong> g.<br />

La Figure 14 montre que <strong>la</strong> forme sans quantificateur <strong>de</strong> (∀⃗y g) est ( ∧ n<br />

k=1 c k ). Donc <strong>la</strong><br />

forme sans quantificateur <strong>de</strong> (∃⃗x ∀⃗y g) est équivalente à (∃⃗x C). Cette formule est égale<br />

à 1 si et seulement si C est satisfiable. Comme (∃⃗x ∀⃗y g) est une formule close, on<br />

peut calculer sa forme sans quantificateur <strong>de</strong> <strong>la</strong> façon suivante : si C est satisfiable, alors<br />

(∃⃗x ∀⃗y g) = 1, sinon (∃⃗x ∀⃗y g) = 0. Donc calculer <strong>la</strong> forme sans quantificateur <strong>de</strong> <strong>la</strong><br />

formule close (∃⃗x ∀⃗y g) est NP–difficile.<br />

✷<br />

2.4.5 Résolution d’équations<br />

Il suffit <strong>de</strong> reprendre les algorithmes définis Section 1.4, et d’étudier leur complexité sur<br />

les graphes.<br />

<strong>Pour</strong> une équation à une inconnue (∀y 1 ...∀y n ∃x f) où f est un graphe, <strong>la</strong> fonction<br />

<strong>de</strong> Skolem <strong>de</strong> x (si elle existe) est calculée en O(|f| 2 ). Dans le cas particulier où l’ordre<br />

sur les variables est tel que {y 1 ,...,y n } < x, <strong>la</strong> fonction <strong>de</strong> Skolem est calculée en O(|f|)<br />

par l’évaluation du terme solve(f), où solve est définie par :<br />

solve(△(y k ,L,H)) = △(y k ,solve(L),solve(H))<br />

solve(△(x,0,1)) = 1<br />

solve(△(x,1,0)) = 0<br />

solve(1) = △(p,0,1)

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

Saved successfully!

Ooh no, something went wrong!