• Aucun résultat trouvé

4.5.1 Présentation de la règle

Dans certaines conditions, il est possible de simplifier un automate dont l’un des états est un automate. Le sous état est alors retiré et tous ses états sont ajoutés à l’automate supérieur, les transitions qui arrivent au sous-état sont transformées pour arriver à l’état initial de l’automate retiré. Les transitions de type toSub qui arrivent à un sous état de l’automate retiré sont transformées en transition de type local et gardent leur état d’arrivée. Cette transformation ne peut donc pas s’appliquer si une transition arrive à un état historique. Cette transformation ne s’applique que pour les états dont toutes les transitions partant de l’état supprimé sont des transitions de type final (c’est-à-dire que la transition ne peut être effectuée que si l’astd de départ est dans un état final). En effet, si une transition sortante n’est pas de type final, l’astd est réécrit suivant la règle illustrée à la figure 4.1. Dans le nouvel automate, ces transitions partent de tous les états finaux de l’automate supprimé. Un traitement symétrique à celui appliqué aux transitions de typetoSubest appliqué aux transitions de type fromSub.

Un exemple de cette transformation est illustré à la figure 4.9. La seule transition sortante est la transitiont4, et elle est de type final (représenté par le point noir à son origine). La règle peut donc être appliquée. Dans l’astdrésultant de la réécriture, la transition t4, qui partait de l’étatS2, part de l’état final de S2. De la même manière la transitiont1 qui arrivait àS2 arrive à l’état initial deS2. La transitionst2 qui était de typetoSubest transformée en transition locale et arrive à l’étatS2.3où elle arrivait dans l’astd de départ. Symétriquement la transitiont5 est transformée en transition de type local et part de l’état S2.3 dans les deux astd.

4.5.2 Formalisation

Notations

Avant de définir cette règle, il est nécessaire de définir de nouvelles notations. En effet, il faut pouvoir transformer en transition locale toutes les transitions de type

Example S2.2 S2.3 S2.4 S2.1 S2 t3_1 t3_2 t3_3 t2 S1 t1 S4 t5 S3 t4 Example S2.2 S2.3 S2.4 S2.1 t3_1 t3_2 t3_3 t2 S1 t1 S4 t5 S3 t4

figure 4.9 – Un exemple de réécriture d’un automate

transitions issues de δ dans lequel toutes les transitions de type toSub qui arrivaient d’un sous état de n1 sont transformées en transitions de type local en gardant leur état d’arrivée. Cet ensemble est défini de la manière suivante :

n1δ ={hhloc, n1[, n2i, σ, φ,final?i,| hhfsub, n1, n1[, n2i, σ, φ,final?i ∈δ}

Symétriquement, l’ensemble δn2 est l’ensemble des transitions qui arrivaient à un sous état den2 et qui sont transformées en transitions locales. Cet ensemble est défini de la manière suivante :

δn2

={hhloc, n1, n2[i, σ, φ,final?i,| hhtsub, n1, n2, n2[i, σ, φ,final?i ∈δ}

Nous souhaitons également retirer de l’ensemble des transitions toutes les transi-tions qui arrivent à un ensemble d’états donné ou au sous-état d’un ensemble d’états

donnés. Soit E un ensemble d’états et δ un ensemble de transitions, on note Eδ l’ensemble défini de la manière suivante :

Eδ ={hhloc, n1, n2i, σ, φ,final?i ∈δ|n1/E}∪ {hhfsub, n1, n1[, n2i, σ, φ,final?i ∈δ |n1/ E}∪ {hhtsub, n1, n2, n2[i, σ, φ,final?i ∈δ |n1/ E}

Symétriquement, l’ensemble δE est l’ensemble δ duquel on a retiré toutes les transitions qui arrivent à un état de E ou un sous état d’un état de E. Il est défini de la manière suivante : δE ={hhloc, n1, n2i, σ, φ,final?i ∈δ |n2/ E}∪ {hhfsub, n1, n1[, n2i, σ, φ,final?i ∈δ|n2/ E}∪ {hhtsub, n1, n2, n2[i, σ, φ,final?i ∈δ|n2/ E}

Enfin, afin de vérifier si toutes les transitions partant d’un état sont finales, il faut pouvoir sélectionner les transitions finales. L’ensemble δ|(final?=true) est donc défini de la manière suivante :

δ|(final?=true) ={hη, σ, φ,final?i ∈δ|final? =true}

Formalisation de la règle

Soit un automate A1 = haut,name1,Σ1, N1, ν1, δ1,SF1,DF1, n01i dont l’un des sous-astd n1N1 est un automate (ν(n1) = haut, n1,Σ2, N2, ν2, δ2,SF2,DF2, n02i). Cette astd ne peut être supprimé que si toutes les transitions qui en partent sont des transitions finales, ce qui se traduit par la condition suivante :

Si cette condition est vérifiée, on commence par retirer toutes les transitions qui arrivent et partent de l’état à supprimer (étape 4.3 ci-dessous). Toutes les transitions de type fromSub qui partent d’un sous état de l’état n1 sont transformées en tran-sition locale, de même toutes les trantran-sitions de type toSub qui arrivent un sous état de l’état n1 sont transformées en transition locale (étape 4.4). Les transitions qui arrivaient à l’état n1 sont remplacées par des transitions qui arrivent à l’état initial den1 (étape 4.5). De même, les transitions qui partaient de l’étatn1 sont remplacées par des transitions qui partent des états finaux de n1. Si l’état final est un état final non profond (Shallow Final), la transition est une transition non finale (étape 4.6), si l’état final est un état final profond (Deep Final), la transition est une transition finale (étape 4.7). Enfin, toutes les transitions de n1 sont ajoutées à l’ensemble des transitions (étape 4.8). δ0 ={n1}−δ1−{n1} (4.3) [ n1δ1[δ1n1 (4.4) [ (δ1{n1})(n02) (4.5) [ niSF ((ni)({n1}δ1))[final? :=false] (4.6) [ njDF ((nj)({n1}δ1))[final? :=true] (4.7) [ δ2 (4.8)

Si l’état n1 est l’état initial de A1, le nouvel état initial est l’état initial de n1, sinon il reste inchangé. De même, si n1 est un état final de type deep final, les états de type deep final de ν(n1) sont ajoutées aux états de type deep final de A1 et les états de type shallow final de ν1(n1) sont ajoutés aux états de type shallow final de A1. Si n1 est un état final de typeshallow final, tous les états de ν1(n1) sont ajoutées aux états de typeshallow final deN1. Ces règles permettent de calculern001 le nouvel état initial deA1 etSF0 etDF0 les nouveaux ensembles d’état finaux. Ces calculs sont résumés dans les tableaux 4.1.

Initial n1 =n01 n1 6=n01 n00 1 n02 n01 Final n1SF1 n1DF1 n1/ SF1DF1 SF0 (SF1\{n1})∪N2 SF1SF2 SF1 DF0 DF1 (DF1\{n1})∪DF2 DF1

tableau 4.1 – Définition des états initiaux et finaux

haut,name1,Σ1∪Σ2,(N1\{n1})∪N2,({n1}−ν1)∪ν2, δ0,SF0,DF0, n001i

4.5.3 Esquisse de la preuve

Soit A1 un automate et A11 un automate dont le nom est n1 qui est un des états de A1 vérifiant les conditions permettant d’appliquer la règle. Soit A2 l’automate résultant de l’application de la règle. On cherche à prouver la bisimulation de A1 par A2. Pour cela il faut exhiber une relation R entre les états de A1 et les états de A2. Pour tout états deA11 et tout état historiqueh, on aR(hn1, h, si, s). Pour les autres états, la relation R est la relation identité.

A1 simule A2

Il faut parcourir l’ensemble des possibilités d’exécuter une transition dans A2 et vérifier que cette transition peut être exécutées dans A1. Il y a six règles d’inférences pour exécuter une transition dans un automate :

Transition de type local : Les transitions de A2 qui n’arrivent pas et ne

partent pas deA11 sont les mêmes que les transitions deA1. Elles peuvent donc être exécutées dansA1 dans les mêmes états. On ajoute ensuite quatre types de transitions locales :

Les transitions issues de la transformation d’une transition de

type fromSub ou toSub : Dans le cas des transitions de type fromSub, la transition exécutée dansA2 part de l’état correspondant au sous état de

la transitionfromSub. Le raisonnement est symétrique pour les transitions de typetoSub.

Les transitions issues de la transformation d’une transition

arri-vant à A11 : Les transitions qui arrivaient àA11 arrivent dansA2 à l’état qui était initial dans A11. Or, dans la sémantique des astd, lorsqu’une transition arrive à un état hiérarchique, elle arrive à l’état initial.

Les transitions issues de la transformation d’une transition

par-tant de A11 : Les transitions qui partaient de A11 étaient des transitions de type final (d’après la condition d’application de la règle). Dans A2 ces transitions partent des états finaux, et peuvent donc bien être exécutées dans des états équivalents à ceux de A1.

Les transitions de l’automate A11 : Les transitions locales de

l’auto-mateA11 peuvent être exécutées dans A1

Transition de type toSub (trois règles) : Les seules transitions de type

toSub qui ont été ajoutées dans les transitions deA2 sont les transitions de type

toSub de l’automate A11. Ces transitions peuvent donc être exécutées dans A1.

Transition de type fromSub : De même que pour les transitions de type

toSub, les seules transitions de type fromSub ajoutées sont les transitions de l’automate A11. Ces transitions peuvent donc être exécutées dans A1.

Transition dans un sous-astd: Les sous-astddeA2 sont soit des sous-astd

de A1 soit des sous-astd de A11. Toutes les transitions que peut exécuter un sous-astd deA2 peuvent donc être exécutées par un sous-astd de A1.

Si l’état initial de A2 est l’état initial de A11 cela signifie quen1 était l’état initial deA1. Donc l’état correspondant est initial dansA1. Sinon, l’état initial est inchangé. Si un état est final dansA2, il peut venir des états deA11 ou d’un autre état deA1. Si c’est un état de A1, c’est qu’il état final dans A1. Si c’est un état de A11 cela signifie que l’étatn1 était final. Si l’état est dans les états de type final profond, cela signifie que l’étatn1 était de type final profond, donc l’état correspondant dans A1 est final. Si l’état est dans les états de type final non profond, et qu’il était dans l’ensemble des états finaux non profond de A11, l’état A1 est dans un état final. Si c’est un état

quelconque de A11, cela signifie que n1 était un état final non profond de A1 et donc l’état correspondant est final dans A1.

A2 simule A1

On parcourt de même l’ensemble des possibilités d’exécuter une transition dans A1. Il y en a également six :

Transition de type local : Les seules transitions de A1 qui sont modifiées

sont les transitions qui partent ou arrivent à l’état n1. Les autres transitions sont conservées à l’identique dans A2. Elles peuvent être donc être exécutées dans les mêmes états. Deux types de transitions locales sont modifiées :

Les transitions arrivant à A11 : Dans la sémantique des astd, après

une telle transition, l’astd est dans l’état initial de A11. Dans A2, ces transitions ont été transformées pour arriver à l’état correspondant à l’état initial de A11.

Les transitions partant deA11 : D’après les conditions d’application de

la règles, ces transitions sont des transitions d’état final. Elles ne peuvent être exécutées que siA11 est dans un état final. Or, dansA2, ces transitions ont été transformées pour partir des états finaux de A11.

Transition de type toSub (trois règles) : Si ces transitions n’arrivent pas

à un sous état de A11, elles sont conservées dans A2. D’après les conditions d’applications de la règle, si elles arrivent à un sous-état de A11, ce sous état n’est pas un état historique. De plus la transition a été modifiée pour arriver à l’état de A2 correspondant à l’état de A11.

Transition de type fromSub : Si les transitions ne partent pas d’un état

de A11, elles sont conservées dans A2. Si elles partent d’un sous état de A2, elles sont transformées en transition de type local et partent de l’état de A2 correspondant à l’état de A11 dont elle partaient dans A1.

Transition dans un sous-astd: Les transitions qui pouvaient être exécutées

dans un sous-astdautre queA11 ne sont pas modifiées dansA2. Les transitions qui pouvaient être exécutées dans A11 sont soit des transitions de A11 et elles sont ajoutées aux transition deA , soit ce sont des transitions qui peuvent être

exécutées dans un sous-astd deA11 et les sous-astd deA11 sont ajoutés dans A2.

Si l’état initial deA1 n’est pasn1, la preuve pour l’état initial est triviale. Si l’état initial est n1, l’état initial de A2 est l’état initial de A11, et la relation est préservée. Pour les états finaux ne A1 autres que n1, la preuve est également triviale. Si n1 est un état final non profond, tous les états de A11 sont ajoutées au états finaux de A2. Sin1 est un état final profond, seuls les états finaux sont ajoutés aux états finaux de A2, en respectant le fait que ces états soient finaux profonds et finaux non profonds.