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.
B.2. GRAPHE SYMÉTRISÉ 127<br />
B.2 Graphe symétrisé<br />
<strong>Une</strong> autre idée permettant <strong>de</strong> compacter le graphe <strong>de</strong> représentation est d’utiliser un type<br />
qui dénote l’échange <strong>de</strong> <strong>de</strong>ux branches. <strong>Pour</strong> toute variable x, on considère <strong>la</strong> fonction S x<br />
définie sur toute formule f par :<br />
S x (f) = f[x ← (¬x)]<br />
Suposons qu’une formule f s’écrive △(x,L,H) en forme <strong>de</strong> Shannon, alors <strong>la</strong> forme <strong>de</strong><br />
Shannon <strong>de</strong> S x (f) est △(x,H,L). Afin <strong>de</strong> conserver <strong>la</strong> négation en O(1), on va utiliser <strong>la</strong><br />
séparation en fonctions positives et négatives, et ajouter les types “+” et “−”, tels qu’ils<br />
ont été exposés pour les TDGs. <strong>Une</strong> syntaxe abstraite contenant <strong>la</strong> forme symétrisée est<br />
<strong>la</strong> suivante :<br />
< tree > ::= < type >< vertex ><br />
< vertex > ::= △(< var >,< tree >,< tree >)<br />
::= 1<br />
< type > ::= + | − | +S | −S<br />
< var > ::= x 1 | ... | x n<br />
L’interprétation <strong>de</strong> cette forme exprimée avec <strong>la</strong> forme <strong>de</strong> Shannon est <strong>la</strong> suivante :<br />
+△(x,L,H) = △(x,L,H)<br />
−△(x,L,H) = ¬△(x,L,H)<br />
+S△(x,L,H) = △(x,H,L)<br />
−S△(x,L,H) = ¬△(x,H,L)<br />
<strong>Pour</strong> assurer <strong>la</strong> canonicité d’une forme utilisant l’opérateur S, il suffit <strong>de</strong> disposer d’un<br />
critère pour déci<strong>de</strong>r <strong>la</strong>quelle <strong>de</strong>s <strong>de</strong>ux structures △(x,L,H) ou △(x,H,L) sera prise<br />
comme référence. Soit R une re<strong>la</strong>tion d’equivalence sur l’ensemble <strong>de</strong>s fonctions F, et<br />
soit ≤ R un ordre total sur F/R. <strong>Pour</strong> toute fonction f, on note f R <strong>la</strong> c<strong>la</strong>sse d’équivalence<br />
<strong>de</strong> f re<strong>la</strong>tivement à R. Afin d’obtenir une forme canonique, on peut par exemple imposer<br />
que <strong>la</strong> branche droite dénote une fonction H, telle que (H R ≤ R L R ), où L est <strong>la</strong> fonction<br />
dénotée par <strong>la</strong> branche <strong>de</strong> gauche.<br />
<strong>Une</strong> forme canonique possédant une négation en O(1) est par exemple obtenue en<br />
imposant que <strong>la</strong> branche droite dénote toujours une fonction positive, qui soit inférieure<br />
ou égale à <strong>la</strong> fonction dénotée par <strong>la</strong> branche gauche. Avec cette forme, une fonction est<br />
positive si et seulement si elle est soit <strong>de</strong> type +, soit <strong>de</strong> type +S avec <strong>la</strong> branche gauche<br />
positive (notons que c’est alors une fonction <strong>de</strong> type ++), soit <strong>de</strong> type −S avec <strong>la</strong> branche<br />
gauche négative (notons que c’est alors une fonction <strong>de</strong> type −+). Réciproquement, une<br />
fonction est négative si et seulement si elle soit <strong>de</strong> type −, soit <strong>de</strong> type +S avec <strong>la</strong> branche<br />
gauche négative (notons que c’est alors une fonction <strong>de</strong> type +−), soit <strong>de</strong> type −S avec<br />
<strong>la</strong> branche gauche positive (notons que c’est alors une fonction <strong>de</strong> type −−).<br />
<strong>Une</strong> <strong>de</strong>uxième forme canonique est obtenue en imposant qu’une fonction positive soit<br />
exclusivement dénotée soit par une structure <strong>de</strong> type +, avec une branche droite positive