• Aucun résultat trouvé

Comme expliqué brièvement dans l’introduction, cette thèse se place principalement dans le cadre de la vérification de propriétés de sûreté. Rappelons succinctement qu’une propriété de sûreté consiste à spécifier qu’un système ne peut jamais atteindre une mau- vaise configuration. On appelle alors ceci un problème d’atteignabilité. Pour cela, il faut tout d’abord calculer l’ensemble des configurations atteignables par un système afin de vérifier qu’aucune mauvaise configuration n’y est présente. Le Model-Checking consiste alors à modéliser un système en séparant la modélisation de ses différentes configura- tions (ou états), et les actions permettant de passer d’une configuration à une autre

(i.e., sestransitions). Cette modélisation est appelée système état-transition. DÉFINITION 2.3.1 (Système état-transition)

Un système état-transition est un tuplehS, S0, Ri, avec :

S un ensemble (possiblement infini) d’états (ou configurations),

S0 un ensemble (possiblement infini) d’états initiaux, et

R ⊆ S × S une relation d’atteignabilité (ou fonction de transition) permettant de

décrire les transitions entre les états du système.

SoientT = hS, S0, Ri un système état-transition, et s, s0 deux états de S. Si (s, s0)

R, alors cela signifie qu’il y a une transition de s jusqu’à s0. Alors on note s R s0 si

(s, s0) ∈ R. Un état s0 est atteignable depuiss s’il existe des états s

0, s1, . . . , sk ∈ S tels

quesR s0 →Rs1 →R . . .→Rsk →Rs0. On dit alors que(s, s0) appartient à la clôture

réflexive transitive deR et ceci est noté s

s’il est atteignable depuis un état deS0. L’ensemble des états accessibles de T est noté

SRT.

A

0

A

1

R

A

2R

...

A

f

R

R

R

FIGURE 2.7 — Calcul de l’ensemble des configurations accessibles en RTMC.

Dans le cas de systèmes à ensembles d’états infinis, le premier problème difficile qui se pose est le suivant : comment représenter et manipuler des ensembles infinis d’états ? Pour résoudre ce problème récurrent en vérification, il n’existe que des solu- tions partielles. La solution proposée par le Model-Checking régulier est basée sur les langages réguliers de mots (Regular Model-Checking : RMC [Bouajjani et al., 2000]), ou sur les langages réguliers de termes ( Regular Tree Model-Checking : RTMC [Abdulla et al., 2002]).

Le Model-Checking régulier sur mots ou arbres respecte le formalisme du système état-transition. En effet, on a alors :

– un état (ou configuration) du système est représentée par un mot ou un terme, – un ensemble d’états (potentiellement infini) est représenté par un automate de mots

ou un automate d’arbres,

– et la fonction de transition (ou fonction successeur) modélisant le comportement du système à vérifier (et permettant donc de passer d’une configuration à une autre, i.e., d’un automate d’arbres à un autre) est représentée par un transducteur (dans le cas des mots), par un système de réécriture ou un transducteur d’arbres (dans le cas des arbres).

Nous utiliserons dans cette thèse les automates d’arbres comme représentation des ensembles d’états et les systèmes de réécritures en tant que fonction de transition. Le

RMC (Model-Checking régulier sur mots) et les transducteurs d’arbres seront définis

et comparés en section 3.2.1. Soit A0 l’automate d’arbres représentant l’ensemble des configurations initiales du système,R le système de réécriture représentant le compor- tement du système à modéliser etF l’alphabet du système. Dans le cadre du système état-transition, on a alors :

– S0 =L(A0) (voir figure2.7) l’ensemble des configurations initiales,

– R =→R(voir figure 2.7) la fonction de transition, et

– S représente tous les états du système donc l’ensemble des termes clos construits sur l’alphabetsF, soit l’ensemble T (F).

– SRT = R∗(L(A0)) (voir définition 2.1.20) l’ensemble des configurations acces-

sibles par ce système. L’automate "final" reconnaissant ce langage, ou une sur- approximation de ce langage, est représenté parAf sur la figure2.7.

A

0

A

f

A

0

Bad

Bad

...

...

P est v´erifi´ee par le syst`eme

P n’est pas v´erifi´ee par le syst`eme

A

f

FIGURE2.8 — Problème d’atteignabilité : l’ensemble des configurations accessibles d’un système possède-t-il des configurations interdites ?

Donnons ici formellement la définition de l’ensemble des configurations accessibles.

DÉFINITION 2.3.2 (Ensemble ou sur-ensemble des configurations accessiblesL(Af))

SoientA0un automate d’arbres etR un système de réécriture. Un automate Af dont le lan- gage contient l’ensemble des configurations accessibles depuisA0 ou une sur-approximation de cet ensemble, satisfait :L(Af)⊇ R∗(L(A0)).

Nous remarquons que le langage d’un tel automate contient le langage de tous les automates calculés précédemment grâce à la fonction de transition, soit A1

R, A2R, A3R,

. . . (voir figure2.7). Il en est de même pour chaque automate, à chaque étape du calcul. On a alorsL(A0)⊆ L(A1

R)⊆ . . . ⊆ L(Af).

Pour prouver des propriété de sûreté et ainsi répondre au problème d’atteignabilité, il faut alors vérifier qu’aucune mauvaise configuration n’appartient au langage de l’au- tomate Af. Dans le cadre de cette thèse, un problème d’atteignabilité est alors défini

formellement comme suit.

DÉFINITION 2.3.3 (Problème d’atteignabilité)

Soient A0 l’automate représentant l’ensemble des configurations initiales d’un systèmeT , et R un système de réécriture représentant le comportement de T . Alors une propriété de sûretéP consiste à vérifier qu’un ensemble de configurations donné n’est jamais accessible par T . L’ensemble de configurations interdites est ici modélisé par un ensemble de termes

Bad. Si aucun terme t∈ Bad n’est atteignable par T , alors T vérifie la propriété de sûreté P. On a alors :

T vérifie P ⇐⇒ R∗(L(A0))∩ Bad = ∅

Le problème d’atteignabilité est résumé sur la figure 2.8, où l’ensemble des configu- rations accessibles est représenté parAf, et l’ensemble des configurations interdites est

représenté parBad.

Il faut alors parvenir à calculer cet ensemble de configurations accessibles ou une sur-approximation de cet ensemble, soit ici l’automate Af, en passant par des calculs intermédiaires, i.e. des automates intermédiaires (voir A1

Ce calcul est le but de l’algorithme de complétion que nous allons décrire en section suivante.

Il est intéressant de noter que la classe des langages reconnaissables par automates d’arbres est close par intersection (∩) et cette opération s’effectue en temps polynomial pour deux automates. En effet, l’intersection entre deux automates A1 et A2 possède

une complexité en O(||A1|| × ||A2||) (où ||Ai|| est la taille de l’automate Ai [Comon

et al., 2007]). Par ailleurs, la décision du vide, consistant à déterminer si le langage d’un automate d’arbres est vide ou non, est une opération décidable s’effectuant en temps linéaire. Les automates d’arbres sont donc tout à fait adaptés pour la vérification de propriété de sûreté, puisqu’il suffit de vérifier que L(Af)∩ Bad = ∅, si Bad est un

ensemble de termes régulier.

Documents relatifs