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

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).

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

Saved successfully!

Ooh no, something went wrong!