• Aucun résultat trouvé

Dans cette section nous prouvons la correction de la machine abstraite générique pour des calculs de processus avec une sémantique markovienne et une méthode de simulation exacte basée sur la loi d’action de masse. La preuve est donnée en termes d’équivalence entre les CMTC sous-jacentes. Il est suffisant de montrer que la CMTC générée par la sémantique du calcul est la même que celle engendrée par la machine. Les algorithmes de simulation exacte avec les cinétiques suivant la loi d’action de masse ayant déjà été montrés équivalents à l’équation stochastique maîtresse sous- jacente, il est suffisant de montrer la correspondance avec les CMTC engendrée par une méthode de simulation donnée, ici la Méthode Directe.

6.5.1

Théorèmes Génériques de Correction

Nous définissons une fonction (P )t qui encode un processus P du calcul en un terme correspon-

dant de la machine abstraite à un temps de simulation donné t. Nous définissons également une fonction [T ] qui décode un terme T de la machine abstraite en un processus du calcul correspon- dant. Ces fonctions d’encodage et de décodage entre le calcul C et la machine CM sont établies dans la définition 6.12. La définition du décodage requiert la définition additionnelle d’une fonction processuspour le calcul instancié afin de traduire un multi-ensemble d’espèces en un processus. Ceci peut être considéré comme l’inverse de la fonction esp`eces.

Définition 6.12 (Traduction entre un processus P du calcul et un terme de machine T ).

(P )t , P ⊕ (t, ∅, ∅)

[t, S, R] , processus(S)

Pour une association d’espèces S = {I17→ i1, .., IN 7→ iN}donnée, nous considérerons également

S comme le multi-ensemble d’espèces {(I1, i1), .., (IN, iN)}.

La correction de l’encodage est établie en démontrant l’équivalence de réduction entre le calcul et la machine. Afin de préserver la correspondance, nous supposons une notion de congruence

La Simulation dans le Cadre Générique des Calculs de Processus 99 structurelle pour les termes de la machine, où les termes sont structurellement congruents au renommage des définitions près, au nettoyage des définitions inutilisées près et à la congruence structurelle des processus près. Nous supposons également que la congruence structurelle sur les termes de la machine autorise la présence d’espèces additionnelles avec une population nulle, ainsi que des réactions additionnelles avec une propension nulle. De plus, nous supposons la présence d’un environnement de définition E. Comme discuté précédemment, il suffit de prouver la correction avec la Méthode Directe (définition 6.3) de simulation stochastique, la Méthode Directe et la Méthode par Réaction Suivante sont équivalentes et connues pour être correctes. La définition 6.13 établit des fonctions utilisées par les preuves à venir.

Définition 6.13(Fonctions additionnelles utilisées par les preuves).

ens-r´eactions(S, S0) , {(I, r, I0)| (I, r, I0)∈ ens-r´eactions(S) ∧ S0= (S --- I) ] I0}

ens-r´eactions(S) , fusion([Oi | Oi ∈ r´eactions(I, eI0)∧ eS ={I} ∪ eI0])

La fonction fusion qui combine les réactions identiques multiples est définie dans la définition 6.3. Dans cette section, nous présentons une technique générique pour prouver la correction d’un calcul C équipé des fonctions esp`eces, r´eactions et processus induisant l’instanciation d’une machine abstraite CM. Pour pouvoir exploiter nos preuves génériques, les propositions suivantes doivent être démontrées au préalable :

Proposition 6.2(Correction des espèces). ∀P, I : processus(esp`eces(P )) = P et esp`eces(processus(I)) = I.

Proposition 6.3(Correction des réactions). ∀S, S0, a : processus(S)−→ processus(Sa 0) si et seule-

ment si a =P

{O∈ens-r´eactions(S,S0)}propension(O, S) et a > 0.

En supposant que ces propositions sont correctes, nous présentons maintenant les preuves génériques de validité et de complétude pour l’encodage du calcul en se basant sur la sémantique en CMTC de la machine abstraite (équation (6.2)) et la sémantique en CMTC du calcul. Comme mentionné dans la définition 6.12, nous écrivons S pour la population des espèces mais également pour le multi-ensemble d’espèces correspondant. Le terme T = (t, S, R) d’une machine abstraite est dit bien formé, noté bien-form´e(T ) si dom(R) = ens-r´eactions(S). La congruence structurelle décrite plus haut nous autorise à ignorer toute réaction O pour laquelle propension(O, S) = 0. Il est simple de montrer que (P )t est bien formé pour tout processus P et que cette propriété est

conservée par les réductions de la machine abstraite. Les théorèmes génériques de correction sont comme suit.

Théorème 6.1 (Validité générique). ∀T, T0, a : si T ∈ CM et bien-form´e(T ) et T −→ Ta 0 alors

[T ]−→ [Ta 0].

Démonstration. Admettons que T−→ Ta 0avec T = (t, S, R) et T0= (t0, S0, R0). Par définition de

la réduction de la CMTC de la machine abstraite (équation (6.2)), nous avons a = P{b,O|Tb,O

−→T0}b avec a > 0.

Si T b,O

−→ T0avec O = (I, r, I0), alors par définition de la réduction de la machine abstraite (équa-

100 Chapitre 6 de la suppression ( ) des espèces, nous avons S0= (S --- I)]I0. Par définition de la fonction suite de

la Méthode Directe (définition 6.3), nous avons également O ∈ dom(R) et b = propension(O, S) > 0. T étant bien formé, par définition de bien-form´e nous obtenons dom(R) = ens-r´eactions(S) et ainsi O ∈ ens-r´eactions(S). Car S0= (S --- I) ] I0, par définition de ens-r´eactions(S, S0), nous avons

O∈ ens-r´eactions(S, S0). Ainsi, a = P

{O∈ens-r´eactions(S,S0)}propension(O, S)avec a > 0. Donc, par la proposition 6.3 nous obtenons processus(S) a

−→ processus(S0).

Par définition de [·] nous avons [T ] = [(t, S, R)] = processus(S) et [T0] = [(t0, S0, R0)] =

processus(S0). Ainsi, [T ]−→ [Ta 0] est vérifié.

Théorème 6.2 (Complétude générique). ∀P, P0, a : si P ∈ C et P −→ Pa 0, alors (P ) t

a

−→ (P0) t0 pour t donné et un certain t0.

Démonstration. Admettons que P −→ Pa 0 avec S = esp`eces(P ) et S0= esp`eces(P0). Par la propo-

sition 6.2, nous avons processus(S) a

−→ processus(S0). Ainsi, par la proposition 6.3, nous avons

a =P

{O∈ens-r´eactions(S,S0)}propension(O, S).

Soit (P )t = (t, S, R) = T et (P0)t0 = (t0, S0, R0) = T0. Par définition de (·)t, de la fonction d’addition (⊕) et de la fonction init de la Méthode Directe (définition 6.3), nous avons dom(R) = ens-r´eactions(S) et R(O) = propension(O, S) pour chaque réaction O de dom(R). Similairement, nous avons dom(R0) = ens-r´eactions(S0) et R0(O0) = propension(O0, S0) pour chaque réaction O0

de dom(R0).

Si O ∈ ens-r´eactions(S, S0) avec O = (I, r, I0), alors par définition de ens-r´eactions nous avons

S0 = (S∪--- I) ] I0. Ainsi, par définition de l’addition (⊕) et suppression ( ) des espèces, nous

obtenons T0 = I0⊕ ((t0, S, R) I). Donc, par définition de la réduction de la machine abstraite

(équation (6.1)), nous avons T b,O

−→ T0avec b = propension(O, S). Ainsi, a = P

{b,O|T−→Tb,O 0}bavec a > 0. Donc, par la réduction de la CMTC de la machine abstraite (équation (6.2)), nous avons T −→ Ta 0. Donc (P )

t a

−→ (P )t0 est vérifié pour t donné et un certain t0.

Nous prouvons maintenant la correction de l’instanciation avec le π-calcul stochastique en mon- trant les propositions 6.2 et 6.3.

6.5.2

π-Calcul Stochastique

Afin de prouver que l’encodage du π-calcul stochastique est correct, nous nous reposons sur la congruence structurelle de tout processus à sa forme normale, comme montré dans la proposi- tion 6.1. Étant donnée la définition de esp`eces(P ) dans la définition 6.11, il découle que si P ≡ P0

alors esp`eces(P ) ≡ esp`eces(P0). Ceci montre que la conversion d’un processus et de sa forme nor-

male s’effectue sans perte d’information pour l’espèce correspondante dans la machine abstraite générique.

Démonstration de la correction des espèces. Il est trivial de voir que la proposition 6.2 est vérifiée pour le π-calcul stochastique : la fonction esp`eces convertit simplement une composition parallèle de processus (en forme normale) en un multi-ensemble d’espèces correspondant, alors que la fonction processusconvertit un multi-ensemble en une composition parallèle structurellement congruente au processus original.

La Simulation dans le Cadre Générique des Calculs de Processus 101 Démonstration de la correction des réactions. Nous savons que processus(S)−→ processus(Sa 0)est

vérifié si et seulement si a = P

{λ,w |processus(S)exp(λ),w−→ processus(S0)}λavec a > 0.

Nous écrivons indices(P, P0)pour l’ensemble {w | ∃r. P −→ Pr,w 0}. En π-calcul stochastique, les

indices w peuvent être soit un simple indice i pour un délai unaire, ou une paire d’indices (i1, i2)pour

une communication binaire ou une liaison. Étant donné un indice w, nous définissons les fonctions source(w ), cible(w) et taux(w) comme suit, où nous écrivons i ∈ I pour signifier que l’action d’indice i est présente dans le choix correspondant à l’espèce I.

source(w ) , (

I si w = i ∧ i ∈ I

I1| I2 si w = (i1, i2)∧ i1∈ I1∧ i2∈ I2

cible(w ) , P0 si source(w)exp(λ),w−→ P0

taux(w ) , exp(λ) si source(w )exp(λ),w−→ cible(P0)

Nous disons que w ≈ w0 est vrai si et seulement si source(w) = source(w0), cible(w) =

cible(w0) et taux(w) = taux(w0). Nous écrivons cls-indices(P, P0) pour l’ensemble des classes de ≈-équivalences de indices(P, P0). Nous écrivons source(

e

w ), cible(w )e et taux(w )e pour source(w), cible(w ) et taux(w) pour un certain w ∈we.

Nous observons alors que processus(S) exp(λ),w

−→ processus(S0) est vérifié si et seulement si source(w )taux(w ),w−→ cible(w ), où S0= (S ∪--- esp`eces(source(w)))]esp`eces(cible(w)). Si nous posons r´eaction(w ) = (esp`e eces(source(w )), taux(e w ), esp`e eces(cible(w )))e , il est alors clair qu’à partir de ces définitions et de la définition 6.11, nous avons :

{r´eaction(w )e |we∈ cls-indices(processus(S), processus(S0))} = ens-r´eactions(S, S0)

c.-à-d. que chaque classe de ≈-équivalence d’indices de indices(processus(S), processus(S0)) cor-

respond à une réaction particulière dans la machine abstraite. En écrivant p(S) pour abréger processus(S)et card(w )e pour le nombre d’indices danswe, nous obtenons alors :

P {λ,w |p(S)exp(λ),w−→ p(S0)} = P w∈indices(p(S),p(S0))taux(w ) = P e

w∈cls-indices(p(S),p(S0))(taux(w )e × card(w ))e

= P

{r´eaction(w )|e w∈clse -indices(p(S),p(S

0))}propension(r´eaction(w ), S)e

= P

O∈ens-r´eactions(S,S0)propension(O, S).

Ainsi, nous obtenons a = PO∈ens-r´eactions(S,S0)propension(O, S)avec a > 0.