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.
3.3.<br />
VÉRIFICATION DE PROPRIÉTÉS TEMPORELLES 75<br />
formalisme <strong>de</strong> <strong>la</strong> logique temporelle arborescente. Cette technique <strong>de</strong> vérification requiert<br />
<strong>la</strong> construction partielle ou totale du graphe <strong>de</strong> transition <strong>de</strong> <strong>la</strong> machine, et est basée sur<br />
<strong>de</strong>s algorithmes <strong>de</strong> parcours <strong>de</strong> ce graphe <strong>de</strong> transition. Cette technique est limitée par<br />
<strong>la</strong> taille du graphe <strong>de</strong> transition, car coûteuse en mémoire et en temps <strong>de</strong> par l’explosion<br />
combinatoire.<br />
Nous montrons ici que les techniques <strong>de</strong> manipu<strong>la</strong>tions symboliques que nous avons<br />
décrites dans les <strong>de</strong>ux premiers chapitres peuvent être utilisées pour <strong>la</strong> vérification <strong>de</strong><br />
formules temporelles, sans qu’aucun diagramme d’état ne soit construit. Nous décrivons<br />
d’abord <strong>la</strong> syntaxe et <strong>la</strong> sémantique <strong>de</strong>s formules CTL à vérifier, et le type <strong>de</strong> machines<br />
qui seront traitées. Puis nous donnons les algorithmes <strong>de</strong> vérification et nous montrons<br />
comment ceux-ci s’appuient sur l’opération Pre.<br />
3.3.1 Syntaxe et sémantique <strong>de</strong> CTL<br />
Le machine séquentielle M que nous traitons est une machine <strong>de</strong> Moore incomplètement<br />
spécifiée. Elle est définie par un 6–uplet (n,m,r,ω,δ,Init), où ω ne dépend que <strong>de</strong> l’état<br />
<strong>de</strong> <strong>la</strong> machine.<br />
On suppose que <strong>la</strong> formule (∀⃗y ∃⃗x Cns(⃗y,⃗x)) est une tautologie, c’est à dire que tout<br />
état possè<strong>de</strong> au moins un successeur. Ceci n’est pas restrictif, puisque <strong>la</strong> plupart <strong>de</strong>s<br />
formules CTL n’ont aucun sens sur <strong>de</strong>s états sans successeur [40]. Si cette condition n’est<br />
pas vérifiée, <strong>la</strong> fonction λ⃗y.(∀⃗x ¬Cns(⃗y,⃗x)) est <strong>la</strong> fonction caractéristique <strong>de</strong> l’ensemble<br />
EtatPuit <strong>de</strong>s états sans successeur. Soit VersEtatPuit l’ensemble <strong>de</strong>s états sans successeur<br />
ou conduisant nécessairement à un état sans successeur. L’ensemble VersEtatPuit est<br />
l’ensemble <strong>de</strong>s états satisfaisant <strong>la</strong> formule CTL AF(EtatPuit), et peut donc se calculer<br />
par une équation <strong>de</strong> point fixe, comme on le verra ci-<strong>de</strong>ssous. Le nouveau domaine à<br />
considérer pour <strong>la</strong> fonction δ est alors λ⃗y.λ⃗x.(¬VersEtatPuit(⃗y)∧Cns(⃗y,⃗x)).<br />
CTL permet d’exprimer <strong>de</strong>s propriétés sur les états et les transitions d’une machine<br />
séquentielle [40]. Les formules temporelles considérées pour <strong>la</strong> vérification sont<br />
les formules d’état <strong>de</strong> CTL, qui décrivent <strong>de</strong>s propriétés re<strong>la</strong>tives aux états <strong>de</strong> <strong>la</strong> machine.<br />
Les formules d’état <strong>de</strong> CTL et leur sémantique vis-à-vis d’une machine <strong>de</strong> Moore<br />
M = (n,m,r,ω,δ,Init) sont les suivantes:<br />
1. y 1 ,y 2 ,...,y n ,z 1 ,...,z r sont <strong>de</strong>s formules d’état. <strong>Pour</strong> tout état ⃗y <strong>de</strong> <strong>la</strong> machine,<br />
⃗y |= y k si et seulement si y k = 1. ⃗y |= z k si et seulement si <strong>la</strong> valeur <strong>de</strong> <strong>la</strong> k–ième<br />
composante <strong>de</strong> ω(⃗y) est 1.<br />
2. Si f et g sont <strong>de</strong>s formules d’état, alors (¬f), (f ∧g), (f ∨g), (f ⇔ g), et (f ⇒ g)<br />
sont <strong>de</strong>s formules d’état. Les connecteurs logiques ont leur sens usuel, par exemple<br />
s |= (f ∧g) si et seulement si s |= f et s |= g.<br />
3. Si f est une formule d’état, alors EX(f) et AX(f) sont <strong>de</strong>s formules d’état. <strong>Pour</strong><br />
tout état ⃗y, ⃗y |= EX(f) si et seulement si il existe une entrée ⃗x acceptée par <strong>la</strong><br />
machinetellequeδ(⃗y,⃗x) |= f. Ondéfinit<strong>la</strong>formuleAX(f)parAX(f) = ¬EX(¬f).