• Aucun résultat trouvé

3.3 Spécifications à ensembles d’acceptation convexes

3.3.1 Sémantique

Nous commençons par définir la sous-classe des ensembles d’acceptation convexes-clos :

Définition (Ensemble convexe-clos). Un ensemble d’acceptation est dit convexe-clos si pour tout X, Y ∈ Acc et Z tel que X ⊆ Z ⊆ Y , Z ∈ Acc.

Alors, étant donné un ensemble d’acceptation convexe-clos, on peut le représenter de manière optimisée. Au lieu de garder tous ses éléments, il suffit d’avoir ses éléments minimaux et maximaux (par inclusion, voir définition 29) : nous savons alors que tous les ensembles compris entre eux

appartiennent aussi à l’ensemble (théorème 32).

La relation de raffinement teste l’inclusion des ensembles d’acceptation. Nous prouvons qu’il est possible de décider de l’inclusion d’ensembles convexes-clos à partir de leurs éléments minimaux et maximaux (théorème 35).

Dans la section 3.1, nous avons vu que les spécifications à ensembles d’acceptation étaient plus expressives que divers autres formalismes. Nous réexaminons ces différents formalismes en les comparant maintenant aux spécifications à ensembles d’acceptation convexes. Celles-ci sont plus expressives que :

• les spécifications modales, théorème 37 ;

• les spécifications modales disjonctives, théorème 38 ; • les spécifications modales avec obligations, théorème 39.

Par contre, les spécifications modales booléennes étant équivalentes aux spécifications à en- sembles d’acceptation, elles ne peuvent pas toutes être représentées avec des ensembles d’acceptation convexes-clos.

3.3.2 Conjonction

Lorsque l’on calcule la conjonction de spécifications à ensembles d’acceptation, la seule opération appliquée aux ensembles d’acceptation est l’intersection. Nous prouvons d’abord que la convexité

est préservée par intersection (proposition 2) puis que l’on peut calculer les éléments minimaux et maximaux de l’intersection directement à partir des éléments minimaux et maximaux de ses opérandes (théorème 40).

3.3.3 Produit

L’opération de produit représente la principale limitation des ensembles convexes-clos, puisque l’opération appliquée aux ensembles d’acceptation durant le calcul d’un produit ne préserve pas la convexité.

0

1 2 3

a b c

Acc(0) = {{a, b}, {c}}

Acc(1) = Acc(2) = Acc(3) = {∅}

(a) S1 0 1 2 a b Acc(0) = {{a, b}} Acc(1) = Acc(2) = {∅} (b) S2 0 1 2 a b Acc(0) = {∅, {a, b}} Acc(1) = Acc(2) = {∅} (c) S1⊗ S2

Figure 3.3 : La convexité n’est pas préservée par le produit

Observons les spécifications des figures 3.3(a) et 3.3(b) et leur produit, figure 3.3(c). Les ensembles d’acceptation des deux spécifications sont clairement convexes-clos. Par contre, l’ensemble d’acceptation de l’état initial de leur produit ne l’est pas. Prenons par exemple l’ensemble {a} : il n’appartient pas à l’ensemble d’acceptation {∅, {a, b}} alors que ∅ ⊆ {a} ⊆ {a, b}.

Bien que l’on ne puisse pas définir un produit d’ensembles convexes-clos renvoyant un ensemble convexe-clos, nous pouvons tout de même exploiter l’hypothèse de convexité pour améliorer le calcul de l’ensemble d’acceptation du produit, qui peut ne pas être convexe-clos (théorème 41).

3.3.4 Quotient

Le quotient est probablement l’opération qui gagnera le plus à utiliser des ensembles convexes- clos, puisque l’ensemble d’acceptation calculé par le quotient :

Acc1/Acc2 = {X | ∀X2 ∈ Acc2, X∩ X2∈ Acc1}

a une explosion exponentielle. En effet, il faut énumérer tous les ensembles X d’actions et tester si leur intersection avec les éléments de Acc2 est dans Acc1, ce qui donne une complexité de

O(2|Σ|× | Acc2| × | Acc1|).

Nous prouvons que si Acc1 et Acc2 sont convexes-clos, l’ensemble d’acceptation obtenu par

quotient l’est aussi (proposition 3) puis nous définissons une opération calculant les éléments minimaux et maximaux de l’ensemble d’acceptation du quotient à partir des éléments minimaux et maximaux de Acc1 et Acc2 (théorème 42).

3.3.5 Alphabets dissemblables

Enfin, nous étudions les opérations d’extension d’alphabet et prouvons qu’elles préservent la convexité (proposition 6) et que les éléments minimaux et maximaux des ensembles d’acceptation

3.3. Spécifications à ensembles d’acceptation convexes 127 étendus peuvent être calculés directement à partir des éléments minimaux et maximaux de l’ensemble d’acceptation initial (théorème 43).

3.3.6 Mécanisation Coq

Les preuves des théorèmes des sections précédentes, en particulier celles sur le quotient, sont assez complexes. Cependant, elles ne font appel qu’à des concepts assez simples de théorie des ensembles. Aussi, nous avons souhaité utiliser des techniques de preuve assistée par ordinateur pour s’assurer de la validité de nos résultats. Pour cela, nous avons choisi d’utiliser l’assistant de preuves Coq, avec la bibliothèque MSet pour la représentation des ensembles. Nous avons défini en Coq les notions d’ensemble d’acceptation et d’ensemble d’acceptation convexe-clos, défini les opérations de conjonction, produit, quotient ainsi que les extensions faible et forte sur ces deux formalismes et prouvé les différents théorèmes des sections 3.3.1 à 3.3.5.

3.3.7 Non déterminisme

Dans les sections précédentes, nous n’avons étudié que des spécifications déterministes. Il y a aussi une théorie de spécification non déterministe basée sur des ensembles d’acceptation [BDF+13, BFK+14] ; il pourrait donc être intéressant de voir si l’utilisation d’ensembles convexes-

clos pourrait également améliorer l’efficacité des opérations dans le cas non déterministe.

Tout d’abord, alors que les spécifications modales disjonctives, les spécifications modales avec obligations, les spécifications à ensembles d’acceptation convexes et les spécifications à ensembles d’acceptation ont une expressivité strictement croissante dans le cas déterministe, l’ajout du non déterminisme met à plat cette hiérarchie : [BDF+13, BFK+14] prouve qu’avec le non déterminisme,

les spécifications modales disjonctives sont équivalentes aux spécifications à ensembles d’acceptation. Nous pouvons donc conjecturer qu’une théorie de spécification basée sur des ensembles convexes- clos serait aussi expressive que les spécifications à ensembles d’acceptation (et que les spécifications modales disjonctives).

De plus, les traductions entre spécifications modales disjonctives et spécifications à ensembles d’acceptation causent des explosions exponentielles dans les deux sens [BFK+14]. En conséquence,

certaines opérations, bien que possibles en théorie, sont inutilisables en pratique. Par exemple, [BDF+13, BFK+14] définit un quotient sur les spécifications à ensembles d’acceptation, mais pas

sur les spécifications modales disjonctives ; le quotient de deux spécifications modales disjonctives peut être calculé en les traduisant en spécifications à ensembles d’acceptation, puis en appliquant le quotient et enfin en traduisant le résultat en spécification modale disjonctive — chaque étape ayant une explosion exponentielle. D’un autre côté, une théorie de spécification basée sur des ensembles convexes-clos pourrait offrir des opérations avec une complexité moindre. Nous savons que dans le cas déterministe, la traduction d’une spécification modale disjonctive en spécification à ensembles d’acceptation convexes n’a pas d’explosion exponentielle alors qu’il y en a une dans la traduction en spécification à ensembles d’acceptation ; nous conjecturons qu’il y a un gain similaire dans le cas non déterministe.

Cependant, l’ajout de non déterminisme à des ensembles d’acceptation convexes-clos n’est pas une extension simple et directe de nos résultats sur les spécifications déterministes. En particulier, il faudrait adapter la notion de convexité sur les ensembles puisque les ensembles d’acceptation des spécifications non déterministes ne contiennent pas juste des actions, mais des paires contenant l’action et l’état destination de la transition correspondante. De plus, les opérations sur les spécifications non déterministes ont des définitions bien plus complexes. Par exemple, alors

que l’ensemble d’acceptation d’un état (q1, q2) du quotient de deux spécifications à ensembles

d’acceptation déterministes est donné par une seule formule ({X | ∀X2 ∈ Acc2(q2), X ∩ X2 ∈

Acc1(q1)}), le quotient de [BDF+13, BFK+14] part de la même idée, mais avec un algorithme plus

complexe qui requiert plusieurs définitions intermédiaires (voir les objets α, γ, πa, pta, pt dans leur

article). S’assurer qu’une telle opération préserve la convexité, puis trouver un algorithme optimisé n’utilisant que les éléments minimaux et maximaux d’un ensemble d’acceptation convexe-clos pour obtenir le même résultat semble être une tâche assez difficile.

Chapitre 4

Spécifications à ensembles

d’acceptation marquées

Nous présentons maintenant la seconde principale contribution théorique de cette thèse : une extension des spécifications à ensembles d’acceptation permettant d’exprimer des propriétés d’atteignabilité. Nous commençons par donner la sémantique de ce nouveau formalisme puis nous montrons comment étendre les opérations de conjonction, produit et quotient sur les spécifications à ensembles d’acceptation à ce nouveau formalisme tout en préservant les propriétés d’atteignabilité, c’est-à-dire l’absence d’interblocages. Ce formalisme et l’opération de quotient, qui est la plus difficile à définir, ont été présentés dans [VR15b].

4.1

Sémantique

Les formalismes que nous avons étudiés jusqu’à présent — spécifications modales ou à ensembles d’acceptation, convexes ou non — expriment tous des propriétés locales : dans chaque état de la spécification, nous indiquons quelles transitions ou quels groupes de transitions sont requis, autorisés ou interdits. Mais nous pourrions vouloir exprimer des contraintes non pas juste sur les transitions partant de chaque état, mais globalement sur les chemins de chaque modèle.

Prenons par exemple la spécification à ensembles d’acceptation donnée dans la figure 4.1 : il s’agit d’un serveur recevant une donnée, calculant une valeur à partir de cette donnée et la retournant. On peut imaginer que ce serveur puisse avoir besoin de davantage de ressources ; par exemple, si la donnée en entrée est trop grande, il peut avoir besoin de plus de mémoire. Une manière d’exprimer cela est d’ajouter une transition optionnelle à partir de l’état 1 permettant de demander davantage de ressources, comme présenté dans la figure 4.2. Ceci autorise des modèles comme celui de la figure 4.3(a) qui demande des ressources supplémentaires avant de calculer le résultat. Cependant, les modèles peuvent aussi demander des ressources, peut-être même de manière infinie, sans jamais les utiliser, comme illustré dans la figure 4.3(b). Nous pourrions essayer de changer l’ensemble d’acceptation de l’état 1 de la spécification, mais nous ne pourrons jamais

0 donnée 1 résultat 2

Acc(0) = {{donnée}} Acc(1) = {{résultat}} Acc(2) = {∅}

0 donnée 1 2 ressources

résultat

Acc(0) = {{donnée}}

Acc(1) = {{résultat}, {ressources}, {résultat, ressources}} Acc(2) = {∅}

Figure 4.2 : Le serveur, autorisé à demander des ressources supplémentaires

0 1 10 2 donnée ressources résultat (a) 0 1 10 2 donnée résultat ressources ressources (b)

Figure 4.3 : Modèles de la spécification de la figure 4.2

autoriser les modèles à demander des ressources supplémentaires un nombre quelconque de fois tout en les forçant à finir par envoyer un résultat.

Pour exprimer ce type d’exigences, il faut pouvoir exprimer des contraintes non pas sur les transitions d’un état particulier, mais sur les chemins. Une manière de faire cela est d’étendre le formalisme de spécification avec des états marqués. Alors, les modèles doivent avoir un état marqué atteignable à partir de tout état. Une extension des spécifications modales avec des états marqués a été introduite dans [CR12]. Nous combinons les spécifications à ensembles d’acceptation avec des états marqués afin de former des spécifications à ensembles d’acceptation marquées. Pour notre exemple, nous pouvons utiliser une spécification à ensembles d’acceptation marquée et marquer le dernier état, comme indiqué dans la figure 4.4 (les états marqués sont entourés deux fois), ce qui garantit qu’il sera finalement atteint dans tous les modèles de la spécification. Ainsi, l’automate de la figure 4.3(a) est un modèle de cette spécification à ensembles d’acceptation marquée car il satisfait les contraintes de la spécification à ensembles d’acceptation sous-jacente et l’état marqué 2 est atteignable depuis n’importe quel état. D’un autre côté, l’automate de la figure 4.3(b) n’est pas un modèle de la spécification puisqu’il n’est pas possible d’atteindre l’état 2 à partir de 10.

Dans cet exemple, l’ajout de la notion d’état marqué nous a permis d’exprimer une propriété de terminaison : l’état final 2 doit être atteignable à partir de tout autre état. Nous pouvons aussi utiliser les états marqués pour exprimer des propriétés de vivacité. Nous pourrions par exemple modifier notre serveur pour lui permettre de répondre à plusieurs requêtes, comme indiqué dans la figure 4.5 : l’état initial marqué correspond à un point devant être atteignable infiniment souvent.

La définition des spécifications à ensembles d’acceptation marquées est une simple extension des spécifications à ensembles d’acceptation définies dans le chapitre précédent : nous ajoutons seulement un ensemble d’états marqués F ⊆ Q (définition 32). De même, nous étendons les automates avec des états marqués (définition 33). Un automate marqué est dit terminant si pour

0 donnée 1 2

ressources résultat

Acc(0) = {{donnée}}

Acc(1) = {{résultat}, {ressources}, {résultat, ressources}} Acc(2) = {∅}

4.2. Conjonction 131 0 1 donnée ressources résultat Acc(0) = {{donnée}, ∅}

Acc(1) = {{résultat}, {ressources}, {résultat, ressources}} Figure 4.5 : Le serveur pouvant répondre à plusieurs requêtes

tout état r, il y a un état marqué parmi ses successeurs (définition 35). Alors, un automate marqué est modèle d’une spécification à ensembles d’acceptation marquée si et seulement s’il est terminant, est modèle de la spécification à ensembles d’acceptation sous-jacente et que ses états marqués correspondent à des états marqués dans la spécification (définition 36). De manière similaire, nous étendons la notion de raffinement (définition 37) et prouvons qu’il est thorough (théorème 44).

4.2

Conjonction

L’opération de conjonction sur les spécifications à ensembles d’acceptation marquées est une extension directe de l’opération de conjonction sur les spécifications à ensembles d’acceptation avec comme ensemble d’états marqués le produit cartésien des ensembles d’états marqués des spécifications (définition 38). L’ensemble des modèles de cette conjonction est bien l’intersection des ensembles de modèles des spécifications (théorème 46).

4.3

Produit

Nous avons défini le produit de spécifications à ensembles d’acceptation et souhaiterions l’étendre aux spécifications à ensembles d’acceptation marquées. Cependant, les contraintes d’atteignabilité ne sont, de manière générale, pas préservées par le produit. Ainsi, la figure 4.6 montre un contre- exemple : M1 |= S1 et M2 |= S2, mais le produit M1× M2 est composé d’un unique état non

marqué, ce qui fait qu’il n’est pas possible d’atteindre un état marqué.

0 0 b (a) M1 0 1 2 a b Acc(0) = {{b}, {a, b}} Acc(1) = Acc(2) = {∅} (b) S1 0 0 a (c) M2 00 10 20 a b

Acc(00) = {{a}, {a, b}}

Acc(10) = Acc(20) = {∅}

(d) S2

Figure 4.6 : L’atteignabilité n’est pas préservée par produit

Ceci nous amène à d’abord considérer le problème suivant : étant données deux spécifications à ensembles d’acceptation marquées, peuvent-elles être implémentées de manière concurrente, c’est-à-dire de telle sorte que le produit de n’importe quel modèle de la première spécification avec n’importe quel modèle de la seconde terminera ?

Un automate ne termine pas s’il contient un deadlock — un état non marqué sans transition sortante — ou un livelock — un groupe d’états connectés non marqués sans aucune transition vers d’autres états. Nous considérerons d’abord le cas des produits sans deadlocks dans la prochaine

section, puis le cas des produits sans livelocks dans la suivante. Nous définirons ensuite un critère sur les spécifications à ensembles d’acceptation marquées, appelé atteignabilité compatible, qui est un prérequis pour le produit de spécifications à ensembles d’acceptation marquées.

Documents relatifs