• Aucun résultat trouvé

Théorie du Model-Checking

Définition 5.38 (Clock) Une horloge est une variable prenant ces valeurs dans IR +

Dans la suite, les lettres x, y et z seront utilisées pour représenter des variables de type clocks (horloges). Un état de cet automate définit l’état actuel de la location plus les valeurs courantes des variables clocks.

Les horloges peuvent être initialisées à zéro quand le système procède à une transition. Une fois initialisées à zéro, les variables horloges incrémentent leurs valeurs implicitement d’une unité de temps et ceci simultanément pour toutes les horloges. La valeur d’une horloge à un moment précis fournit le temps passé depuis son initialisation. Informellement, ces horloges peuvent être considérées comme des chronomètres qui évoluent indépendamment les uns des autres. Le plus important dans tous ces comportements c’est le système global qui possède quant à lui sa propre horloge appelée aussi l’horloge globale à laquelle toutes les autres horloges se réfèrent.

70

Le système évolue donc en restant carrément dans une location (état), sinon il peut se déplacer vers une autre location empruntant une transition. Le passage sur une transition est instantané est supposé ne pas prendre de temps (free of time). Les contraintes sur les horloges sont utilisées pour permettre le franchissement ou non des transitions, ce sont des gardes (guards or enabling conditions). Pour le moment et par simplicité les conditions d’autorisation (enabling conditions) sont supposées ne dépendre que des horloges, mais en réalité le problème est autre, c’est-à-dire que le passage peut dépendre aussi d’autres facteurs. Des invariants sur les horloges sont aussi utilisés pour limiter le temps qu’il faut mettre pour rester dans une location. En d’autres termes, les invariants et les conditions de passage (guards) sont des conditions utilisées sur les horloges.

Définition 5.39 (Clock constraints). Soit C un ensemble d’horloges, et soit x une horloge de C (xC) et c un nombre naturel. Les contraintes sur les horloges satisfont les règles suivantes :

x < c et x c sont des contraintes sur les horloges.

Si α est une contrainte horloge alors ¬α est aussi une contrainte horloge. Si α et β sont des contraintes horloges, alors α∧β est une contrainte horloge. Toute autre formule n’est pas une contrainte horloge.

L’ensemble des contraintes sur les horloges est dénoté Constraints(C).

Dans ce qui suit nous considérons les abréviations comme x ≥ c pour ¬ (x < c) and x = c for x ≤ c ∧ x ≥ c. Le choix de contraintes légales est très important. Nous pouvons par exemple autoriser l’addition de contraintes (e.g x < c+d | d ∈ IN) sans causer de problème. Par contre l’addition x+y ≤ 3, risque de créer un problème et le model-checking devient indécidable. Aussi, si c est un nombre réel tel que x ≤ 2π, alors le domaine ainsi utilisé sera un domaine dense (continu) et le problème devient de fait indécidable. Cependant c de préférence doit être un nombre naturel. La décidabilité ne sera pas affectée si c doit être un nombre rationnel puisque c peut être converti en un nombre naturel. Nous pouvons aussi autoriser d’autres variantes de c et à chaque fois de choisir le bon multiplicateur.

71

Figure 5.15 : Trois automates pourvus d’une seule horloge et différentes contraintes sur les transitions

Définition 5.40 (Automate temporisé) Un automate temporisé A est un sixtuplet (L, I, C, Æ, Label, inv) avec :

L, un ensemble non-vide et fini de location. I L, l’ensemble de locations initiales. C, un ensemble fini d’horloges.

• Æ⊆ L x (Constraints(C) x 2c) x L, la relation de transition L a b e l : L 2AP, une fonction d’interprétation sur L

inv : L Constraints(C), une fonction d’assignation des invariants.

Un automate temporisé peut être assimilé à une structure de Kripke équipée d’un ensemble C d’horloge. Les transitions sont étiquetées par de couple (α, C’) ou α est une contrainte sur les horloges et C’ ⊆ C est un ensemble d’horloges. Par la suite, on adoptera l’écriture l→ 'α,Cl au lieu de (1, α, C, l')∈Æ. L’interprétation intuitive de cette écriture est que l’automate peut évoluer de la location l vers la location l’ lorsque la contrainte α devient vraie. Aussi le déplacement d’une location l vers la location l’ réinitialise toute horloge de C’ à zéro. La fonction Label possède la même fonction que pour les structures de Kripke telle que vu auparavant. Finalement, la fonction inv affecte un invariant à toute location du système. Pour toute location l, inv(l) définie la durée du temps qui doit passer dans la location l. Une fois que inv(l) devienne invalide la location l doit être libérée immédiatement. Si une

72

telle situation n’est plus possible peut être qu’il n’y a plus une transition qui doit être empruntée et comme le temps passe inéluctablement, alors une telle situation est dite timelock.

Pour mieux représenter graphiquement les automates temporisés, nous adopterons les conventions suivantes. Les cercles dénoteront les locations (états) et les transitions sont représentées par des flèches. Les invariants sont écrits à l’intérieur des locations sinon sur le coté, sauf si aucune écriture n’est présente, dans ce cas la location est true dans toutes les situations. Les transitions (flèches) sont équipées d’étiquettes qui consistent d’une contrainte sur les horloges (optionnelle) et d’une autre qui représente la variable horloge qui doit être réinitialisée (optionnelle), séparées par une ligne droite. Si la contrainte sur l’horloge est égale à true et qu’aucune variable horloge ne doit être initialisée alors la transition est libre de toute indication.

Exemple 5.41 La Figure 5.15-(a) représente un automate temporisé très simple pourvu d’une seule horloge x est d’une location équipée d’une boucle. La transition peut être traversée si la valeur de x est au moins égale à 2, et quand ceci est possible l’horloge x est ré-initialisée à 0. La Figure 5.15-(b) présente un exemple d’exécution de cet automate en donnant les valeurs du temps selon x. Chaque fois que la valeur de x est au zéro, l’automate procède à un déplacement de la location l vers elle-même. Aussi compte tenu que la valeur de l’invariant qui est true sur l, ceci permet au temps de progresser sans restriction aucune.

Procédons à un petit changement en incorporant un invariant x ≤ 3 dans la location l, ceci conduit au fait que x ne pourra plus évoluer librement. Si x ≥ 2 (enabling constraint) et x ≤ 3 (invariant) la transition dans ce cas doit être traversée (Figure 5.1(c) et (d)).

Observons que le même effet ne peut pas survenir en changeant la contrainte sur l’horloge à 2 ≤ x ≤ 3 et en gardant l’invariant à true. Dans ce cas la transition de sortie ne peut être traversée que

pour le cas 2 ≤ x ≤ 3, mais ceci peut ne pas se faire en laissant passer le temps (figure 5.15-c et f). De cet exemple, il est clair que les horloges prennent des valeurs réelles continues par morceaux et la discontinuité du temps peut survenir lorsqu’une transition est traversée.

Les horloges peuvent être initialisées à des temps divers, ce qui en fait, exclu toute limite de leur différence. Ceci n’est pas possible pour le cas d’un système à temps discret puisque les valeurs des horloges sont des multiples de un click (une unité).

Example 5.42. Figure 5.16 représente l’automate temporisé d’un interrupteur. Deux locations sont tout à fait distinctes l1 = {off} et l2 = {on}, et deux variables d’horloge x et y. Au début, toutes les horloges sont initialisées à zéro.

Figure 5.16 : L’ automate temporisé d’un interrupteur

L’interrupteur peut à tout instant rester dans la position (location) on pourvu qu’il reste sur le on. Comme les deux horloges évoluent au même temps et avec le même taux, l’automate passe de la position on à la position off exactement 9 unités de temps après que l’interrupteur sera passé de off à

on. L’horloge x retient le temps depuis la dernière fois que l’interrupteur est passé à on. La transition

portant la contrainte sur l’horloge x 2 modélise la condition de passage vers la location on. La variable horloge y est utilisée pour compter le temps depuis la derrière fois que l’interrupteur est passé de off vers le on, donc, il contrôle aussi l’extinction de la lumière.

73

5.7.1.1.2 Sémantique des Automates Temporisés

L’exemple de la figure 5.16 démontre que l’automate temporisé est déterminé par : • Sa position actuelle (location)

• La valeur courante de ces horloges

En fait, l’automate temporisé est assimilé à un système à transitions étiquetées, pourvu d’un nombre infini d’états (possiblement) et d’un nombre de transitions à branchement infini (possiblement).

Définition 5.43 (Clock valuation) Une valuation d’horloge v pour un ensemble C d’horloges est la fonction v : C Æ IR+, affectant à chaque horloge xC sa valeur courante v(x).

Supposons que Val(C) dénote l’ensemble de toutes les valuations d’horloge sur C. Un état de A est la paire (l, v), ou l est une location dans A et v une valuation sur C, l’ensemble des horloges de A.

Exemple 5.44 Considérons l’automate de la Figure 5.16. Quelques états de cet automate sont les paires (off, v) telles qu’avec v(x) = v(y) = 0 et l’état (off, v') avec v'(x) = 4 et v'(y) = 13 et l’état (on, v") avec v" (x) = 2.7 and v" (y) = 13.

Nous remarquons que le dernier état n’est pas accessible.

Soit v une valuation d’horloge de C. Pour un nombre positif d, la valuation de l’horloge v+d dénote que toutes les horloges ont augmenté de d unités. Ceci est définit par (v+d)(x) = v(x)+d pour toutes les horloges x ∈ C. La valuation de l’horloge re-initialise x, et la valuation v avec l’horloge x, est définie par :



=

= v y ifif yy xx

v

in

x

reset ) 0( )

(

Exemple 5.45 Reprenons notre exemple et considérons les valuations v and v'. La valuation v+9 est définie par (v+9) (x) = (v+9) (y) = 9. Dans la valuation reset x in (v+9), l’horloge x reçois la valeur 0 et l’horloge y la valeur 9. La valuation v' sera égale à (reset x in (v+9)) + 4.

Nous pouvons maintenant donner un sens à la notion de validité pour une contrainte horloge. Ceci s’effectue exactement de la même manière que pour la logique temporelle simple en définissant une certaine relation de satisfaction |= qui est une relation entre les valuations horloges et les contraintes horloges.

Définition 5.46 (Evaluation of Block constraints) Pour tout xC, vVal(C), et soient c un nombre naturel et α, β∈ Constraints(C) nous avons:

- v |= x c iff v(x) c - v |= x < c iff v(x) < c - v |= ¬α i f f ¬ (v |= α )

- v |= α∧β i f f ( v |= α ) ( v |= β ) .

Pour la négation et la conjonction, les règles sont identiques à celles de la logique propositionnelle. Pour vérifier que x ≤ c est valide dans v, il serait alors simple de vérifier que v(x) ≤ c. Il en est de même pour x < c.

Exemple 5.47 Considérons la valuation v, v+9 et reset x in (v + 9) de l’exemple 5.42. Supposons que nous voudrions vérifier la validité de α = x 5. Il s’ensuit que v |=α, et v(x) = v(y) = 0. Nous avons ¬(v+9|= α), comme (v+9)(x) = 9 >5, il s’ensuit alors que reset x in (v+9) |= α.

74

5.7.2 Systèmes de Transitions Temporisées

L’interprétation des automates temporisés [AD90, Alu98, AH92] est définie en terme de système de transitions infinies (S, Æ), avec S, le nombre des états (paires de location et de valuation d’horloge) et Æ étant la relation de transition qui définie que le système sera en mesure d’évoluer d’un état à un autre. Cette relation de transition est tout à fait différente que celle définie pour les automates temporisés. Nous savons déjà que l’automate temporisé se déplace d’un état à un autre uniquement sous les deux conditions, à savoir (1) en traversant une transition de l’automate ou bien (2) en laissant le temps passer en restant dans la même location. On rencontre alors deux types de transitions; l’une à valeurs discrètes et l’autre à valeurs continues prenant ses valeurs dans l’ensemble des nombres réels positifs.

Définition 5.48 S o i t A = (L, I, C, Æ, Label, inv) un automate temporisé. Le système de transitions étiquetées associé à l’automate A qu’on dénote par [A], est définie par (S, I', Æ) ou

- S = { (1, v) L x Val(C) | v |= inv(1) }

- P = { ( lo, vo) | loI } e t vo( x ) = 0 pour tout x C

La relation de transition S x (IR+{*}) x S est la plus petite relation définie par les règles : 1. (1, v)

* (l', reset C' in v) si les conditions suivantes sont respectées :

(a) l α

,C'l’ (b) v |=α, et

(c) (reset C’ in v) |= (inv(l’)

2. (l, v)

d (l, v + d) , pour les valeurs de d positif et la condition suivante soit vraie: d’ d. v+d’ |= inv(1).

Définition 5.49 (Chemin) Un chemin de A est une séquence infinie s0

a0 s1

a1 s2 …. Telle que si

i

a

si+l pour tout i0 .

Définition 5.50 (Elapsed time on a path) Pour un chemin σ = s0

a0 s1

a1 s2 …et i un nombre naturel, on définie le temps écoulé entre s0 et si dénoté ∆(σ, i), le temps accumulé depuis s0 jusqu’à ce que le si eut été atteint (continu ou discret).