process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro...

9
Ichiro Satoh i \ ¹ ´ ¿ L k · À ° ¯ i \ j q %Z8&.XY; bx Ichiro Satoh · À ° ¯ i \ ¢ ¥ j q n Ã/į³¸¥_R¥|uÃT PÄUS·À°¯i\jq n o¤}Wuoô±ĥ }W n ¨©½ÁÃÅu¡NÄV|R/c¦¥^¥ n s¨©½Á]2+'!# n ¯³¸* ·À°¯i\jq¥ n ż¬Ã|Ä*yO(

Transcript of process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro...

Page 1: process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro Satoh jq Match def=strike.0 VM def=coin.coffee.VM Clockdef=tick.Clock Light def=turnOn.turnoff.Light

Ichiro Satoh

i\¹´¿Lk·À°¯i\�jq�

%Z8&.XY;

�b�x

Ichiro Satoh

·À°¯i\�¢¥jq

n Ã/Ä­¯³¸���¥�_�R����¥� |�u�ÃT��PÄ�US���·À°¯i\���jq

n ��� ��o���¤}W����u���oô±Ä���¥��}W���

n ¨©­½ÁÃ�Åu�¡�NÄ�V|R�/c�¦¥�^�¥

n s��������¨©­½Á�]2�+��'!��#�

n ­¯³¸* ·À°¯i\�jq��¥

n �ż¬�|�*yO(

Page 2: process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro Satoh jq Match def=strike.0 VM def=coin.coffee.VM Clockdef=tick.Clock Light def=turnOn.turnoff.Light

Ichiro Satoh

jq�

Match = strike.0def

VM = coin.coffee.VMdef

Clock = tick.Clockdef

Light = turnOn.turnoff.Light def

Ichiro Satoh

w=�NÃChoice OperatorÄ

n E�B¡�1§d�

n P � Q�·À°¯3�£��P+Q ·À°¯3n P+Q�����

n  �P�C���¨©­½Á§/c�¦� P+Q�P���>¥a��s�Ê�C���¨©­½Á§/c�¦�P+Q�Ê���>¥a�

VM = coin.(button1.coffee.VM + buton2.tea.VM)

tea

coffee

Page 3: process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro Satoh jq Match def=strike.0 VM def=coin.coffee.VM Clockdef=tick.Clock Light def=turnOn.turnoff.Light

Ichiro Satoh

Example

CM = coin.coffee.CMdef

CS = coin.coffee.CSdef

CS | CM

Ichiro Satoh

ExampleCM CS

coin

coffeecoffee

coin

pubCM | CS

CS|CM|CS’

CM CS

coin

coffeecoffee

coin

pub

CS’

coin

coffee pub

Page 4: process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro Satoh jq Match def=strike.0 VM def=coin.coffee.VM Clockdef=tick.Clock Light def=turnOn.turnoff.Light

Ichiro Satoh

jq�

n u�·Àµ«¿

n r��(S)����(R)�u�²º¶¿(C)

S = send.ÃS’ | TÄS’ = dataS.start.(acks.S+timeout.S’)

T = start.timeout.T

C = dataS.(dataR.C+τ.C) + ackR.(ackS.C+τ.C)

R = dataR.ackR.receive.R

Ichiro Satoh

`�l)H��

Page 5: process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro Satoh jq Match def=strike.0 VM def=coin.coffee.VM Clockdef=tick.Clock Light def=turnOn.turnoff.Light

Ichiro Satoh

jq�

n u�·Àµ«¿

n r��(S)����(R)�u�²º¶¿(C)

S = send.S’S’ = dataS.start.(ackS.stop.S+timeout.S’)

T = start.(timeout.T+stop.T)

C = dataS.(dataR.C+τ.C) + ackR.(ackS.C+τ.C)

R = dataR.ackR.receive.R

Ichiro Satoh

0{

n ?�9$k�5��3§0{

S|T|C|R = send.S’ | start.(timeout.T+stop.T) |

dataS.(dataR.C+τ.C) + ackR.(ackS.C+τ.C) | dataR.ackR.receive.R

→ dataS.start.(ackS.stop.S+timeout.S’) | start.(timeout.T+stop.T) | dataS.(dataR.C+τ.C) + ackR.(ackS.C+τ.C) | dataR.ackR.receive.R (�A)

send

Page 6: process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro Satoh jq Match def=strike.0 VM def=coin.coffee.VM Clockdef=tick.Clock Light def=turnOn.turnoff.Light

Ichiro Satoh

0{

→ start.(ackS.stop.S+timeout.S’) | start.(timeout.T+stop.T) | dataR.C+τ.C | dataR.ackR.receive.R

→ ackS.stop.S+timeout.S’ | timeout.T+stop.T | dataR.C+τ.C | dataR.ackR.receive.R

���0{��¤�¥ (�B)

→ ackS.stop.S+timeout.S’ | timeout.T+stop.T | C | ackR.receive.R

τ(dataS)

τ(start)

τ(dataR)

Ichiro Satoh

0{

→ ackS.stop.S+timeout.S’ | timeout.T+stop.T | dataS.(dataR.C+τ.C) + ackR.(ackS.C+τ.C) | ackR.receive.R

→ ackS.stop.S+timeout.S’ | timeout.T+stop.T | ackS.C+τ.C | receive.R

→ ackS.stop.S+timeout.S’ | timeout.T+stop.T | ackS.C+τ.C | R

���0{��¥ (�C)

→ stop.S+timeout.S’ | timeout.T+stop.T | C | R

→ S | T | C | R

τ(ackR)

receive

τ(ackS)

τ(stop)

Page 7: process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro Satoh jq Match def=strike.0 VM def=coin.coffee.VM Clockdef=tick.Clock Light def=turnOn.turnoff.Light

Ichiro Satoh

0{

→ ackS.stop.S+timeout.S’ | timeout.T+stop.T | dataR.C+τ.C | dataR.ackR.receive.R

→ ackS.stop.S+timeout.S’ | timeout.T+stop.T | C | dataR.ackR.receive.R

→ S’ | T | C | dataR.ackR.receive.R

= dataS.start.(ackS.stop.S+timeout.S’) | start.(timeout.T+stop.T) | dataS.(dataR.C+τ.C) + ackR.(ackS.C+τ.C) | dataR.ackR.receive.R Ã�A�"�Ä

τ

τ(timeout)

(�B)

Ichiro Satoh

→ ackS.stop.S+timeout.S’ | timeout.T+stop.T | ackS.C+τ.C | R

���0{��¥

→ stop.S+timeout.S’ | timeout.T+stop.T | C | R→ S | T | C | R

���

→ ackS.stop.S+timeout.S’ | timeout.T+stop.T | C | R→ S’ | T | C | R

τ(ackS)

τ(send)

0{

τ

τ(timeout)

(�C)

Page 8: process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro Satoh jq Match def=strike.0 VM def=coin.coffee.VM Clockdef=tick.Clock Light def=turnOn.turnoff.Light

Ichiro Satoh

Alternating Bit Protocol

Sender ReceiverTrans

Ack

send0send1

trans0trans1

reply0reply1

ack0ack1

accept deliver

Sender,Receiver�0,1�M:§ ��T<�£Q�¥M:���§���¥�M:§�p��¥

�DM: Sender=0, Receiver=1

t��u�n����I,¡fe���� ��7��¥u���_

Ichiro Satoh

ABP�jq(Sender,Receiver)

Page 9: process-example - ichiro-satoh.jpichiro-satoh.jp/lectures/model/2018/process-example.pdf · Ichiro Satoh jq Match def=strike.0 VM def=coin.coffee.VM Clockdef=tick.Clock Light def=turnOn.turnoff.Light

Ichiro Satoh

ABP�jq(Trans,Ack)

Ichiro Satoh

AR�9$��

n Ã�G�[�7,·À°¯�Fv§d�K\-Ä

CCS K\- |,\},0,.,{ +a[�7 4�G�[��hJ[��hJ!"�³¯µ[�

CSP K\- },\;|||,||,,,,,{ aSTOPa®[�7 ,@~!9$k

��¨·À²Å[�7§[3~!�����£ÈÌË�L6��

ÆÇÉ (Baeten, Bergstra 1986)

zg�7mÅ!"7 QP = ��� ][][ QCPC =·Àª¾¸�¹®»Â¿7