• Aucun résultat trouvé

6.3 Application des propriétés spécifiables par les automates d’édition

6.3.2 Processus pgfc dans EBPA ∗ 0,1

L’objectif principal de cette approche algébrique est comme suit :

À partir d’un programme et d’une propriété de sécurité spécifiable par un automate d’édition, il s’agit de générer un nouveau programme qui satisfait cette propriété et qui est conforme au programme d’origine. Cette approche, qui est basée sur le principe de réécriture de pro-

grammes, doit satisfaire les critères de correction et de transparence. Pour ce faire, nous avons suivi le même principe adopté dans l’approche appliquant les propriétés de sûreté. Néanmoins, nous avons adapté les définitions aux besoins particuliers qu’engendre l’édition des actions.

Dans cette approche, les propriétés de sécurité et les programmes sont exprimés dans le même langage (EBPA∗0,1). Néanmoins, la nature de leur comportement diffère, ce qui ne permet pas de les confondre comme c’était le cas dans la version traitant les propriétés de sûreté. En effet, un processus spécifiant une propriété peut accepter, supprimer ou insérer des actions alors qu’un processus spécifiant un programme ne peut qu’accepter des actions. Pour cette raison, nous avons ajuster la définition du pgfc, afin d’intégrer cette différence inhérente à la gestion de l’historique des actions suspendues. Nous supposons que le pgfc de deux propriétés est une propriété, que le pgfc d’un programme et d’une propriété est un programme et que le pgfc de deux programmes est un programme.

Formellement, le pgfc de deux processus appartenant au langage (EBPA0,1) est défini comme suit :

Définition 6.3.2 (Plus grand facteur commun (pgfc) ). SoientP et Q deux processus. Le pgfc

deP et Q, qu’on désigne par P ⊓λ

τQ (τ représente l’historique et λ est un paramètre indiquant la nature des deux processusP et Q ), est un processus R tel que les conditions suivantes sont

vérifiées :

– Siλ = • (P et Q sont deux propriétés ou deux programmes),

le processusR = P ⊓

τ Q tel que : (1) R ⊑ P

(2) R ⊑ Q

(3) Pour tout processusRsiR⊑ P et R⊑ Q alors R⊑ R.

– Siλ = ◦ (P est un programme et Q est une propriété),

le processusR = P ⊓τ Q tel que : (4) R ⊑ τ.P

(5) R ⊑ τ.Q

Nous supposons que si l’historiqueτ = a1...an alors la séquenceτ= a−1...an. Dans le cas où l’historique est vide (τ = ε), la séquence τest également vide.

Le paramètreλ est égal à la constante • si les deux processus impliqués dans le calcul du

pgfc sont des propriétés, sinon il est égal à la constante◦ (le cas d’un programme et d’une propriété). Aussi,λ aura comme valeur la constante ⋆ lorsqu’il n’y a aucune restriction sur la

nature des processus.

Par conséquent, le problème consistant à appliquer une propriété de sécuritéφ à un pro-

grammeP revient à trouver le processus P ⊓

τ φ, le pgfc de P et φ. Intuitivement, il s’agit de générer le processus valide qui engendre toutes les traces communes au programme et à la propriété, ou de générer la propriété commune (propriété de consensus), lorsqu’il s’agit de composer deux propriétés de sécurité. Ci-après, nous énonçons les propriétés relatives à l’opérateur⊓λ

τ.

Proposition 6.3.3. SoientP , P, Q et R quatre processus. Les propriétés suivantes sont vé-

rifiées : P ⊓⋆ τ 0 ∼ 0 (A) P ⊓⋆ τ P ∼ P (B) P ⊓⋆ τ Q ∼ Q ⊓⋆τ P (C) a.P ⊓⋆ τ a.Q ∼ a.(P ⊓⋆τ Q) (D) a.P ⊓τ a.Q ∼ ε.(P ⊓τ.aQ) (E) a.P ⊓τ a.Q ∼ a.(P ⊓τQ) (F ) a.P ⊓τ a+.Q ∼ τ.a.(P ⊓εQ) (G) a.P ⊓τ a+.Q ∼ a+.(P ⊓τQ) (H) a+.P ⊓τ a+.Q ∼ a+.(P ⊓τQ) (I)

a.P ⊓τ a+.Q ∼ a.(P ⊓τ Q) (J) a.P ⊓τ a.Q ∼ a.(P ⊓τ Q) (K) a.P ⊓⋆ τ b.Q, ∼ 0 (L) P ⊓⋆ τ (Q + R) ∼ P ⊓⋆τ Q + P ⊓⋆τ R (M) (P ∼ P) → P ⊓ τ Q ∼ P′⊓⋆τ Q (N)

Démonstration. Dans ce qui suit, nous prouvons les propriétés les plus importantes. Les preuves des autres propriétés sont soit triviales soit facilement déductibles des preuves pré- sentées ci-après.

Preuve de la propriété (D) :a.P ⊓⋆

εa.Q ∼ a.(P ⊓⋆ε Q).

Dans ce cas, on distingue trois possibilités :P, Q sont deux propriétés ou P, Q sont deux

programmes ouP est un programme et Q une propriété. Dans tous les cas, l’item (D) décrit le

cas d’acceptation pour les processusP et Q. Ainsi, il n’y a aucun historique à considérer, ce

qui signifie queτ = ε. Par conséquent, les conditions de la définition6.3.2sont considérées indépendamment du type des processusP et Q (c.à.d. programme ou propriété) comme suit :

– Premièrement, on prouve quea.(P ⊓⋆

εQ) ⊑ a.P ⊓⋆εa.Q . Selon la définition de⊓ ε, on a : (1) a.P ⊓⋆ εa.Q ⊑ a.P (2) a.P ⊓⋆ εa.Q ⊑ a.Q

(3) Pour tout processusR.R⊑ a.P et R⊑ a.Q, on a R⊑ a.P ⊓ ε a.Q. Il est simple de voir que :a.(P ⊓⋆

εQ) ⊑ a.P et a.(P ⊓⋆εQ) ⊑ a.Q. En effet, après avoir exécuté l’actiona, le processus a.(P ⊓⋆

εQ) est réduit au processus P ⊓⋆εQ qui est par définition plus restrictif queP et Q.

Puisquea.(P ⊓⋆

a.(P ⊓⋆

ε Q) ⊑ a.P ⊓⋆εa.Q .

– Deuxièmement, on prouve quea.P ⊓⋆

εa.Q ⊑ a.(P ⊓⋆εQ) . Selon la définition de⊓ ε, on a : (4) a.P ⊓⋆ εa.Q ⊑ a.P (5) a.P ⊓⋆ εa.Q ⊑ a.Q

À partir de (4) et (5), on peut déduire que toutes les séquences qui peuvent être exécu- tées par le processusa.P ⊓⋆

ε a.Q sont de la forme σ = a.σ′. Autrement dit, toutes les séquences exécutables par les processusa.P et a.Q doivent débuter par l’action a.

Selon les conditions (4), (5) et la définition6.2.1de⊑, on a : ∀σ. si a.P ⊓⋆

εa.Q, ε σ

։R, τ′ alorsa.P, ε։σ P, τ1′ eta.Q, ε

σ ։Q, τ2′1. Puisqueσ = a.σ, on a : P, ε σ ′ ։P, τ′ 1 etQ, ε σ′ ։Q, τ′ 2(cara.P, ε a ։P, ε et a.Q, ε։a Q, ε). Par conséquent,P ⊓⋆ εQ σ′ ։P

τQ′. En préfixant par l’actiona les processus à droite et à gauche du symbole։ ainsi que la séquence exécutée, on obtient :

a.(P ⊓⋆ ε Q)

a.σ

։ a.(P τQ′). Puisqueσ = a.σ, on aboutit à :

a.(P ⊓⋆ ε Q)

σ

։a.(P τQ′)

Cela signifie que le processusa.(P, ε ⊓⋆

εQ, ε) peut exécuter la séquence σ. Ainsi, toute séquenceσ pouvant être exécutée par le processus a.P ⊓⋆

εa.Q peut être exécutée par le processusa.(P ⊓⋆

εQ).

Par conséquent, on conclut que :a.P ⊓⋆

εa.Q ⊑ a.(P ⊓⋆εQ).

1. En effet, ces conditions sont plus restrictives que celles de la définition6.2.1. Il est évident qu’en prouvant nos condition, on prouve implicitement les conditions de la définition6.2.1’.

Preuve de la propriété (E) :a.P ⊓

τ a.Q ∼ ε.(P ⊓τ.aQ).

Avant de détailler cette preuve, il est important de rappeler que dans notre contexte d’ap- plication de la sécurité, toute propriété se doit de supprimer (suspendre) toutes les actions critiques jusqu’à l’identification d’un préfixe valide.

La propriété à prouver est équivalente à :a.P ⊓

τ a.Q ∼ (P ⊓τ.aQ). Selon la definition de⊓◦

τ, les propriétés suivantes sont vérifiées poura.P ⊓τa.Q : (1) a.P ⊓

τa.Q ⊑ τ.a.P

(2) a.P ⊓

τa.Q ⊑ τ.a.Q

(3) Pour tout processusR.R⊑ τ.a.P et R⊑ τ.a.Q on a : R⊑ a.P ⊓

τ a.Q

Aussi, selon la definition de⊓◦

τ, les conditions suivantes sont vérifiées pourP ⊓τ.aQ : (4) P ⊓

τ.aQ ⊑ τ.a.P (5) P ⊓

τ.aQ ⊑ τ.a.Q

(6) Pour tout processusR.R⊑ τ.a.P et R⊑ τ.a.Q on a : R⊑ P ⊓

τ.a.Q PuisqueP ⊓

τ.aQ satisfait (4) et (5) alors de (3) on déduit que : (7) P ⊓

τ.aQ ⊑ a.P ⊓τ a.Q

En outre, puisquea.P ⊓

τ a.Q satisfait (1) et (2) alors de (6)on déduit que :

(8) a.P ⊓

τa.Q ⊑ P ⊓τ.aQ

À partir de (7) et (8), on conclut que :a.P ⊓

τ a.Q ∼ (P ⊓τ.aQ).

Preuve de la propriété (G) :a.P ⊓

τ a+.Q ∼ τ.a.(P ⊓εQ). Selon la définition de⊓◦

(1) a.P ⊓

τa+.Q ⊑ τ.a.P

(2) a.P ⊓

τa+.Q ⊑ τ.a+.Q, puisque τ.a+.Q ∼ τ.a.Q ( qui peut être déduite facilement en utilisant les règles de la sémantique opérationnelle du tableau6.10), on obtient :

a.P ⊓

τa+.Q ⊑ τ.a.Q

(3) Pour tout processusRtel queR⊑ τ.a.P et R⊑ τ.a+.Q, on a : R⊑ a.P ⊓

τa+.Q

En plus, les propriétés suivantes sont satisfaites parτ.a.(P ⊓

εQ) : (4) τ.a.(P ⊓

εQ) ⊑ τ.a.P (5) τ.a.(P ⊓

εQ) ⊑ τ.a.Q

(6) Pour toutR.R⊑ τ.a.P et R⊑ τ.a.Q, on a : R⊑ τ.a.(P ⊓

εQ) Puisqueτ.a.(P ⊓

ε Q) satisfait (4) et (5), alors en se basant sur (3) on a : (7) τ.a.(P ⊓

εQ) ⊑ a.P ⊓τ a+.Q

En plus, commea.P ⊓

τ a+.Q satisfait (1) et (2), alors en se basant sur (6) on a :

(8) a.P ⊓

τa+.Q ⊑ τ.a.(P ⊓εQ)

À partir de (7) et (8), on déduit alors que :

a.P ⊓

τ a+.Q ∼ τ.a.(P ⊓εQ).

Preuve de la propriété (I) :a+.P ⊓

τ a+.Q ∼ a+.(P ⊓εQ).

Avant de détailler la preuve, il est important de rappeler une condition importante que la propriété devrait satisfaire :“la propriété doit supprimer les actions critiques jusqu’à ce qu’elle reconnaisse un préfixe valide”. Cela signifie que n’importe quelle séquence consécu- tive de suppression d’actions doit être suivie d’une action d’insertion. Le résultat de l’action d’insertion est l’exécution des actions supprimées suivies de l’exécution de l’action acceptée.

Selon la définition de ⊓•

ε et en supposant queP et Q soient des propriétés (du moment que seules les propriétés impliquent des actions telles quea+, a), on aτ = ε, car lorsqu’on

a deux propriétés à composer, il n’y a aucun historique à construire. Par conséquent, selon la définition de⊓•

τ les propriétés suivantes sont vérifiées par le processusa+.P ⊓εa+.Q : (1) a+.P ⊓

εa+.Q ⊑ a+.P (2) a+.P ⊓

εa+.Q ⊑ a+.Q

(3) Pour tout processusR.R⊑ a+.P et R⊑ a+.Q, on a : R⊑ a+.P ⊓

εa+.Q

De plus, les propositions suivantes sont vérifiées poura+.(P ⊓

ε Q) : (4) a+.(P ⊓

εQ) ⊑ a+.P (puisque P ⊓εQ ⊑ P ) (5) a+.(P ⊓

εQ) ⊑ a+.Q (puisque P ⊓εQ ⊑ Q )

(6) Pour tout processusR.R⊑ a+.P et R⊑ a+.Q, on a : R⊑ a+.(P ⊓

εQ)

Puisquea+.(P ⊓εQ) satisfait (5) et (6) alors de la condition (3), on déduit alors que :

(7) a+.(P ⊓

εQ) ⊑ a+.P ⊓εa+.Q

De plus, puisquea+.P ⊓

εa+.Q satisfait les conditions (1) et (2), alors selon (6) on a :

(8) a+.P ⊓

εa+.Q ⊑ a+.(P ⊓εQ)

À partir de (7) et (8), on conclut que :

a+.P ⊓

τ a+.Q ∼ a+.(P ⊓εQ).