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.
E.2. MINIMISATION D’UNE FONCTION PARTIELLE 139<br />
dans {x 1 ,...,x n }. On dit qu’une variable x k est inutile si et seulement si il existe un<br />
graphe f ′ qui n’utilise pas x k . Autrement dit, il existe une fonction f ′ pour <strong>la</strong>quelle x k est<br />
redondante. On a alors le résultat suivant :<br />
Théorème E.1 L’ensemble <strong>de</strong>s fonctions f ′ n’utilisant pas <strong>la</strong> variable x k et satisfaisant<br />
(g ⇒ f ′ ⇒ h) est égal à l’ensemble <strong>de</strong>s fonctions f ′ satisfaisant (∃x k g) ⇒ f ′ ⇒ (∀x k g).<br />
<strong>Preuve</strong>. Soit f ′ n’utilisant pas <strong>la</strong> variable x k et satisfaisant (g ⇒ f ′ ⇒ h). Ceci est<br />
équivalent à dire que d’une part f ′ [x k ← 0] = f ′ [x k ← 1], puisque x k est redondante<br />
dans f ′ , et que d’autre part les formules (g[x k ← 0] ⇒ f ′ [x k ← 0] ⇒ h[x k ← 0]) et<br />
(g[x k ← 1] ⇒ f ′ [x k ← 1] ⇒ h[x k ← 1]) sont <strong>de</strong>s tautologies, <strong>de</strong> part E.2 et E.3. On<br />
a donc (g[x k ← 0] ⇒ f ′ ⇒ h[x k ← 0]), et (g[x k ← 1] ⇒ f ′ ⇒ h[x k ← 1]), ce qui est<br />
équivalent à (∃x k g) ⇒ f ′ ⇒ (∀x k g).<br />
✷<br />
De ce théorème, on déduit aisément le suivant :<br />
Théorème E.2 L’ensemble <strong>de</strong>s fonctions f ′ satisfaisant (g ⇒ f ′ ⇒ h) et n’utilisant pas<br />
les variables ⃗y est non vi<strong>de</strong> si et seulement si (∃⃗y g) ⇒ (∀⃗y g) est une tautologie. Dans ce<br />
cas, cet ensemble est égal à l’ensemble <strong>de</strong>s fonctions f ′ satisfaisant (∃⃗y g) ⇒ f ′ ⇒ (∀⃗y g).<br />
Ce résultat permet <strong>de</strong> calculer les supports minimaux <strong>de</strong> f ′ , ainsi que les fonctions g<br />
et h définissant <strong>la</strong> fonction partielle f ′ correspondante. Bien entendu, il existe plusieurs<br />
supports minimaux, mais tous ne sont pas optimaux. Par exemple, si le support <strong>de</strong> g et h<br />
est {x 1 ,...,x 4 }, on peut avoir les supports localement minimaux {x 1 ,x 2 } et {x 2 ,x 3 ,x 4 }.<br />
Afin d’avoir une solution optimale (c’est à dire le maximum <strong>de</strong> variables inutiles), un<br />
branch and bound est nécessaire. Ceci implique un coût exponentiel, qui peut donc être<br />
rapi<strong>de</strong>ment rédhibitoire.<br />
<strong>Une</strong> fois les variables inutiles éliminées, le problème <strong>de</strong> <strong>la</strong> minimisation est réduit à un<br />
certain nombre —un par support minimal— <strong>de</strong> problèmes qui se formulent comme suit :<br />
(2) Etant donnés <strong>de</strong>ux graphes g et h, trouver un graphe f ′ tel que<br />
(g ⇒ f ′ ⇒ h). (E.4)<br />
Il est ici entendu que le support <strong>de</strong> f ′ est nécessairement inclus dans celui <strong>de</strong> g et h,<br />
c’est à dire qu’il n’y pas <strong>de</strong> variable inutile.<br />
Si (g ⇒ h) est une tautologie, alors l’ensemble <strong>de</strong>s fonctions f ′ satisfaisant (g ⇒ f ′ ⇒ h)<br />
est non vi<strong>de</strong>, et il s’écrit (g∨(h∧p)) , où p est un paramètre. On revient donc au problème<br />
ci-<strong>de</strong>ssous, et qui fait l’objet <strong>de</strong> <strong>la</strong> section suivante :<br />
(3) Calculer le graphe minimal dans l’ensemble <strong>de</strong> graphes représenté par <strong>la</strong> formule<br />
paramétrée f(⃗x,p).