• Aucun résultat trouvé

Suppression des transitions arrivant à un état initial

={hhloc, n1, ni, σ, φ,final?i | ∃n2· hhloc, n1, n2i, σ, φ,final?i ∈δ}∪

{hhfsub, n1, n1[, ni, σ, φ,final?i | ∃n2· hhfsub, n1, n1[, n2i, σ, φ,final?i ∈δ}

Enfin, on souhaite parfois forcer le caractère final ou non d’une transition. Soitδun ensemble de transitions. L’ensembleδ[final? :=true] est l’ensembleδdans lequel on a forcé toutes les transitions à être des transitions d’état final et l’ensemble δ[final? :=

false] est l’ensemble δ dans lequel on a forcé toutes les transitions à ne pas être des transitions d’état final. Ces deux ensembles sont définis formellement de la manière suivante :

δ[final? :=true]={hη, σ, φ,truei | ∃final?· hη, σ, φ,final?i ∈δ}

δ[final? :=false]={hη, σ, φ,falsei | ∃final?· hη, σ, φ,final?i ∈δ}

4.2 Suppression des transitions arrivant à un état

initial

4.2.1 Présentation de la règle

Les règles de transformation de la fermeture de Kleene et du choix ne sont ap-plicables que si aucune transition n’arrive à l’état initial. Il est cependant possible dans certains cas de transformer un automate dont au moins une transition arrive à l’état initial. Pour cela, il faut créer un nouvel état qui sera la copie de l’état initial précédent. Il faut ensuite faire arriver à cet état toutes les transitions qui arrivaient à

S2 S1 S1 t1 t2 t3

(a)astdde départ

S2 S1 S1 t1 t2 t3 S1b

(b) L’étatS1[ est ajouté. Les transitions qui arrivaient à

S1 arrivent à S1[ (les an-ciennes transitions sont sup-primées). S2 S1 S1 t1 t2 t3 S1b t1 t3

(c) Les transitions qui par-taient de l’état initial sont ajoutées au départ du nou-vel état créé. (Elle conservent leur état d’arrivée)

figure 4.2 – Illustration du mécanisme permettant de supprimer les transitions arrivant à l’état initial

l’état initial puis ajouter toutes les transitions qui partaient de l’état initial en rem-plaçant leur état de départ par le nouvel état créé. La transformation est montrée à la figure 4.2. Cette règle n’est pas réellement une règle de simplification mais elle est utile pour pouvoir appliquer les règles présentées ci-dessous.

4.2.2 Formalisation de la règle

Soit un automate A = haut,name,Σ, N, ν, δ,SF,DF, n0i. La règle ne s’applique que si l’état de départ est un astd élémentaire, ce qui se traduit par la condition formelle suivante :ν(n0)∈ASTDElem. Un nouvel état doit être ajouté à l’ensemble des états de l’automate. Cet état ne peut pas porter le même nom qu’un état existant. Soitn0[ le nouvel état tel queN∩ {n0[}=. L’ensemble de transitions est modifié en deux étapes : (4.1) toutes les transitions qui arrivent à l’état initial sont supprimées et remplacées par des transitions qui partent des même états mais qui arrivent à l’étatn0[ et (4.2) l’ensemble des transitions partant de l’état initial dans lequel on a remplacé l’état de départ par l’état n0[ est ajouté à l’ensemble de transitions précédemment obtenu.

δ0 = (δ\(δ{n0}))∪(δ{n0})(n0

[) (4.1)

δ00=δ0 ∪((n0[)({n0}δ0)) (4.2)

Enfin, l’état n0[ est ajouté à l’ensemble N des noms d’état et à la fonction ν qui associe un astd à chaque nom d’état. Il est également ajouté à l’ensemble des états finaux si n0 était un état final. Les ensembles SF0 et DF0 sont donc calculés de la manière suivante : SF0 = SF ∪ {n0b} (Si n0SF) SF (Sinon) DF0 = DF ∪ {n0b} (Si n0DF) DF (Sinon)

L’astd résultant est l’astd suivant :

haut,name,Σ, N ∪ {n0[}, ν∪ {n0[ 7→elem}, δ00,SF0,DF0, n0i

4.2.3 Esquisse de la preuve

Soit un automate A1 vérifiant les conditions permettant d’appliquer la règle de réécriture. Soit A2 l’automate résultant. On cherche à montrer que A1 et A2 sont équivalents au sens de la bisimulation. Il faut donc montrer que A1 simule A2 et A2 simule A1. Pour cela, il faut exhiber une relation entres les états possibles des deux astd et vérifier la définition 4. Ici la relation est la même pour les deux sens de la preuve. Dans l’astdA2, on ajoute un état possible et aucun état n’est retiré. Le nouvel état ajouté est mis en relation avec l’état initial. La relation R est donc la relation identité dans laquelle on ajoute le couple haut0, n0[, h,elemi 7→ haut0, n0, h,elemi pour tout état historique h.

A1 simule A2

L’idée de la preuve de simulation pour A1 et A2 est de parcourir toutes les pos-sibilités d’exécuter une transition dans A2 et de vérifier que cette transition peut être exécutée dans A1 entre des états vérifiant la relation R. Il y a six règles d’infé-rence (voir Annexe A.1) pour les transitions dans les automates (donc six possibilités d’exécuter une transition).

Transition de typelocal : On distingue les transitions qui partent ou arrivent

à l’état n0[ des autres transitions. Toutes les transitions qui ne partent pas et qui n’arrivent pas à n0[ sont recopiées à l’identique dans δ00. La simulation est donc immédiate. Toutes les transitions qui arrivent ou partent den0[ étaient des transitions qui partaient de n0 ou arrivaient à n0 et ces états sont en relation de simulation.

Transition de type toSub (3 règles) : Puisque l’état initial est un état

de type élémentaire, aucune transition de ce type n’arrive à l’état n0[. Il faut cependant distinguer celle qui partent de n0[ des autres. De même que précé-demment, les transitions qui ne partent pas de n0[ sont recopiées à l’identique et la simulation est immédiate, et les transitions qui partent de n0[ étaient des transitions qui partaient de n0, donc les états sont en relation.

Transition de type fromSub : Par le même raisonnement que pour les

tran-sitions de type toSub, aucune transition de ce type ne part de l’état n0[. On distingue maintenant les transitions qui arrivent à n0[ de celles qui arrivent à un autre état. Les transitions qui arrivent à un autre état sont à l’identique dans δ00. Les transitions qui arrivent à n0[ sont des transitions qui arrivaient à n0, qui est en relation de simulation avec n0[.

Transition dans un sous-astd : Puisque l’état n0[ est un état élémentaire,

aucune transition ne peut être exécutée dedans. Les autres états sont recopiés tels quels, la simulation est donc immédiate.

Il faut ensuite vérifier la relation pour les états initiaux et finaux. On a init(A1) =

init(A2) donc on a bien R(init(A1), init(A2)). De plus, si haut0, n0[, h,elemi est un état final, cela signifie que n0DFSF et donc que haut0, n0, h,elemi est final. Le reste des états finaux est identique.

A2 simule A1

On parcourt de même toutes les possibilité d’exécuter une transition dansA1et on vérifie que cette transition peut être exécutée dans A2. Les six possibilités d’exécuter une transition dans A1 sont les mêmes que dans A2 :

Transition de typelocal : Si la transition n’arrive pas àn0, elle n’est pas reti-rée de l’ensemble des transitions (donc elle est dans δ00). La simulation est donc immédiate. Si la transition arrive à n0, elle est ajoutée à l’ensemble des transi-tions dans l’étape 4.2 et arrive à l’état n0[. Les états d’arrivée de la transition sont alors en relation.

Transition de type toSub (3 règles) : Puisque l’état n0 est élémentaire,

aucune transition de ce type n’arrive à n0. Or, seules les transitions arrivant à n0 sont retirées. Toutes les transitions de type fromSub sont donc conservées dans A2.

Transition de type fromSub : Le raisonnement est le même que pour les

transitions de typelocal. Si la transition n’arrive pas àn0, elle n’est pas retirée de l’ensemble des transitions (elle est dans δ00). La simulation est donc immédiate. Si la transition arrive à n0, elle est ajoutée à l’ensemble des transitions dans l’étape 4.2 en remplaçant l’état d’arrivée par n0[. Les deux états d’arrivée sont donc en relation.

Transition dans un sous-astd : Puisque l’état n0 est un état élémentaire,

aucune transition ne peut être exécutée dedans. Les autres états sont recopiés tels quels, la simulation est donc immédiate.

Comme pour la simulation dans l’autre sens, la preuve pour les états initiaux est triviale. Pour les états finaux, puisqueSFSF0 etDFDF0, la preuve est triviale.