シンタックス 3 ::= ¯ cx x Λνϟωϧ c ʹૹ৴ c(x) νϟωϧ c ͔Β x σʔλΛड৴ ΠϯλϥΫγϣϯແ͠ P, Q ::= 0 ۭϓϩηε .P લॲཧ͖ϓϩηε P|Q P ͱ Q ͷฒߦ߹ P + Q P ͱ Q ͷඇܾఆతબ ( c)P P தʹείʔϓ੍͕ݶ͞Εͨ৽نνϟωϧ c if x = y then P ͖࣮݅ߦʢϚονʣ if x = y then P ͖࣮݅ߦʢΞϯϚονʣ A(y1, . . . , yn) ϓϩηεݺͼग़͠ ::= A(xi, . . . , xn) P ϓϩηεఆٛ
スコープ拡張規則 10 ( x)0 0 ( x)(P|Q) P|( x)Q if x / fn(P) ( x)(P + Q) P + ( x)Q if x / fn(P) ( x)if u = v then P if u = v then ( x)P if x / {u, v} ( x)if u = v then P if u = v then ( x)P if x / {u, v} ( x)( y)P ( y)( x)P
π計算の操作的意味論 18 PREFIX .P P MATCH P P P + Q P STRUCT P P P Q Q Q P Q MISMATCH P P x = y if x = y then P P SUM P P P + Q P PAR P P bn( ) fn(Q) = P|Q P |Q COM P a(x) P Q ¯ au Q P|Q P {x/u}|Q RES P P x / ( x)P ( x)P
新規チャネル送信のための追加規則 25 (ただし、これらは必須な規則ではなく、あくまでもオプショナル) ͜͜Ͱɺ ¯ a x νϟωϧ a ʹ৽نνϟωϧ x Λૹ৴͢Δ͜ͱΛҙຯ͢Δɻ ͳ͓ɺ fn(¯ a x) = {a}, bn(¯ a x) = {x} ͱͳΔɻ OPEN P ¯ ax P a = x ( x)P ¯ a x P RCOM P a(x) P Q ¯ a u Q u / fn(P) P|Q ( u)(P {x/u}|Q )
双模倣性:例4 36 P1 = a(x).P + a(x).0 P2 = a(x).P + a(x).0 + a(x).if x = u then P P1 x ͷʹؔΘΒͣҎԼͷભҠΛͱΔɻ P1 a(x) P P1 a(x) 0 P2 ҎԼͷભҠͱͳΔɻ P2 a(x) P P2 a(x) 0 P2 a(x) if x = u then P ͜͜Ͱɺ3 ͭΊͷભҠ x ʹґଘͯ͠ҎԼͷΑ͏ʹͳΔɻ P2 a(y=u) 0 (if y = u then P ͷͨΊ) P2 a(x=u) P (if u = u then P ͷͨΊ) ͜ΕΒͷભҠ P1 ͰγϛϡϨʔτՄೳͳͨΊ P1 P2 ͱͳΔɻ
双模倣性:例4の続き 37 P1 = a(x).P + a(x).0 P2 = a(x).P + a(x).0 + a(x).if x = u then P Ұํ P ˙ 0 ͷͱ͖ P1 ˙ P2 ͱͳΔɻͳͥͳΒɺ P2 a(x) if x = u then P P1 ʹΑͬͯɺͯ͢ͷೖ {x/u} ΛγϛϡϨʔτͰ͖ͳ͍ͨΊͰ͋Δɻ ͕ͨͬͯ͠ P1 P2 ͔ͭ P1 ˙ P2 Ͱ͋Δɻ
強双模倣性から得られる等価式 38 STR If P Q then P = Q CG1 If P = Q then ¯ au.P = ¯ au.Q .P = .Q P + R = Q + R P|R = Q|R ( x)P = ( x)Q CG2 If P{x/y} = Q{x/y} for all y fn(P, Q, x) then a(x).P = a(x).Q S P + P = P M1 (if x = x then P) = P M2 (if x = y then P) = 0 if x = y MM1 (if x = x then P) = 0 MM2 (if x = y then P) = P if x = y R1 ( x) .P = .( x)P if x / R2 ( x) .P = 0 if = ¯ xy or = x(y) R3 ( x)(P + Q) = ( x)P + ( x)Q Parrow, J. (2001). An Introduction of the π calculus. In Bergs, Poise, Smolka (Eds.), Handbook of Process Algebra. Elsevier.
強合同性から得られる等価式 41 STR If P Q then P = Q CG “=” is preserved by all operators S P + P = P MM1 (if x = x then P) = 0 GM1 (if M then P) = (if N then P) if M N GM2 (if x = y then P + if x = y then P) = P GM3 (if M then (P + Q)) = (if M then P + if M then Q) GM4 (if M then .P) = (if M then ( .if M then P)) if bn( ) / M GM5 (if x = y then .P) = (if x = y then ( {y/x}).P) GM6 (( x)if x = y then P) = 0 if x = y R1 ( x) .P = .( x)P if x / R2 ( x) .P = 0 if = ¯ xy or = x(y) R3 ( x)(P + Q) = ( x)P + ( x)Q Parrow, J. (2001). An Introduction of the π calculus. In Bergs, Poise, Smolka (Eds.), Handbook of Process Algebra. Elsevier.
π計算の例:セマフォ 42 Sem(r) ¯ r Get(r) r Rel(r) ¯ r ϓϩηε P ͱ Q ͷഉଞ࣮ߦҎԼͷΑ͏ʹهड़Մೳɻ ( r)(Sem(r)|!Get(r).P.Rel(r)|!Get(r).Q.Rel(r)) ͨͩ͠ r ৽نมͰ͋Δ (r / fn(P) fn(Q))