• Aucun résultat trouvé

6.2 Application des propriétés de sûreté

6.2.3 Résolution du problème

Étant donnés deux processusP et Q, afin de calculer le pgfc de ces deux processus, nous

utilisons la notion de dérivée introduite par Brzozowski dans [24]. L’idée de base dans ce calcul consiste à générer un système linéaire d’équations dont la résolution n’est autre que le processusP ⊓ Q.

Définition 6.2.5 (Dérivées). Étant donnés un processusP ∈ P et a, b deux actions distinctes

deΣ, la dérivée du processus P par rapport à l’action a, désignée par ∂a(P ) est définie d’une manière inductive en se basant sur les règles de la table6.3.

Deux fonctions ⊛ et o sont utilisées dans les règles de la table 6.3. La fonction ⊛ est définie comme suit :

: {0, 1} × P −→ P ⊛(0, P ) = 0 ⊛(1, P ) = P

TABLE6.3 – Oùα ∈ {a, a, a+} ∂ : Σ × P −→ P ∂α(0) = 0 ∂α(1) = 0 ∂α(a) = 1 ∂α(β) = 0, α 6= β ∂α(PQ) = ∂α(P ).PQ + ∂α(Q) ∂α(P + Q) = ∂α(P ) + ∂α(Q) ∂α(P.Q) = ∂α(P ).Q + o(P ) ⊛ ∂α(Q)

eto(P ) est une fonction qui retourne la valeur 1 lorsque P peut être réduit au processus

1 (processus qui termine normalement son exécution) et 0 (processus bloqué) sinon (voir la table6.2pour la définition détaillée).

Intuitivement, la dérivée d’un processus P par rapport à une action a n’est autre que

le processus qui reste à exécuter (processus résidu de P ) après avoir exécuté l’action a. En

d’autres termes, la dérivée d’un processusP par rapport à une action a est l’ensemble suivant : ∂a(P ) = {P∈ P | P a

−→ P}

Par exemple :

∂a(abc + ad + da) = ∂a(abc) + ∂a(ad) + ∂a(da) = bc + d + 0

= bc + d

δ : P → 2Σ δ(0) = ∅ δ(1) = ∅ δ(α) = {α} δ(PQ) = δ(P ) ∪ δ(Q) δ(P + Q) = δ(P ) ∪ δ(Q) δ(P.Q) = δ(P ) ∪ (o(P ) ⊗ δ(Q))

où⊗ est une fonction définie comme suit :

⊗ : {0, 1} × 2Σ −→ 2Σ

⊗(0, A) = ∅ ⊗(1, A) = A

Intuitivement, la fonctionδ(P ) définit l’ensemble des actions par lesquelles un processus P peut débuter (c.à.d. les préfixes de longueur 1 du processus P ). Ainsi, cette fonction est

définie comme suit :

δ(P ) = {a ∈ Σ | ∃P∈ P ∧ P −→ Pa ′}

Par exemple :

δ(ab) = δ(a) ∪ (o(a) ⊗ δ(b))

= {a} ∪ (0 ⊗ {b}) = {a}

δ(abc + de + f ag) = δ(abc) ∪ δ(de) ∪ δ(f ag)

En utilisant la définition de la relation d’équivalence ∼, de la fonction dérivée ∂ et de la fonction débutδ, on aboutit au résultat suivant qui nous permet d’exprimer un processus en

fonction de ses dérivées.

Proposition 6.2.6. Étant donné un processusP ∈ P, P peut être exprimé comme suit : P ∼ o(P ) + X

a∈δ(P )

a.∂a(P )

Démonstration. Nous allons procéder par induction sur le nombre d’actions par lesquelles un processusP peut débuter.

Soit H le prédicat suivant :

H(n) : P ∼ o(P ) + X a∈δ(P )

a.∂a(P ) avec |δ(P )| = n

Ce prédicat traduit le fait que cette équivalence est vraie pour les n actions atomiques par

lesquelles le processusP commence son exécution.

On veut montrer par induction mathématique que H(n) est vraie pour tout n ≥ 0.

– Base : H(0) est vraie. Cela correspond au cas d’un processus qui débute avec zéro actions (c.à.d. aucune action). Les seuls processus définis dans le langage BPA∗0,1 qui possèdent cette particularité sont les processus qui sont équivalents au processus 0 et les processus qui sont équivalents au processus1. En effet, on a :

• Pour les processus équivalents au processus 0, H(0) est vraie car : 0 ∼ o(0) + 0 = 0 • Pour les processus équivalents au processus 1, H(0) est vraie car : 1 ∼ o(1) + 0 = 1 – Hypothèse d’induction : Soitn ≥ 0. Supposons que H(n) est vraie, nous devons mon-

trer que H(n + 1) est vraie. À partir de l’hypothèse d’induction, nous avons :

P ∼ o(P ) + X a∈δ(P )

a.∂a(P ) avec |δ(P )| = n. (6.1) SoitR un processus appartenant à l’ensemble P, et b une action atomique appartenant

à l’ensembleΣ. Afin d’avoir n + 1 actions par lesquelles le processus P peut débuter, on distingue deux cas de figures :

• Cas du processus P= P + b.R : À partir des propriétés de ∼, en composant le

P + b.R ∼ o(P ) +P

a∈δ(P )a.∂a(P ) + b.R

En intégrant le processusb.R à l’intérieur de la somme, on aboutit à : P + b.R ∼ o(P ) + X

a∈δ(P +b.R)

a.∂a(P + b.R) (6.2) Par hypothèse, le processus P possède n débuts (n > 0), donc le processus P ne

termine pas tout de suite son exécution, on déduit donc que :o(P ) = 0.

Aussi, selon la définition de la fonctiono, on a : o(b.R) = o(b) × o(R) = 0.

Par conséquent :

o(P + b.R) = Max(o(P ), o(b.R)) = 0 = o(P ) (6.3) CommeP= P + b.R, on déduit de6.2et de6.3que :

P∼ o(P) + X a∈δ(P)

a.∂a(P′) avec |δ(P)| = n + 1

Ce qui montre que H(n + 1) est vraie.

• Cas du processus P= Pb.R : En utilisant les définition des fonctions o, δ et ∂, on

peut développer l’expression suivante :

o(Pb.R) +P

a∈δ(Pb.R)a.∂a(Pb.R)o(b.R) +P

a∈δ(P )∪δ(b.R)a.(∂a(P ).Pb.R + ∂a(b.R)) ∼

0 + (P a∈δ(P )a.∂a(P ).Pb) + b.R ∼ (P a∈δ(P )a.∂a(P )).Pb.R + b.R Par conséquent : o(Pb.R) + X a∈δ(Pb.R) a.∂a(Pb.R) ∼ ( X a∈δ(P ) a.∂a(P )).Pb.R + b.R (6.4) En utilisant l’hypothèse d’induction6.1, on obtient après remplacement dans6.4:

o(Pb.R) + X a∈δ(Pb.R)

a.∂a(Pb.R) ∼ P.Pb.R + b.R (6.5)

À partir de6.5, selon la propriétéB10 de la relation d’équivalence ∼ qui porte sur

l’étoile binaire de Kleene, on déduit que :

o(Pb.R) + X a∈δ(Pb.R)

CommeP= Pb.R, on déduit que :

o(P′) + X a∈δ(P)

a.∂a(P) ∼ Pavec |δ(P)| = n + 1

Ce qui montre que H(n + 1) est vraie.

– Conclusion : Par le principe d’induction généralisé, nous avons montré que H(n) est vraie pour toutn ≥ 0.

Par conséquent, nous pouvons désormais exprimer l’intersection (ou le le pgfc) de deux processus en fonction des dérivées, selon la proposition suivante :

Proposition 6.2.7. Soient deux processus P et Q, le pgfc de P et Q (voir définition6.2.3) peut être exprimé en terme de dérivées deP et Q comme suit :

P ⊓ Q ∼ o(P ) × o(Q) + X a∈δ(P )∩δ(Q)

a.(∂a(P ) ⊓ ∂a(Q))

Démonstration. Afin de démontrer cette proposition, on a d’abord besoin de prouver le lemme suivant :

Lemme 6.2.8. Étant donnés n processus P1, P2, . . . , Pn et n actions atomiques distinctes

a1, a2, . . . , an, la propriété suivante de⊓ est vérifiée : n X ai,i=1 aiPin X ai,i=1 aiQin X ai,i=1 ai(Pi⊓ Qi)

Démonstration. Nous allons démontrer ce lemme par induction sur le nombre d’actionsai. Soit H le prédicat suivant :

H(n) : n X ai,i=1 aiPin X ai,i=1 aiQin X ai,i=1 ai(Pi⊓ Qi) (6.6)

– Base : H(1) est vraie. Ceci correspond au cas suivant :

a1P1 ⊓ a1Q1 ∼ a1(P1⊓ Q1). Ceci est vrai selon les propriétés de ⊓ énoncées dans la

proposition6.2.4.

– Hypothèse d’induction : Soitn ≥ 1. Supposons que H(n) est vraie, nous devons mon-

trer que H(n + 1) est vraie.

Pn+1 ai,i=1aiPi⊓ Pn+1 ai,i=1aiQi ∼ ( Pn ai,i=1aiPi+ an+1Pn+1) ⊓ ( Pn ai,i=1aiQi+ an+1Qn+1) ∼ (Pn ai,i=1aiPi⊓ Pn ai,i=1aiQi)+( Pn ai,i=1aiPi⊓an+1Qn+1)+(an+1Pn+1⊓ Pn ai,i=1aiQi)+ (an+1Pn+1⊓ an+1Qn+1) ∼ (Pn ai,i=1aiPi⊓ Pn

ai,i=1aiQi) + (an+1Pn+1⊓ an+1Qn+1) car ∀1 ≤ i ≤ n, an+1 6= ai.

Par conséquent, on déduit que : n+1 X ai,i=1 aiPin+1 X ai,i=1 aiQi ∼ ( n X ai,i=1 aiPin X ai,i=1 aiQi) + an+1(Pn+1⊓ Qn+1) (6.7)

À partir de l’hypothèse de récurrence6.6et de l’équivalence6.7, on aboutit à : Pn+1 ai,i=1aiPi⊓ Pn+1 ai,i=1aiQi ∼ Pn ai,i=1ai(Pi⊓ Qi) + an+1(Pn+1⊓ Qn+1) ∼ Pn+1 ai,i=1ai(Pi⊓ Qi)

Ce qui montre que H(n + 1) est vraie.

– Conclusion : Par le principe d’induction généralisé, nous avons montré que H(n) est vraie pour toutn ≥ 1.

Afin de prouver la proposition6.2.7, nous allons également procéder par récurrence sur le nombre d’actions par lesquelles débute un processus.

Soit H′(n) le prédicat suivant : H′(n) : P ⊓ Q ∼ o(P ) × o(Q) + X

a∈δ(P )∩δ(Q)

a.(∂a(P ) ⊓ ∂a(Q)) avec |δ(P ) ∩ δ(Q)| = n (6.8) Ce prédicat traduit le fait que cette équivalence est vraie pour les n actions atomiques

communes par lesquelles les processusP et Q commencent leur exécution. On veut montrer

par induction mathématique que H′(n) est vraie pour tout n ≥ 0.

– Base : H(0) est vraie. Cela correspond au cas δ(P ) ∩ δ(Q) = ∅, où les deux processus ne débutent par aucune action commune.

• L’un des deux processus est équivalent au processus 1 ou au processus 0. Dans ce cas, H′(0) est vraie car :

◦ Si P ∼ 1 : 1 ⊓ Q ∼ o(1) × o(Q) + 0 ∼ o(Q). ◦ Si P ∼ 0 : 0 ⊓ Q ∼ o(0) × o(Q) + 0 ∼ 0

• Aucun des deux processus n’est équivalent au processus 0 ni au processus 1. Dans ce cas, le processusP ⊓ Q ∼ 0, on a :

H′(0) est vraie car : P ⊓ Q ∼ o(P ) × o(Q) + 0 ∼ 0.

– Hypothèse d’induction : Soitn > 0. Supposons que H(n) est vraie, nous devons mon-

trer que H′(n + 1) est vraie.

SoientR, Rdeux processus appartenant à l’ensembleP et b une action atomique ap-

partenant à l’ensembleΣ telle que : δ(P ) ∪ {b} = δ(Q) ∪ {b} = ∅.

Il est à noter que les processus P et Q partagent n actions débuts (n > 0), donc les

processusP et Q ne terminent pas immédiatement leur exécution, on déduit donc que : o(P ) = o(Q) = 0.

Afin d’avoirn + 1 actions communes par lesquelles les processus P et Q peuvent dé-

buter, on distingue trois cas de figures : • P= P + b.R et Q= Q + b.R :

En utilisant les définitions des fonctions :o, δ et ∂, on peut développer l’expression

suivante :

o(P + b.R) × o(Q + b.R) +P

a∈δ(P)∩δ(Q)a.(∂a(P + b.R) ⊓ ∂a(Q + b.R′)) ∼ 0 × 0 +P

a∈(δ(P )∪{b})⊓(δ(Q)∪{b})a.((∂a(P ) + ∂a(b.R)) ⊓ (∂a(Q) + ∂a(b.R′))) ∼

P

a∈(δ(P )⊓δ(Q))∪{b} a.((∂a(P ) + ∂a(b.R)) ⊓ (∂a(Q) + ∂a(b.R′))) ∼

P

a∈δ(P )⊓δ(Q)a.(∂a(P ) ⊓ ∂a(Q)) + (b.R ⊓ b.R′)

À partir de l’hypothèse d’induction6.8, on obtient :

o(P + b.R) × o(Q + b.R′)+ X

a∈δ(P +b.R)∩δ(Q+b.R)

a.(∂a(P + b.R) ⊓ ∂a(Q + b.R′)) ∼ (P ⊓ Q) + (b.R ⊓ b.R′)

D’une autre part, en utilisant les propriétés de⊓, nous avons :

(P + b.R) ⊓ (Q + b.R) ∼ (P ⊓ Q) + (P ⊓ b.R) + (b.R ⊓ Q) + (b.R⊓ b.R′) ∼ (P ⊓ Q) + (b.R⊓ b.R)

(6.10) CommeP= P + b.R et Q= Q + b.R, à partir de6.9et6.10, on conclut que :

P⊓Q∼ o(P)×o(Q)+ X a∈δ(P)∩δ(Q)

a.(∂a(P)⊓∂a(Q)) avec |δ(P)∩δ(Q)| = n+1

Ce qui signifie que H′(n + 1) est vérifié. • Cas des processus P= Pb.R et Q= Qb.R :

En utilisant les définitions des fonctionso, δ et ∂, on peut développer l’expression

suivante :

o(Pb.R) × o(Qb.R) +P

a∈δ(P)∩δ(Q)a.(∂a(Pb.R) ⊓ ∂a(Qb.R)) ∼ 0 +P

a∈δ(P )∪{b}⊓δ(Q)∪{b}a.((∂a(P ).P+ ∂a(b.R)) ⊓ (∂a(Q).Q+ ∂a(b.R′))) ∼

P

a∈δ(P )⊓δ(Q)a.(∂a(P ).Pb.R ⊓ ∂a(Q).Qb.R) + (b.R ⊓ b.R′)

En utilisant le lemme6.2.8, on obtient :

o(Pb.R) × o(Qb.R) +P

a∈δ(Pb.R)∩δ(Qb.R)a.(∂a(Pb.R) ⊓ ∂a(Qb.R′)) ∼ (P

a∈δ(P )a.∂a(P )).Pb.R ⊓ (Pa∈δ(Q)∂a(Q)).Qb.R+ (b.R ⊓ b.R′)

En utilisant la proposition6.2.6, on aboutit à :

o(Pb.R) × o(Qb.R′) + X

a∈δ(Pb.R)∩δ(Qb.R)

a.(∂a(Pb.R) ⊓ ∂a(Qb.R′)) ∼ (P.Pb.R ⊓ Q.Qb.R) + (b.R ⊓ b.R)

(6.11)

D’une autre part, à partir des propriétés de⊓, on a :

(Pb.R) ⊓ (Qb.R) ∼ (P.Pb.R + b.R) ⊓ (Q.Qb.R+ b.R′) ∼ (P.Pb.R ⊓ Q.Qb.R) + (P.Pb.R ⊓ b.R)

+ (b.R ⊓ Q.Qb.R) + (b.R ⊓ b.R′) ∼ (P.Pb.R ⊓ Q.Qb.R) + (b.R ⊓ b.R)

(6.12)

CommeP= Pb.R et Q= Qb.R, à partir de6.11et6.12, on conclut que :

P⊓Q∼ o(P)×o(Q′)+ X a∈δ(P)∩δ(Q)

Ce qui signifie que H′(n + 1) est vérifié.

• Cas des processus P= Pb.R et Q= Q + b.R :

En utilisant les définition des fonctions o, δ et ∂, on peut développer l’expression

suivante :

o(Pb.R) × o(Q + b.R) +P

a∈δ(P)∩δ(Q)a.(∂a(Pb.R) ⊓ ∂a(Q + b.R)) ∼ 0 × 0 +P

a∈δ(P )∪{b}⊓δ(Q)∪{b}a.((∂a(P ).P+ ∂a(b.R)) ⊓ (∂a(Q) + ∂a(b.R′))) ∼

P

a∈δ(P )⊓δ(Q)a.(∂a(P ).Pb.R ⊓ ∂a(Q)) + (b.R ⊓ b.R′)

En utilisant le lemme6.2.8, on obtient :

o(Pb.R) × o(Q + b.R) +P

a∈δ(P)∩δ(Q)a.(∂a(Pb.R) ⊓ ∂a(Q + b.R′)) ∼ (P

a∈δ(P )a.∂a(P )).Pb.R ⊓Pa∈δ(Q)(∂a(Q)) + (b.R ⊓ b.R′)

En utilisant la proposition6.2.6, on aboutit à :

o(Pb.R) × o(Q + b.R′) + X

a∈δ(Pb.R)∩δ(Q+b.R)

a.(∂a(Pb.R) ⊓ ∂a(Q + b.R′)) ∼ (P.Pb.R ⊓ Q) + (b.R ⊓ b.R′)

(6.13) D’une autre part, à partir des propriétés de⊓, on a :

(Pb.R) ⊓ (Q + b.R) ∼ (P.Pb.R + b.R) ⊓ (Q + b.R′) ∼ (P.Pb.R ⊓ Q) + (P.Pb.R ⊓ b.R)

+ (b.R ⊓ Q) + (b.R⊓ b.R′) ∼ (P.Pb.R ⊓ Q) + (b.R⊓ b.R)

(6.14)

CommeP= Pb.R et Q= Q + b.R, à partir de6.13et6.14, on conclut que :

P⊓Q∼ o(P)×o(Q)+ X a∈δ(P)∩δ(Q)

a.(∂a(P)⊓∂a(Q)) avec |δ(P)∩δ(Q)| = n+1

Ce qui signifie que H′(n + 1) est vérifié.

– Conclusion : Par le principe d’induction généralisé, nous avons montré que H(n) est vraie pour toutn ≥ 0.