Upgrade to Pro — share decks privately, control downloads, hide ads and more …

π計算

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for ytakano ytakano
November 30, 2017

 π計算

π計算のまとめ

Avatar for ytakano

ytakano

November 30, 2017
Tweet

More Decks by ytakano

Other Decks in Programming

Transcript

  1. シンタックス 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 ϓϩηεఆٛ
  2. α変換 • 束縛変数の名前を変換しても等価となる • ただし、名前変換後の束縛変数は、既存の⾃由変数を新たに束縛しないと きに変換可能 • 例 6 YΛZʹม׵ͯ͠΋ҙຯ͸ಉ͡

    YΛCʹม׵͢Δͱɺطଘͷࣗ༝ม਺CΛ৽ͨʹ ଋറͯ͠͠·͍ɺҙຯ͕มΘͬͯ͘Δʂ ޡྫ a(x).¯ bx.0 ม׵ a(y).¯ by.0 a(x).¯ bx.0 ม׵ a(b).¯ bb.0
  3. 簡約 • チャネルの送受信で簡約していく • (表記としてP{x0 /y0 , …, xn /yn

    }と⾔う表記を⽤いる。
 これは、P中の⾃由変数xi をyi (0 ≦ i ≦ n)で置換するという意味) • 例 7 ʢԿ΋ೖྗແ͠Ͱ؆໿͞ΕΔͨΊɺ໼ҹͷ্ʹНͱදهʣ a(x).P|¯ ab.Q P{x/b}|Q
  4. |と+の可換モノイド的性質 9 P|Q Q|P P + Q Q + P

    (P|Q) P|(Q|P) (P + Q) + R P + (Q + R) P|0 P P + P P
  5. スコープ拡張規則 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
  6. スコープ拡張規則を⽤いた簡約の例(1/2) • a(x).P|(νb)ab.Q という式を考える • b ∉ fn(a(x).P) であるため(b ∉

    fn(P)と仮定)、(νb)(a(x).P|ab.Q)と変換可能 • よって、(νb)(P{x/b}|Q) と簡約される 11
  7. 同⼀チャネルでの複数受信 • 同じチャネルで複数受信している場合は、⼀つだけ実⾏される 13 P =!a(x), Q = ¯ ay

    ͷͱ͖ P|Q ͸ҎԼͷΑ͏ʹ؆໿͞ΕΔ P|Q =!a(x)|¯ ay (a(x)|!a(x))|¯ ay (a(x)|¯ ay)!a(x) 0|!a(x) !a(x) = P !P P|!P Ͱ͋ΔͨΊ
  8. 多引数π計算 (Polyadic π-calculus) • 単引数π計算(monadic π-calculus) • これまで説明したπ計算 • チャネルへ同時に1つの値しか送信できない

    • 多引数π計算 • チャネルへ同時に複数の値を送信可能 • 以下の定義を、単引数π計算の定義へ追加 14 ::= ¯ c x0, . . . , xn x0, . . . , xn Λνϟωϧ c ʹૹ৴ c(x0, . . . , xn) νϟωϧ c ͔Β x0, . . . , xn ΁σʔλΛड৴
  9. 多引数π計算から単引数π計算への変換 • 多引数の送信と受信は、プライベートチャネルを⽤いた単引数π計算へ変 換可能 • 送信 • 受信 15 ¯

    c x0, . . . , xn ͸ ( d)¯ cd. ¯ dx0. · · · . ¯ dxn ͱม׵Մೳ c(x0, . . . , xn) ͸ c(d).d(x0). · · · .d(xn) ͱม׵Մೳ
  10. 多引数から単引数π計算への変換の補⾜ 単純な変換ができない理由 16 ¯ c x0, . . . ,

    xn ͔Β ¯ cx0.¯ cx1. · · · .¯ c.xn ͱ୯७ʹม׵͢Δͱ͏·͍͔͘ͳ͍৔߹͕͋Δɻྫ͑͹ ¯ c x, y |c(z, w)|c(z, w) c(x, y) Λ୯७ʹม׵͢Δͱ ¯ cx.¯ cy|c(z).c(w)|c(z).c(w) ¯ cy|c(w)|c(z).c(w) c(w)|c(w) ͱͳΔՄೳੑ͕͋Γɺҙຯ͕มΘͬͯ͘ΔՄೳੑ͕͋Δɻ
  11. π計算の操作的意味論 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
  12. 推論規則を⽤いた、簡約の証明例(1/3) 19 a(b).¯ bc.0 a(u).¯ uc.0 a(u).¯ uc.0 a(u) ¯

    uc.0 PREFIX ¯ uc.0 ¯ uc.0 a(b).¯ bc.0 a(u) ¯ uc.0 STRUCT a(b).¯ bc.0 a(u) ¯ uc.0 ͷূ໌ਤ
  13. 推論規則を⽤いた、簡約の証明例(2/3) 20 a(x).P a(x) P PREFIX (a(x).P)|Q a(x) P|Q PAR

    ¯ au.R ¯ au R PREFIX ((a(x).P)|Q)|¯ au.R (P|Q){x/u}|R COM ((a(x).P)|Q)|¯ au.R (P|Q){x/u}|R ͷূ໌ਤ PAR規則により、Q中に⾃由な変数xが現れないことが 保証されているため、COM規則が適⽤可能
  14. 推論規則を⽤いた、簡約の証明例(3/3) 21 ( x)(a(b).P|¯ ac.Q) ( x)(P{b/c}|Q) ͷূ໌ਤ a(b).P a(b)

    P PREFIX ¯ ac.Q ¯ ac Q PREFIX a(b).P|¯ ac.Q P{b/c}|Q COM ( x)(a(b).P|¯ ac.Q) ( x)(P{b/c}|Q) RES (ࣜ 1)
  15. RES規則の考察 • αがa(b)かabのとき、(νx)a(b).Pと(νx)ab.Pはどう簡約されるか? • a≠x、b≠xのときのみRES規則が適⽤可能 • a=xのとき • (νx)a(b).P =

    (νx)x(b).P ≡ 0 (新規チャネルxへ送信してくる⼈はいない) • (νx)ab.P = (νx)xb.P ≡ 0 (新規チャネルxを待ち受けている⼈はいない) • b=xのとき(ただし、a≠x) • (νx)a(b).P = (νx)a(x).Pのとき、(νx)のxは使われない。つまり • (νx)ab = (νx)ax.Pは、そのままの意味。新規チャネルxを作成し、チャネルaへ送信。 22 ( x)P x / fn(P) P ɻ
  16. 新規チャネルxを既存チャネルaに送信する場合 • (νx)ax.Qは、a(b).P|(νx)ax.Qとなるとき、(νx)(P{b/x}|Q)と簡約される • すなわち、 23 (ࣜ 2) (ࣜ 1)

    ( x)(a(b).P|¯ ax.Q) ( x)(P{b/x}|Q) a(b).P|( x)¯ ax.Q ( x)(P{b/x}|Q) STRUCT x / fn(P) {a} a(b).P|( x)¯ ax.Q ( x)(a(b).P|¯ ax.Q) (ࣜ 2)
  17. a(b).P|(νx)ax.Qから(νx)(P{b/x}|Q)への簡約の 完全な証明図(前ページの完全版) 24 x / fn(P) {a} a(b).P|( x)¯ ax.Q

    ( x)(a(b).P|¯ ax.Q) a(b).P a(b) P PREFIX ¯ ax.Q ¯ ax Q PREFIX a(b).P|¯ ax.Q P{b/x}|Q COM ( x)(a(b).P|¯ ax.Q) ( x)(P{b/x}|Q) RES a(b).P|( x)¯ ax.Q ( x)(P{b/x}|Q) STRUCT
  18. 新規チャネル送信のための追加規則 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 )
  19. OPENとRCOM規則を⽤いた a(b).P|(νx)ax.Qの証明 26 a(b).P a(b) P PREFIX ¯ ax.Q ¯

    ax Q PREFIX, a = x ( x)¯ ax.Q ¯ a x Q OPEN a(b).P|( x)¯ ax.Q ( x)(P{b/x}|Q) RCOM
  20. 双模倣性の例 29 α γ β システムB β γ β γ

    システムA α α 等価 α γ β システムC α ⾮等価 システムAとBは、イベントαの後、イベントβとγの両⽅を受理可能 システムAとBは、外部観測的には区別できない。ブラックボックステ ストでは違いがわからない。 システムCは、イベントαの後、イベントβとγの⽚⽅のみ受理可能
  21. 強双模倣性 (Strong Bisimilarity) • π計算では、以下の強模倣性の定義により、プロセスの同値性を定義する 30 ରশͳೋ߲ؔ܎ R ͕ҎԼΛΈͨ͢ͱ͖ʹɺϓϩηε P

    ͱ Q ͸ڧ૒໛฿Ͱ͋Δͱ͍͏ɻ P R Q P P ͜͜Ͱɺ bn( ) ͸৽نͰ͋Δʢ͢ͳΘͪɺ bn( ) (fn(P) fn(Q) = ) ͷͱ͖ɺ 1. = a(x) ͳΒ͹ɺ Q : Q a(x) Q u : P {x/u} R Q {x/u} ͱͳΔɻ 2. ͕ೖྗͰͳ͍ͳΒ͹ɺ Q : Q Q P R Q ͱͳΔɻ
  22. 双模倣性:例1 33 P ͷՄೳͳભҠ͸ҎԼͱͳΔɻ P a ¯ b ¯ b

    0 P ¯ b a a 0 Ұํ Q ͸ҎԼͷભҠ͔͠ͱΕͳ͍ɻ Q a ¯ b ¯ b 0 ͕ͨͬͯ͠ɺ P Q ͔ͭɺ P ˙ Q ͱͳΔɻ P = a|¯ b Q = a.¯ b
  23. 双模倣性:例2 34 P = a|¯ b Q = a.¯ b

    + ¯ b.a P ͷՄೳͳભҠ͸ҎԼͱͳΔɻ P a ¯ b ¯ b 0 P ¯ b a a 0 Q ͷՄೳͳભҠ΋ಉ༷ʹҎԼͱͳΔɻ Q a ¯ b ¯ b 0 Q ¯ b a a 0 ͕ͨͬͯ͠ɺ P Q ͔ͭ P ˙ Q ͱͳΔɻ
  24. 双模倣性:例3 35 P = a(u) Q = a(x).( v)¯ vu

    P a(u) 0 ͱͳΔ͕ Q ͸͜ΕΛγϛϡϨʔτͰ͖ͳ͍ɻ ͳͥͳΒ u ͸ࣗ༝ͳม਺ͷͨΊ x Λ u ʹ ม׵Ͱ͖ͳ͍ͨΊɻ ͕ͨͬͯ͠ P Q ͱͳΔɻ Ұํ P ˙ Q ͱͳΔɻ ͳͥͳΒ bn(a(u)) (fn(P) fn(Q)) = {u} = Ͱ͋Γɺ a(u) ͸ߟྀ͠ͳͯ͘ྑ͍ͨΊɻ ʢڧ૒໛฿ੑͷఆٛΑΓʣ
  25. 双模倣性:例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 ͱͳΔɻ
  26. 双模倣性:例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 Ͱ͋Δɻ
  27. 強双模倣性から得られる等価式 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.
  28. 強合同性の例 40 P = a|¯ b Q = a.¯ b

    + ¯ b.a + if a = b then P ͱ Q ͸ڧ߹ಉͰ͋Δɻ ͳͥͳΒɺ୅ೖ {a/b} ͱ {b/a} ΛؚΉશͯͷ୅ೖ ʹ͍ͭͯ P ˙ Q Ͱ͋ΔͨΊɻ
  29. 強合同性から得られる等価式 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.
  30. π計算の例:セマフォ 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))
  31. π計算の例:⾷事する哲学者問題 43 Phil(l, r) !l.r.(¯ l|¯ r) Chopstick(c) ¯ c

    ೋਓͷ఩ֶऀͷ৔߹͸ҎԼͷΑ͏ʹهड़Մೳɻ Phil(c0, c1)|Phil(c1, c0)|Chopstick(c0)|Chopstick(c1)