Cours 5 : Le Pi-calcul (définitions)

Transcription

Cours 5 : Le Pi-calcul (définitions)
Sémantique de la Concurrence et de la Mobilité
Cours 5 : Le Pi-calcul (dénitions)
Frédéric Peschanski
29 octobre 2006
1
Syntaxe du Pi-calcul
1.1
Syntaxe formelle
Dans un premier temps, nous dénissons deux ensembles innis dénombrables de noms.
Les règles de la syntaxe BNF du pi-calcul sont les suivants :
Denition D, E(x1 , . . . , xn ), . . .
: := P
Processus P, Q, . . .
: := 0 | α.P | D | E(v1 , . . . vn ) | P + Q | P k Q | (νc)P | [a = b]P | [a 6= b]P
Préxe
α
: := a(x) | ahvi | τ
On s'autorisera également les raccourcis suivants :
P
def
si I = {1, 2, . . . , n} alors i∈I Pi = P1 + P2 + . . . + Pn
Q
def
si I = {1, 2, . . . , n} alors i∈I Pi = P1 k P2 k . . . k Pn
def
(νc1 , c2 , . . . , cn )P = (νc1 )(νc2 ) . . . (νcn )P
def
P.α = P.α.0
1.2
Noms libres et noms liés
Dénition : (noms libres)
que :
Les noms libres d'un terme P correspondent à la valeur de la fonction f ree(P ) telle
f ree(0) = ∅
f ree(a(x).P ) = {a} ∪ f ree(P ) \ {x}
f ree(ahvi.P ) = {a, v} ∪ f ree(P )
f ree(τ.P ) = f ree(P )
f ree(P + Q) = f ree(P ) ∪ f ree(Q)
f ree(P k Q) = f ree(P ) ∪ f ree(Q)
f ree((νc)P ) = f ree(P ) \ {c}
Dénition : (noms liés)
Les noms liés (bound names ) d'un terme P correspondent à la valeur de la fonction
bound(P ) telle que :
bound(0) = ∅
bound(a(x).P ) = {x} ∪ bound(P )
bound(ahvi.P ) = bound(P )
bound(τ.P ) = bound(P )
bound(P + Q) = bound(P ) ∪ bound(Q)
1
bound(P k Q) = bound(P ) ∪ bound(Q)
bound((νc)P ) = {c} ∪ bound(P )
On dira qu'un nom c est frais (fresh name ) dans P si, et seulement si, c 6∈ f n(P )
def
names(P ) = f ree(P ) ∪ bound(P )
1.3
Contextes de processus
Dans le cadre du langage Mini-Pi, on dénit les contextes de processus de façon inductive :
C[X]
: := 0 | D(v1 , . . . , vn ) | X | α.X | X + P | X k P | (νc) X | [a = b] X | [a 6= b] X
où P est une expression de processus quelconque.
1.4
Congruence structurelle
Dénition :
La relation de congruence structurelle, notée ≡, est une congruence de processus telle que :
P ≡ Q si P et Q sontα-convertibles
P + Q ≡ Q + P (commutativité de +)
P + 0 = P (élément neutre de +)
P + (Q + R) ≡ (P + Q) + R (associativité de +)
P k Q ≡ Q k P (commutativité de k)
P k 0 = P (élément neutre de k)
P k (Q k R) ≡ (P k Q) k R (associativité de k)
[a = a] P ≡ P
[a 6= a] P ≡ 0
(νa)(νb)P ≡ (νb)(νa)P (commutativité de la restriction)
(νc)(P k Q) ≡ P k (νc)Q si c 6∈ f n(P ) (extrusion de portée dans le produit)
(νc)(P + Q) ≡ P k (νc)Q si c 6∈ f n(P ) (extrusion de portée dans la somme)
(νa)[b = c]P ≡ [b = c](νa)P si a 6= b et a 6= c (extrusion dans match)
(νa)[b 6= c]P ≡ [b 6= c](νa)P si a 6= b et a 6= c (extrusion dans mismatch)
(νc)0 ≡ 0 (élimination de portée)
Nous rappelons de plus les propriétés d'équivalence et de congruence pour ≡ :
relation d'équivalence :
réexivité : P ≡ P
commutativité : si P ≡ Q alors Q ≡ P
transitivité : si P ≡ Q et Q ≡ R alors P ≡ R
congruence de processus (i.e. compositionalité) :
pour tout context C[X] du pi-calcul, si P ≡ Q alors C[P ] ≡ C[Q]
2
2.1
Sémantique opérationnelle (partie 1 : réductions)
Actions observables
Une action observable du pi-calcul est soit :
Une émission ahvi, {a, v} ∈ N
Une émission liée ahνvi, {a} ∈ N , {v} ∈ N
Une réception a(v), {a, v} ∈ N
On dénit les noms libres et noms liés dans les actions :
def
def
bound(ahvi) = ∅, f ree(ahvi) = {a, v}
2
def
def
bound(ahνvi) = {v}, f ree(ahνvi) = {a}
def
def
bound(a(x)) = {x}, f ree(a(x)) = {a}
def
names(α) = bound(α) ∪ f ree(α)
2.2
Règles de réduction
On ajoute les deux égalités suivantes qui permettent de traiter le cas des matchs et mismatchs gardés :
[a 6= b] P = P if a 6= b est prouvable (ex. dans c(x)[x 6= b] il n'est pas prouvable [x 6= b] (cela dépend de
l'instantiation de x)
[a = b] P = 0 if a = b est prouvable
(→ step) : τ.P →
− P
a ∈ Chan
→ P 0 k Q0 {v/x}
(→ com) : ahvi.P + M k a(x).Q + N −
P −
→ P0
→ P0 k Q
(→ par) : P k Q −
P −
→ P0
→ (νa)P 0
(→ res) : (νa)P −
P ≡ P0
P −
→ Q Q ≡ Q0
0
(→ struct) :
P −
→ Q0
P {v1 /x1 , . . . , vn /xn } −
→ P0
→ P 0 si D(x1 , . . . , xn ) = P
(→ call) : D(v1 , . . . , vn ) + M −
3

Documents pareils