Main is_a PN
(x|t)
s syncpop: #wantedToken s
synchronous port return place
class name class ascendant initial marking
message pattern
x := self produce.
s push: x
y := s pop.
self consume: y st
P=@<i=@?WM®»UNPs¼J<D ºD È
ã D$D½ ¼J<>=@;?§ºm D ? D » D
UOMOVW»ºm;UN?§ºmUºm D
Ñ$Ñ
KÔLÝÖL=@?WMºm DED ?lºm;
S D M Dà ?J;ºm;UN?U@Æ Ñ$Ñ
ÉEÌ
F ;? ÓT
=@?WÔNÕzÖÈ
"!$#&%('*) +,-(.+-/,'10243537698;:
Ë ?=<>@?ACBEDGFH<IJ"AEKLDMACNPOQAEDGIJRKSAED;
=@?;?J;ºm;>=@<1»<>=
FmF
IO=@?WM"UN¾OZ D »º%;>M D ?lºm;àWD
S F
ºsU@ƼJ<>=N» D F
=@?WMߺ
¾JVOºjI;?å=NMJMO;ºm;UN?1I
D
MOÃL?W=@Ps;>»=@<<ÃÆáV
F D MåºmU
º9)»=@?®¾ D ¾UNVJ?WMºmU§»UN?
F
F/F Ï ^`_hg9bÒ F
F ;?Í=@?ó=eºmUNPs;>»
Á6=zÃNÈWX6 D ;?J D S ;º=@?W» D P D »ÂW=@?J;
X6Â D MOÃL?W=@Ps;>»¾ D ÂW=zÇL;UNV
S
ºmUÞºm D®D ÇNUN<VOºm;UN?ÐU@Æ$=
F Ã Fº D P
D5} È Ë DGIXKJDGJ"<K « IXJK®å;
F = F D ºU@Æ6;?LÇNUO»=eºm;UN?
Á6=zÃU@Æ P=@?J;¼JVJ<>=eºm;?JÀsP=
S G ;?JÀ
;>=@¾J<Ds³/´µ ÈNX6ÂLV
F
=ÆáU
S
P=@<W»UNPs¼W=eºm;¾J;<;º[Ã)U@ƼJ<>=N» D =@?WMº
S
=s¾J;?WMO;?JÀWÈWX6Â
D
=@?Ê=eºmUNPs;>»s=N»ºm;UN?å;?LÇNUN<ÇL;?JÀ§º
S ;ÇL;>=@<
º=@?lºm;>=eºm;UN?®ÇL;>=ºm D P D
FmF
F g S F S G i F
ÈLX6Â D AEDq<°¯
ºmÂW=eº»=@?ó¾ D MOÃL?W=@Ps;>»=@<<Ãé»
S D =eº D M=@?WMóMO;
G ;?WM"U@Æ »UNPs¼UN?
D
IN=@?WMs=@?s;?J;ºm;>=@<
F
MOÃL?W=@Ps;>»E;? F
º=@?lºm;>=eºm;UN?
?lºm<Ã)ÂW=@?WMO<;?JÀxºmÂ
D
Á%ÂJ;>»Â=@<<UeÁ
F
UN¾J<D PÈX6ÂJ;
F ;F
S S F F Ï
CJ®KÒJ"NAEKLDGJä©AEIC4DM<RKSAEåÏ IJJK®jJKDMKSBCAÈæ D MOVJ?WMJ=@?lº
F
VJ<>=eº D ÈÑæ D MOVJ?WMJ=@?lº
F
F D ºmÂW=eºÁ D Á/UNVJ<>M?JU@º<ULU
F D =@?LÃ";?OÆáU
ÇNUN<VOºm;UN?sU@Æ¢ºmÂ
D
º=@?lºm;>=eºm;UN?1Ie¾JVOº2;º F DD
Ul=N»Â®Á%ÂJ;>»ÂÞ=@<<UeÁ
F
=@?WM§ºmU»UNP)¾J;? D ºmÂ
UeÇ D ºmÂW=eº6MOUN;?JÀ$ºmÂJ;
F Á D MOU?JU@º/<U F D =@?LÃlºmÂJ;?JÀU
UN¾J<D PIJºm D ?JU@ºm;UN?U@Æ2;Ps¼U
S
S F F F Ï Ñ$Ñ F F S
?JUeÁÐÂJUeÁ8ºm D Ãs=
S D P=@?J;¼JVJ<>=eº D Ms¾LÃ D Ç D ?lº
F D M®UN?®?JU@º$»UN?
F
D ;?WMO;ÇL;>MOVW=@<
F
ÆáUN<>M D M
ºmUNÀ D ºm D S
ßç/-(â"âQ) +¢Ñ+'*) è¢.':702r3537698;:
ïJVJ<< F
=@<E»UN?W» D ¼OºU@Æ
F
¦'é¡(¤@+¤"0¡º!¿ê°ç/-(â"âQ) +¢Ñ+'~) è¢.':70243537698;:ë
ì/AEDjKk<>@?ACBEDGFH<IJ"AEKLDMACN~OQAEDGIJ&KSAED
^9^`f9_
åmJD@íJD"ÒAED7<°¯ « IXJK®Ò
rî JD"
JKLJDGJ" « IXJK®
i~Yî
F F S F F
U@Æ1MOÃL?W=@Ps;>»=@<<Ã)=
S ;F ;?JÀ$=@?WMMO;
P=@?lºm;>»=@<<Ã Dj¿
Á%ÂJ;>»ÂßÁ/UNVJ<>MÊVJ?WM D F ;S
=@¾J<à S D ì D »ººm D U S M D S
VW»Âß=@?ßUN¼Oºm;Ps;Åj=eºm;UN?Þ?W=@Ps;?JÀ
S D MOVJ?WMJ=@?W»;D F = S ;F D UN?J<Ãå;Æ%ºm D S D =@¼J¼ D = S
=eºm;?JÀÂJUeÁ5P=@?LÃ"VJ?J? D » D
FmF
= S Ã F
º=eº D F Á D »=@?=zÇNUN;>M)Z[V
F
ºÇL;>=
=NMJMO;?JÀºm D <>=
F
 F F F   F S S F F F Ã
»UNPsP)VOº=eºm;ÇL;º[Ã
Ä
=@?WMåMOU?JU@º»UN<<;>M D ÈïJV
S
ÇNUN<VOºm;UN?åU@Æ2ºmÂ
D F Ã F ºD P F ¾ D ;?JÀ
UNP D <>=JÈjíº
F ¼ S
ß á:+,¢.+¤"¡(àR¢ Ì+%('h8;¢£P¤"¡(àE¡(2U0L,£P¢Ñ+¤"0¡
ãé;ºmÂ
F D MUN??JU@º»UN?
F
;>M D S ;?JÀ8»UN?W»
S D º D Çe=@<V D F U@Æ
F F F S G F F S
P)VOº=eºm;UN?8UeÇ D S
ºm D F D ºsU@Æ=@<<6;>M D ?lºm;àWD
P=@<iÁ6=zçæ =ÆáVJ<<ÃÆáU
S
=@?WMs=@<<UeÁßÆáVJ<<Ãs=@VOºmUNP=eº
D
?JU@ºE=@<<UeÁܺmU$V
F D ;? F
S ;ÇL;>=@<W»UNPs¼JVOº=eºm;UN?
F M D ¼ D ?WMO;?JÀUN?»UN?W»
=@¼J¼J<;>»=eºm;UN?éP=
G D F
ï`ð;A7NA"äsKSA§IXAEKS « JK®9LAEI « ÑF
DMDGJ"<KR<²AEI
F S S S F
6`,0Lèq0:¤@+¤"0¡ ! ì/AEDsQ²ARK*<>@?ACBEDGFH<IJ"AEKLDMACNROQAEDGIJ(KSAED
^9^`f9_
ÑDMDGJ"<K'&zï)(SAEKzD@A¯E<<åmJK®h<N¯E<I¦AE²AEI
F D ÆáVJ<KS « AEFH>DGIXBEDMACN§AE²AEKLD"I@;}ÈD È Dj¿ VJ;Çe=@<D ?W» D »<>=
FmF
åmJD@íJD"ÒAED7<°¯ « IXJK®Ò
rî JD"
JKLJDGJ" « IXJK®
i~Yî
JD"9AEDQ<°¯RAE²AEKLD"
gRcjî
KSNJD"9IXAEKS « JK®ÒAEÑJ²AEKSBCARIXAEDGJ"<K
>CAÒ®J²AEKSï;ð;A~NA"äsKSA*D@AÊ?W=@P D Ä
=@¾
ºm;>=@<<ÃNÈLX6ÂJ;
F
MOU$?JU@ºE»UN?lº=@;?s;?OÆáU
S
6`,0Lèq0:¤@+¤"0¡
aÁHaSò
GL<KSNJK®5KS « AEFH>DGIXBEDMACNjDMDMA`GLBCA
_hdraÁHaSò
ï(SAEK1D@Aq¯E<<åmJK®5<Nô
ûSÓ87
»=@<<D M*BC< « SAEDMA&KS « AEFH>DGIXBEDMACN
DMDMA`GLBCA+BC,
¦'é¡(¤@+¤"0¡D ÞêFER0£±èâ"'+'Ò8;¢£P'1á:+,¢.+'ÿ÷) +¢Ñ+'*) è¢.':ë
DM<`>CAÏD@AÏDGIJSA
]`_hdraÁHaSò5v
HÞÏ ùLÒ4vëÏGi±ùVFLmùjÒCîmÀLÏHÏ øÑV! V ùLÒHÒ
J§D@A§ « ADQAEDQLBChD@Dû
g&Ímª
F F F F S À[M\ÀZ
ÂJUNVJ<>MÞ=NMJMåºmÂW=eº C Ì Ë F º=eº D F
MÁ%;ºmÂs=@<<OPsUOM
D <F M D F » S ;¾ D
VW=@<<Ã"MOU?JU@º»UN?
F
=eº D MY»UNPs¼J<D º D <ÃY=@VOºmUNP=eºm;>»=@<<ÃNI/=@<ºmÂJUNVJÀNÂ
F
»UN?J? D »ºm;UN?1ÈWX6ÂJ;
F
=@<<UeÁ
F
ºmU
à ?WMÞUNVOº)ÂJUeÁ ¼W=
S
KSNJD"9AED<°¯&IXAEKS « JK®9LAEI « ÑDMDGJ"<KI&zïI(SAEK*JDÏJQL<F
J">EARDM<jIXACBC<KDGILBEDqD@Aq¯CÑ DMDMA9GLBCA§<°¯
^9^`f9_
MOVW»ºm;UN?1I »=@?
S D
ºmUMOÃL?W=@Ps;>»=@<<Ã$=
S ;F;?JÀ;? F
F F S F S S F F
D MOVW»ºm;UN?1È
Ñ
?®ºm D U@ºm D S
ÂW=@?WMIÁ D
Ps;ÀNÂlº2ÂW=zÇ D ºmU$¼W=zÃ$ÆáU
S V F;?JÀ
ºmU¾ DDj¿ VW=@< VJ¼ÊºmU
S D ?W=@Ps;?JÀ»=@?ÊP)VJ<ºm;¼J<îºm D UeÇ D S
ºmVJ?W=eº D <ÃNIeºmÂJ;
F ;F
UeÇL;>M D P=@?LVW=@<<Ã=@?WM
ÂJUeÁYP)VW»ÂÁ/U
ºmU"¾ D ;>M D ?lºm;>»=@< ÇL;>=
= F º S
UN¾J<D P=eºm;>»s;?ÞºmULUN<
F
¾W=
F D MÊUN?ÞÆáVJ?W»ºm;UN?W=@<EU
S
<UNÀN;>»=@<¢<>=@?JÀNVW=@À D F È
Ë F
ß`_a¦'¡(',¢Ñ+¤"¡(àP) +¢Ñ+'*) è¢.':0243537698;:
íb?ºmÂJ;
F6F
D »ºm;UN?1IlÁ D Á%;<<¢P D ?lºm;UN?
F D Ç D S
=@<WP D ºmÂJUOM
F ;?lº D ?WM D MºmU¾ D V F D M;?ºm D »UN?
º[ÃL¼J;>»=@<<ÃV
F D M§ÆáU
S S
ºmU"¾ D »UNPs¼W=
S D MÈX6ÂJ;
?JU@ºsUN?J<ÃÞ¾LÃʺm D =@¼J¼
S
c « SIX<²JK®±D@A#deíBEJ"AEKSB <°¯f(LADGJK®~D@A
AEKS « JK®dEÑJ²AEKSBCAï/X6Â D Á/U
S Fº
?lºmVW=@<<ûUN?lº=@;?1ÈWX D F
FmF S S F F S FmF
S ;ÇL;>=@<OUN¾OZ D »ºjÈ1U FmF
S ;ÇL;>=@<lUN¾OZ
D
;>=@¾J<D »=@?¾ D ¾UNVJ?WM§ºmUº
S ;ÇL;>=@<UN¾OZ D »º
i Ü6÷$ò.¸¹[ùmô¹H²j ûå´Jµ2÷$ò1´O³J¹[ò.øÞµ2ù;Ü/ôøN³OòlkªøPÕµ8mÞòn:oÚmÙH·Úi³Oò.¶
íb?ºmÂJ;
F F F S S F G S F
Çe=@<VW=eºm;?JÀ`DMDMAsGLBCAqDMDGJDGJ"B
F
F ;?JÀY= ²AEICDGJA~DMDMA1GLBCAqELAEI K®L®AÞºmUé=@<<UeÁêV FD S Ä
JKDGI « AEKLDGJK® « <NAE¾Lî¼
S
p V F ;?JÀ=5J®;AE²AEGLACBEJä©BCDGJ"<K1K®L®A
F
D½ =@Ps¼J<D Ii¾UNVJ?WM
F
U@ƼJ<>=N» D F
U@Æ
ÂJUNVJ<>Mо D »ÂJU
F D ?1I2¼W=
ÂJUNVJ<>MY¾ D Z[UN;?lº§;?
= F
º=@?W» D VJ?W=@P)¾J;ÀNVJUNV
F <Ã;>M D ?lºm;àWD M"¾LÃ
»=@<<D MjJKDMKSBCAIELAEI JK®q¯CÑKSBEDGJ"<KÈeX6Â D Ã=@<<UeÁßV
F
=eºm;?JÀÊÆáVJ?W»ºm;UN?
F
ÃL;?JÀsÆáVJ?W»ºm;UN?
F
F D ?JUNVJÀNºmUÂW=zÇ D ºmULUN<
F
F S S F F F F S F F S
Ã<>=@?JÀNVW=@À D ÆáU
S
ºmU@º[ÃL¼ D ºmULUN<WV
F ;?JÀxºm D PÈLX6 D Ãs=@<<Oº=
ÈNX6Â D ¼ S D MO;>»=eº D&´Ç ´sNtvu0wXx
S D ºmV
ºiU@ÆW;?LÇNUO»=eºm;UN?
F
=@?WMÊUN?J<îºm D
UN? D F = S D FD <D »º D M§Á%ÂJ;>»Â§<>=@VJ?W»Â"? D º F ÆS
=eºm;?JÀsÆáVJ?W»ºm;UN?
F
IWÁ D »=@?P D ?lºm;UN?ÆáU
S
D½ =@Ps¼J<D
ºm D ÆáUN<<UeÁ%;?JÀ"UN? D F
È1X6Â D ¼ S D MO;>»=eº D#wKX}~X<|t6{{{x
S D ºmV
¾UNVJ?WMºmU È¢X6 D ¼ S D MO;>»=eº DwÈXÈ~sNt3{{{F<~x
F D <D ȼ
=@<<UeÁ%;?JÀ"ºmUåM D S ;Ç D
ÂJUNVJ<>MÞ?JU@º)=@<<UeÁ º[Á/U? D ;ÀNÂL¾UNV
S F
F D º6UN?J<ÃNÈLX6ÂJ;
F
È<sS´ÇX ÇLÈL´0 }KX5w
ÏNÒ
È
DPhilosopher is_a PN
f := leftPh giveRFork leftPh
eating right fork
left fork
f := rightPh giveLFork
.
þ2ÿ vJ ~ l]%o_{b{Efg1qNp{ab`[plkNa[]q)^llpfj{bfj^ll]m`[{2g`[fjcAz_d<
È<sS´ÇXz ÇLÈL´0
}KXzwlt¡
Æ x
F¢
´ÇwsNtz£Mµ00 ´¤N{~£<£Mµ0 ´KU{F}
z¥
È~sX¤<¤6{:u<xl{
wÈXÈ~sNtvul{{0ts~}ÈÇNtz£X¤N{X£°È0s´ÇX<¤N{X<|{¡3xC{XȳX¦Xs0§Nt¡33{XX<wÈ~xl{
s~}ÈÇtz£/X¤N{~£È00s{´XsX¤6{F<<|{05xl{
s~}ÈÇtF0{~£°È<sS´ÇXX¤6{F<<U{¨¡~~xl{Hȳ~¦<s<§6t¡~U{<XXwÈzx0xl{4¡ Æ x|©
ª õʵE²¸ ÙH·øL¹[µE²ø
ºmULUN</»=@<<D
MßÉEÌ%º=@<
U@Æ%MOÃL?W=@Ps;>»=@<<Ãå=
S ;F ;?JÀ=@?WMÞMO;
»UN<<D »ºm;UN?=@?WM"ÆáU
S
»UNPs¼JVOºm;?JÀ D ?W=@¾J<D M"º
S