❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❖✈❡r❧❛♣ ❛♥❞ ■♥❞❡♣❡♥❞❡♥❝❡ ✐♥ ▼✉❧t✐s❡t ❈♦♠♣r❡❤❡♥s✐♦♥ P❛tt❡r♥s
❊❞♠✉♥❞ ❙✳▲✳ ▲❛♠ ■❧✐❛♥♦ ❈❡r✈❡s❛t♦
s❧❧❛♠❅q❛t❛r✳❝♠✉✳❡❞✉ ✐❧✐❛♥♦❅❝♠✉✳❡❞✉
❙✉♣♣♦rt❡❞ ❜② ◗◆❘❋ ❣r❛♥ts ◆P❘P ✹✲✶✺✾✸✲✶✲✷✻✵ ❛♥❞ ✹✲✸✹✶✲✶✲✵✺✾
❏✉♥❡ ✷✵✶✻
r tst - - PowerPoint PPT Presentation
tt Pr t ss r tst rs Pttrs
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❊❞♠✉♥❞ ❙✳▲✳ ▲❛♠ ■❧✐❛♥♦ ❈❡r✈❡s❛t♦
s❧❧❛♠❅q❛t❛r✳❝♠✉✳❡❞✉ ✐❧✐❛♥♦❅❝♠✉✳❡❞✉
❙✉♣♣♦rt❡❞ ❜② ◗◆❘❋ ❣r❛♥ts ◆P❘P ✹✲✶✺✾✸✲✶✲✷✻✵ ❛♥❞ ✹✲✸✹✶✲✶✲✵✺✾
❏✉♥❡ ✷✵✶✻
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
✶
❚❤❡ ❈♦♥t❡①t
✷
❚❤❡ Pr♦❜❧❡♠
✸
❚❤❡ ✭P❛rt✐❛❧✮ ❙♦❧✉t✐♦♥
✹
❚❤❡ ❈♦♥❝❧✉s✐♦♥s
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❆ ♣r♦❣r❛♠♠✐♥❣ ❧❛♥❣✉❛❣❡ ❢♦r ❞✐str✐❜✉t❡❞ ♠♦❜✐❧❡ ❛♣♣s
❉❡s✐❣♥❡❞ t♦ ✐♠♣❧❡♠❡♥t ♠♦❜✐❧❡ ❛♣♣s t❤❛t r✉♥ ❛❝r♦ss ❆♥❞r♦✐❞ ❞❡✈✐❝❡s ❊♥❛❜❧❡s ❤✐❣❤✲❧❡✈❡❧ s②st❡♠✲❝❡♥tr✐❝ ❛❜str❛❝t✐♦♥ s♣❡❝✐✜❡s ❞✐str✐❜✉t❡❞ ❝♦♠♣✉t❛t✐♦♥s ❛s ♦♥❡ ❞❡❝❧❛r❛t✐✈❡ ♣r♦❣r❛♠ ❝♦♠♣✐❧❡s ✐♥t♦ ♥♦❞❡✲❝❡♥tr✐❝ ❢r❛❣♠❡♥ts✱ ❡①❡❝✉t❡❞ ❜② ❡❛❝❤ ♥♦❞❡ ❚②♣❡❞ ♠✉❧t✐s❡t r❡✇r✐t✐♥❣ ✇✐t❤ ❞❡❝❡♥tr❛❧✐③❛t✐♦♥ ❝♦♠♣r❡❤❡♥s✐♦♥ ♣❛tt❡r♥s t✐♠❡ s②♥❝❤r♦♥✐③❛t✐♦♥ ♠♦❞✉❧❛r✐t② ❉❡❝❧❛r❛t✐✈❡✱ ❝♦♥❝✐s❡✱ r♦♦ts ✐♥ ❧✐♥❡❛r ❧♦❣✐❝
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❆ ♣r♦❣r❛♠♠✐♥❣ ❧❛♥❣✉❛❣❡ ❢♦r ❞✐str✐❜✉t❡❞ ♠♦❜✐❧❡ ❛♣♣s
❉❡s✐❣♥❡❞ t♦ ✐♠♣❧❡♠❡♥t ♠♦❜✐❧❡ ❛♣♣s t❤❛t r✉♥ ❛❝r♦ss ❆♥❞r♦✐❞ ❞❡✈✐❝❡s ❊♥❛❜❧❡s ❤✐❣❤✲❧❡✈❡❧ s②st❡♠✲❝❡♥tr✐❝ ❛❜str❛❝t✐♦♥ s♣❡❝✐✜❡s ❞✐str✐❜✉t❡❞ ❝♦♠♣✉t❛t✐♦♥s ❛s ♦♥❡ ❞❡❝❧❛r❛t✐✈❡ ♣r♦❣r❛♠ ❝♦♠♣✐❧❡s ✐♥t♦ ♥♦❞❡✲❝❡♥tr✐❝ ❢r❛❣♠❡♥ts✱ ❡①❡❝✉t❡❞ ❜② ❡❛❝❤ ♥♦❞❡ ❚②♣❡❞ ♠✉❧t✐s❡t r❡✇r✐t✐♥❣ ✇✐t❤ ❞❡❝❡♥tr❛❧✐③❛t✐♦♥ ❝♦♠♣r❡❤❡♥s✐♦♥ ♣❛tt❡r♥s t✐♠❡ s②♥❝❤r♦♥✐③❛t✐♦♥ ♠♦❞✉❧❛r✐t② ❉❡❝❧❛r❛t✐✈❡✱ ❝♦♥❝✐s❡✱ r♦♦ts ✐♥ ❧✐♥❡❛r ❧♦❣✐❝
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
■♥ ♠❛t❤✿
♣✐✈♦t❙✇❛♣ ❳ s✇❛♣ ❨ P ❳ ✐t❡♠ ❉ ❉ P
❉ ❳s
❨ ✐t❡♠ ❉ ❉ P
❉ ❨s
❨ ✐t❡♠ ❉
❉ ❳s
❳ ✐t❡♠ ❉
❉ ❨s
■♥ ❝♦❞❡✿
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
■♥ ♠❛t❤✿
♣✐✈♦t❙✇❛♣ : [❳]s✇❛♣(❨ , P) [❳]✐t❡♠(❉) | ❉ ≥ P❉❳s [❨ ]✐t❡♠(❉) | ❉ ≤ P❉❨s ⊸ [❨ ]✐t❡♠(❉)❉❳s [❳]✐t❡♠(❉)❉❨s
■♥ ❝♦❞❡✿
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
■♥ ♠❛t❤✿
♣✐✈♦t❙✇❛♣ : [❳]s✇❛♣(❨ , P) [❳]✐t❡♠(❉) | ❉ ≥ P❉❳s [❨ ]✐t❡♠(❉) | ❉ ≤ P❉❨s ⊸ [❨ ]✐t❡♠(❉)❉❳s [❳]✐t❡♠(❉)❉❨s
■♥ ❝♦❞❡✿
predicate swap :: (loc,int) -> trigger. predicate item :: int -> fact. predicate display :: (string,A) -> actuator. rule pivotSwap :: [X]swap(Y,P), {[X]item(D)|D->Xs. D >= P}, {[Y]item(D)|D->Ys. D <= P}
[Y]display(Msg,size(Xs),X), {[Y]item(D)|D<-Xs} where Msg = "Received %s items from %s".
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
[X]swap(Y,P) {[X]item(D)|D->Xs.D>=P} --o [X]display(Msg,size(Ys),Y), {[X]item(D)|D<-Ys} {[Y]item(D)|D->Ys.D<=P} [Y]display(Msg,size(Xs),X), {[Y]item(D)|D<-Xs} where Msg = "Received %s items from %s".
▲❡t s = swap✱ i = item ❛♥❞ d = display
Node: n✶
s(n✷, ✺), i(✹), i(✻), i(✽)
Node: n✷
i(✸), i(✷✵)
Node: n✸
s(n✷, ✶✵), i(✶✽) ✶ ✶ ✷ ✸ ✹ ✷ ✷ ✶ ✻ ✽ ✷✵ ✸ ✷ ✶✵ ✶✽ ✶ ✶ ✷ ✹ ✸ ✷ ✷ ✶ ✶ ✸ ✶✽ ✷✵ ✸ ✷ ✷ ✻ ✽
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
[X]swap(Y,P) {[X]item(D)|D->Xs.D>=P} --o [X]display(Msg,size(Ys),Y), {[X]item(D)|D<-Ys} {[Y]item(D)|D->Ys.D<=P} [Y]display(Msg,size(Xs),X), {[Y]item(D)|D<-Xs} where Msg = "Received %s items from %s".
▲❡t s = swap✱ i = item ❛♥❞ d = display
Node: n✶
s(n✷, ✺), i(✹), i(✻), i(✽)
i(✸), i(✷✵)
Node: n✸
s(n✷, ✶✵), i(✶✽) ✶ ✶ ✷ ✸ ✹ ✷ ✷ ✶ ✻ ✽ ✷✵ ✸ ✷ ✶✵ ✶✽ ✶ ✶ ✷ ✹ ✸ ✷ ✷ ✶ ✶ ✸ ✶✽ ✷✵ ✸ ✷ ✷ ✻ ✽
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
[X]swap(Y,P) {[X]item(D)|D->Xs.D>=P} --o [X]display(Msg,size(Ys),Y), {[X]item(D)|D<-Ys} {[Y]item(D)|D->Ys.D<=P} [Y]display(Msg,size(Xs),X), {[Y]item(D)|D<-Xs} where Msg = "Received %s items from %s".
▲❡t s = swap✱ i = item ❛♥❞ d = display
Node: n✶
s(n✷, ✺), i(✹), i(✻), i(✽)
i(✸), i(✷✵)
Node: n✸
s(n✷, ✶✵), i(✶✽)
→
Node: n✶
d(”✶ from n✷”) i(✸), i(✹)
Node: n✷
d(”✷ from n✶”) i(✻), i(✽), i(✷✵)
Node: n✸
s(n✷, ✶✵), i(✶✽) ✶ ✶ ✷ ✹ ✸ ✷ ✷ ✶ ✶ ✸ ✶✽ ✷✵ ✸ ✷ ✷ ✻ ✽
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
[X]swap(Y,P) {[X]item(D)|D->Xs.D>=P} --o [X]display(Msg,size(Ys),Y), {[X]item(D)|D<-Ys} {[Y]item(D)|D->Ys.D<=P} [Y]display(Msg,size(Xs),X), {[Y]item(D)|D<-Xs} where Msg = "Received %s items from %s".
▲❡t s = swap✱ i = item ❛♥❞ d = display
Node: n✶
s(n✷, ✺), i(✹), i(✻), i(✽)
i(✸), i(✷✵)
Node: n✸
s(n✷, ✶✵), i(✶✽)
→
Node: n✶
d(”✶ from n✷”) i(✸), i(✹)
Node: n✷
d(”✷ from n✶”) i(✻), i(✽), i(✷✵)
Node: n✸
s(n✷, ✶✵), i(✶✽)
✶ ✷ ✹ ✸ ✷ ✷ ✶ ✶ ✸ ✶✽ ✷✵ ✸ ✷ ✷ ✻ ✽
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
[X]swap(Y,P) {[X]item(D)|D->Xs.D>=P} --o [X]display(Msg,size(Ys),Y), {[X]item(D)|D<-Ys} {[Y]item(D)|D->Ys.D<=P} [Y]display(Msg,size(Xs),X), {[Y]item(D)|D<-Xs} where Msg = "Received %s items from %s".
▲❡t s = swap✱ i = item ❛♥❞ d = display
Node: n✶
s(n✷, ✺), i(✹), i(✻), i(✽)
i(✸), i(✷✵)
Node: n✸
s(n✷, ✶✵), i(✶✽)
→
Node: n✶
d(”✶ from n✷”) i(✸), i(✹)
Node: n✷
d(”✷ from n✶”) i(✻), i(✽), i(✷✵)
Node: n✸
s(n✷, ✶✵), i(✶✽)
Node: n✶
d(”✶ from n✷”) i(✹), i(✸)
Node: n✷
d(”✷ from n✶”) d(”✶ from n✸”) i(✶✽), i(✷✵)
Node: n✸
d(”✷ from n✷”) i(✻), i(✽)
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❉♦✇♥❧♦❛❞ ❢r♦♠
https://github.com/sllam/comingle ❙❤♦✇ ②♦✉r s✉♣♣♦rt✱ ♣❧❡❛s❡ ❙❚❆❘ ❈♦♠✐♥❣❧❡ ●✐t❍✉❜ r❡♣♦s✐t♦r②✦
◆❡t✇♦r❦✐♥❣ ♦✈❡r ❲✐✜✲❉✐r❡❝t✱ ◆❋❈✱ ▲❆◆ ❛♥❞ ❇❧✉❡t♦♦t❤
s✉♣♣♦rt ❢♦r ❞r♦♣✲✐♥✴❞r♦♣✲♦✉t
Pr♦♦❢✲♦❢✲❝♦♥❝❡♣t ❛♣♣s
❉r❛❣ ❘❛❝✐♥❣ ✖ ❘❛❝✐♥❣ ❝❛rs ❛❝r♦ss ♠♦❜✐❧❡ ❞❡✈✐❝❡s ❇❛tt❧❡s❤✐♣ ✖ ❚r❛❞✐t✐♦♥❛❧ ♠❛r✐t✐♠❡ ✇❛r ❣❛♠❡✱ ♠✉❧t✐✲♣❛rt② ❲✐✜✲❉✐r❡❝t ❞✐r❡❝t♦r② ✖ ▼❛✐♥t❛✐♥✐♥❣ ■P t❛❜❧❡ ❢♦r ❲✐✜✲❉✐r❡❝t ▼✉s✐❝❛❧ s❤❛r❡s ✖ ❇♦✉♥❝❡ ❛ ♠✉s✐❝❛❧ ♣✐❡❝❡ ❜❡t✇❡❡♥ ❞❡✈✐❝❡s ❙✇❛r❜❜❧❡ ✖ ❘❡❛❧✲t✐♠❡ t❡❛♠✲❜❛s❡❞ s❝r❛❜❜❧❡ ▼❛✜❛ ✖ ❚r❛❞✐t✐♦♥❛❧ ♣❛rt② ❣❛♠❡✱ ✇✐t❤ ❛ ♠♦❜✐❧❡ t✇✐st ❈♦❉♦♦❞❧❡ ✖ ■♥t❡r❛❝t✐✈❡ ♣r❡s❡♥t❛t✐♦♥ t♦♦❧
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
✶
❚❤❡ ❈♦♥t❡①t
✷
❚❤❡ Pr♦❜❧❡♠
✸
❚❤❡ ✭P❛rt✐❛❧✮ ❙♦❧✉t✐♦♥
✹
❚❤❡ ❈♦♥❝❧✉s✐♦♥s
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
✭❆ ❈♦♠✐♥❣❧❡ ♣r♦❣r❛♠ P ✐s ❛ s❡t ♦❢ r✉❧❡s r : ¯ E | g ⊸ B ✇❤❡r❡ B ✐s ❛❧s♦ ❛ ♠✉❧t✐s❡ts ♦❢ ❡①♣r❡ss✐♦♥s❀ ✇❡ ❛r❡ ❛❧s♦ ✐❣♥♦r✐♥❣ ❧♦❝❛t✐♦♥s ❛♥❞ t②♣❡s✮
❆ ❤❡❛❞ ♣❛tt❡r♥ ¯ E | g ❝♦♥s✐sts ♦❢
❛ ♠✉❧t✐s❡t ♦❢ ❡①♣r❡ss✐♦♥s ¯ E ❛ ❇♦♦❧❡❛♥ ❣✉❛r❞ g
❆♥ ❡①♣r❡ss✐♦♥ E ✐s ❡✐t❤❡r
❛ ❢❛❝t✿ p( t) ❛ ❝♦♠♣r❡❤❡♥s✐♦♥✿ p( t) | g
xT
▼✉❧t✐s❡t ♦❢ ❛❧❧ p( t) ✐♥ t❤❡ st❛t❡ t❤❛t s❛t✐s❢② g
t ❈♦♠♣r❡❤❡♥s✐♦♥ r❛♥❣❡ T ✐s t❤❡ ♠✉❧t✐s❡t ♦❢ ❛❧❧ ❜✐♥❞✐♥❣s x
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❆ st❛t❡ ❙t ✐s ❛ ♠✉❧t✐s❡t ♦❢ ❣r♦✉♥❞ ❢❛❝ts ▼❛t❝❤✐♥❣ ❛ ❤❡❛❞ ♣❛tt❡r♥ H = ¯ E | g ❛❣❛✐♥st ❛ st❛t❡ ❙t ✇✐t❤ r❡s✐❞✉❛❧ ❙t−✿ ❙t
H
❍♦❧❞s ✐❢ ❙t = ❙t+, ❙t− ❛♥❞ t❤❡r❡ ✐s ❛ ❣r♦✉♥❞ s✉❜st✐t✉t✐♦♥ θ s✉❝❤ t❤❛t
θ ¯ E ♠❛t❝❤❡s ❙t+ ❙t− ❞♦❡s ♥♦t ♠❛t❝❤ ❛♥② ❝♦♠♣r❡❤❡♥s✐♦♥ ✐♥ θ ¯ E θg ✐s ✈❛❧✐❞
θ ¯ E head ❙t+ θ ¯ E ¬
head ❙t−
| = θg ❙t+, ❙t−
¯ E|g
− → ❙t−
❈♦♠♣r❡❤❡♥s✐♦♥s ✐♥ ¯ E | g ♠❛t❝❤ ♠❛①✐♠❛❧ ♣♦rt✐♦♥s ♦❢ ❙t
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❲❤❡♥ ❞♦ t✇♦ ❤❡❛❞ ♣❛tt❡r♥s ✐♥t❡r❢❡r❡ ✇✐t❤ ❡❛❝❤ ♦t❤❡r❄
❯s❡❢✉❧ ❢♦r
❞❡❜✉❣❣✐♥❣ ✐♠♣❧❡♠❡♥t❛t✐♦♥ r❡❛s♦♥✐♥❣ ❝♦st ❛♥❛❧②s✐s
■♥t❡r❢❡r❡♥❝❡❄
❖♥❡✬s ❝♦♥s✉♠❡❞ ❢❛❝ts ♠❛② ♣r❡✈❡♥t t❤❡ ♦t❤❡r ❢r♦♠ ❜❡✐♥❣ ❛♣♣❧✐❝❛❜❧❡ ✳ ✳ ✳ ♣♦ss✐❜❧② ❝♦♥❝✉rr❡♥t❧②
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H✶ = ¯ E✶ | g✶ ❛♥❞ H✷ = ¯ E✷ | g✷ ✇✐t❤♦✉t ✈❛r✐❛❜❧❡s ✐♥ ❝♦♠♠♦♥
♦✈❡r❧❛♣ ✐❢ t❤❡r❡ ✐s ❛ st❛t❡ ❙t s✉❝❤ t❤❛t
❙t
H✶
→ ❙t✶ ❢♦r s♦♠❡ ❙t✶ ❛♥❞ ❙t
H✷
→ ❙t✷ ❢♦r s♦♠❡ ❙t✷✱
❜✉t t❤❡r❡ ✐s ♥♦ ❙t′ s✉❝❤ t❤❛t ❙t
H✶H✷
− − → ❙t′✳
❊✳❣✳✱ H✶ = p(a, X), q(X) ❛♥❞ H✷ = p(Y , Y ), r(Z) ❚❛❦❡ ❙t = (a, a), q(a), r(b)
❛r❡ ✐♥❞❡♣❡♥❞❡♥t ✐❢ t❤❡② ❞♦♥✬t ♦✈❡r❧❛♣
❊✳❣✳✱ H✶ ❛♥❞ H′
✷ = p(b, Y ), r(Z)
❆r❡ t❤❡r❡ ❛❧❣♦r✐t❤♠✐❝ ❝r✐t❡r✐❛❄
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
✶
❚❤❡ ❈♦♥t❡①t
✷
❚❤❡ Pr♦❜❧❡♠
✸
❚❤❡ ✭P❛rt✐❛❧✮ ❙♦❧✉t✐♦♥
✹
❚❤❡ ❈♦♥❝❧✉s✐♦♥s
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H = ¯ F✿ ❡♠♣t② ❣✉❛r❞ ❛♥❞ ♥♦ ❝♦♠♣r❡❤❡♥s✐♦♥s H✶ ❛♥❞ H✷ ♦✈❡r❧❛♣ ✐✛ ♦♥❡ ❝♦♥t❛✐♥s ❛ ❢❛❝t ✉♥✐✜❛❜❧❡ ✐♥ t❤❡ ♦t❤❡r✿
H✶ = p( t✶), ¯ F ′
✶
H✷ = p( t✷), ¯ F ′
✷
t❤❡r❡ ✐s θ s✉❝❤ t❤❛t θ t✶ = θ t✷
◆♦t❡s✿
p( t✶) ❛♥❞ p( t✷) ♠❛② ♥♦t ❜❡ ✉♥✐q✉❡ P♦❧②♥♦♠✐❛❧ ❝♦♠♣❧❡①✐t② ✳ ✳ ✳ ❢♦r ✇❡❧❧✲❜❡❤❛✈❡❞ t❡r♠ ❧❛♥❣✉❛❣❡s ■♠♣❧❡♠❡♥t❡❞ ✉s✐♥❣ t❡r♠✲❧❛♥❣✉❛❣❡ ✉♥✐✜❝❛t✐♦♥
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H = ¯ F | g✿ ♥♦ ❝♦♠♣r❡❤❡♥s✐♦♥s ✖ ❢♦✉♥❞ ✐♥ ♠♦st r✉❧❡✲❜❛s❡❞ ❧❛♥❣✉❛❣❡s H✶ ❛♥❞ H✷ ♦✈❡r❧❛♣ ✐✛
H✶ = p( t✶), ¯ F ′
✶
H✷ = p( t✷), ¯ F ′
✷
t❤❡r❡ ✐s θ s✉❝❤ t❤❛t θ t✶ = θ t✷ ❛♥❞ | = θg✶ ❛♥❞ | = θg✷
❊①❛♠♣❧❡s✿
H✶ = p(X) | X > ✸ ❛♥❞ H✷ = p(Y ) | Y < ✶✵ ♦✈❡r❧❛♣
❊✳❣✳✱ ✐♥ st❛t❡ p(✼)
H✶ ❛♥❞ H′
✷ = p(Y ) | Y < ✸ ❛r❡ ✐♥❞❡♣❡♥❞❡♥t
■♠♣❧❡♠❡♥t❛t✐♦♥✿ ❝♦♠♣✉t❡ ✉♥✐✜❡rs θ ❢♦r p( t✶) ❛♥❞ p( t✷)✱ ❛♥❞ t❤❡♥ ♣❛ss θg✶ ❛♥❞ θg✷ t♦ ❛♥ ❙▼❚ s♦❧✈❡r
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H = ¯ E | g✿ ❝♦♠♣r❡❤❡♥s✐♦♥ r❛♥❣❡s ✐s ♥❡✈❡r ✉s❡❞
p(X), p(x) | x > ✵x❳s ❜✉t ♥♦t p(X), p(x) | x > ✵x❳s | s✐③❡(❳s) = ✵
H✶ ❛♥❞ H✷ ♦✈❡r❧❛♣ ❡①❛❝t❧② ❛s ✐♥ ❧❛st ❝❛s❡✦
❖♣❡♥✲❡♥❞❡❞ ❝♦♠♣r❡❤❡♥s✐♦♥s ❝❛♥ ♥❡✈❡r ❢❛✐❧ ❆t ♠♦st r❡t✉r♥ t❤❡ ❡♠♣t② ♠✉❧t✐s❡t ❈♦♥s✐❞❡r H✶ = p(X) ❛♥❞ H✷ = p(x)x❳s✿
p(a)
H✶
→ ∅ p(a)
H✷
→ ∅ p(a)
H✶H✷
− − → ∅ ❜❡❝❛✉s❡ ∅
H✷
→ ∅
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❯♥s♦❧✈❡❞✦
✶ ❳s
❳s ❛♥❞
✷
❛r❡ ♦✈❡r❧❛♣♣✐♥❣✿
❙✉❝❝❡❡❞ s❡♣❛r❛t❡❧② ♦♥ ❙t ❈♦♠♣♦s✐t✐♦♥ ❢❛✐❧s ❛s ❣✉❛r❞ ♦❢
✷ ❢❛✐❧s
❇✉t
✶
✸
❳s
❳s ❛♥❞
✷
✺ ❛r❡ ✐♥❞❡♣❡♥❞❡♥t✿
❜❡❝❛✉s❡ ♥♦ ❢❛❝t ❝❛♥ ♠❛t❝❤ ❜♦t❤ ♣❛tt❡r♥s
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❯♥s♦❧✈❡❞✦ H✶ = p(x)x❳s, q(Y ) | Y ∈ ❳s ❛♥❞ H✷ = p(Z) ❛r❡ ♦✈❡r❧❛♣♣✐♥❣✿
❙✉❝❝❡❡❞ s❡♣❛r❛t❡❧② ♦♥ ❙t = p(a), q(a) ❈♦♠♣♦s✐t✐♦♥ ❢❛✐❧s ❛s ❣✉❛r❞ ♦❢ H✷ ❢❛✐❧s
❇✉t
✶
✸
❳s
❳s ❛♥❞
✷
✺ ❛r❡ ✐♥❞❡♣❡♥❞❡♥t✿
❜❡❝❛✉s❡ ♥♦ ❢❛❝t ❝❛♥ ♠❛t❝❤ ❜♦t❤ ♣❛tt❡r♥s
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❯♥s♦❧✈❡❞✦ H✶ = p(x)x❳s, q(Y ) | Y ∈ ❳s ❛♥❞ H✷ = p(Z) ❛r❡ ♦✈❡r❧❛♣♣✐♥❣✿
❙✉❝❝❡❡❞ s❡♣❛r❛t❡❧② ♦♥ ❙t = p(a), q(a) ❈♦♠♣♦s✐t✐♦♥ ❢❛✐❧s ❛s ❣✉❛r❞ ♦❢ H✷ ❢❛✐❧s
❇✉t H✶ = p(x) | x < ✸x❳s, q(Y ) | Y ∈ ❳s ❛♥❞ H✷ = p(Z) | Z > ✺ ❛r❡ ✐♥❞❡♣❡♥❞❡♥t✿
❜❡❝❛✉s❡ ♥♦ ❢❛❝t p(n) ❝❛♥ ♠❛t❝❤ ❜♦t❤ ♣❛tt❡r♥s
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H✶ = p(x)x❳s | s✐③❡(❳s) > ✵ ❛♥❞ H✷ = p(Z) ❛r❡ ♦✈❡r❧❛♣♣✐♥❣✿
❙✉❝❝❡❡❞ s❡♣❛r❛t❡❧② ♦♥ ❙t ❈♦♠♣♦s✐t✐♦♥ ❢❛✐❧s ❛s ❳s s❡t t♦ ✱ ✈✐♦❧❛t✐♥❣ ❣✉❛r❞
❇✉t
✶ ❳s
s✐③❡ ❳s ✽ ❛♥❞
✷
❛r❡ ✐♥❞❡♣❡♥❞❡♥t✿
❜❡❝❛✉s❡ ✐t ❤❛s ❛♥ ✉♣♣❡r ❜♦✉♥❞ ♦♥ t❤❡ ❝♦♠♣r❡❤❡♥s✐♦♥ r❛♥❣❡✱ ♥♦t ❛ ❧♦✇❡r ❜♦✉♥❞
◆❡❣❛t✐♦♥✲❛s✲❛❜s❡♥❝❡✿
✶ ❳s
s✐③❡ ❳s ✵ ❛♥❞
✷
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H✶ = p(x)x❳s | s✐③❡(❳s) > ✵ ❛♥❞ H✷ = p(Z) ❛r❡ ♦✈❡r❧❛♣♣✐♥❣✿
❙✉❝❝❡❡❞ s❡♣❛r❛t❡❧② ♦♥ ❙t = p(a) ❈♦♠♣♦s✐t✐♦♥ ❢❛✐❧s ❛s ❳s s❡t t♦ ∅✱ ✈✐♦❧❛t✐♥❣ ❣✉❛r❞
❇✉t
✶ ❳s
s✐③❡ ❳s ✽ ❛♥❞
✷
❛r❡ ✐♥❞❡♣❡♥❞❡♥t✿
❜❡❝❛✉s❡ ✐t ❤❛s ❛♥ ✉♣♣❡r ❜♦✉♥❞ ♦♥ t❤❡ ❝♦♠♣r❡❤❡♥s✐♦♥ r❛♥❣❡✱ ♥♦t ❛ ❧♦✇❡r ❜♦✉♥❞
◆❡❣❛t✐♦♥✲❛s✲❛❜s❡♥❝❡✿
✶ ❳s
s✐③❡ ❳s ✵ ❛♥❞
✷
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H✶ = p(x)x❳s | s✐③❡(❳s) > ✵ ❛♥❞ H✷ = p(Z) ❛r❡ ♦✈❡r❧❛♣♣✐♥❣✿
❙✉❝❝❡❡❞ s❡♣❛r❛t❡❧② ♦♥ ❙t = p(a) ❈♦♠♣♦s✐t✐♦♥ ❢❛✐❧s ❛s ❳s s❡t t♦ ∅✱ ✈✐♦❧❛t✐♥❣ ❣✉❛r❞
❇✉t H✶ = p(x)x❳s | s✐③❡(❳s) ≤ ✽ ❛♥❞ H✷ = p(Z) ❛r❡ ✐♥❞❡♣❡♥❞❡♥t✿
❜❡❝❛✉s❡ ✐t ❤❛s ❛♥ ✉♣♣❡r ❜♦✉♥❞ ♦♥ t❤❡ ❝♦♠♣r❡❤❡♥s✐♦♥ r❛♥❣❡✱ ♥♦t ❛ ❧♦✇❡r ❜♦✉♥❞
◆❡❣❛t✐♦♥✲❛s✲❛❜s❡♥❝❡✿
✶ ❳s
s✐③❡ ❳s ✵ ❛♥❞
✷
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H✶ = p(x)x❳s | s✐③❡(❳s) > ✵ ❛♥❞ H✷ = p(Z) ❛r❡ ♦✈❡r❧❛♣♣✐♥❣✿
❙✉❝❝❡❡❞ s❡♣❛r❛t❡❧② ♦♥ ❙t = p(a) ❈♦♠♣♦s✐t✐♦♥ ❢❛✐❧s ❛s ❳s s❡t t♦ ∅✱ ✈✐♦❧❛t✐♥❣ ❣✉❛r❞
❇✉t H✶ = p(x)x❳s | s✐③❡(❳s) ≤ ✽ ❛♥❞ H✷ = p(Z) ❛r❡ ✐♥❞❡♣❡♥❞❡♥t✿
❜❡❝❛✉s❡ ✐t ❤❛s ❛♥ ✉♣♣❡r ❜♦✉♥❞ ♦♥ t❤❡ ❝♦♠♣r❡❤❡♥s✐♦♥ r❛♥❣❡✱ ♥♦t ❛ ❧♦✇❡r ❜♦✉♥❞
◆❡❣❛t✐♦♥✲❛s✲❛❜s❡♥❝❡✿
✶ ❳s
s✐③❡ ❳s ✵ ❛♥❞
✷
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H✶ = p(x)x❳s | s✐③❡(❳s) > ✵ ❛♥❞ H✷ = p(Z) ❛r❡ ♦✈❡r❧❛♣♣✐♥❣✿
❙✉❝❝❡❡❞ s❡♣❛r❛t❡❧② ♦♥ ❙t = p(a) ❈♦♠♣♦s✐t✐♦♥ ❢❛✐❧s ❛s ❳s s❡t t♦ ∅✱ ✈✐♦❧❛t✐♥❣ ❣✉❛r❞
❇✉t H✶ = p(x)x❳s | s✐③❡(❳s) ≤ ✽ ❛♥❞ H✷ = p(Z) ❛r❡ ✐♥❞❡♣❡♥❞❡♥t✿
❜❡❝❛✉s❡ ✐t ❤❛s ❛♥ ✉♣♣❡r ❜♦✉♥❞ ♦♥ t❤❡ ❝♦♠♣r❡❤❡♥s✐♦♥ r❛♥❣❡✱ ♥♦t ❛ ❧♦✇❡r ❜♦✉♥❞
◆❡❣❛t✐♦♥✲❛s✲❛❜s❡♥❝❡✿ H✶ = p(x)x❳s | s✐③❡(❳s) = ✵ ❛♥❞ H✷ = p(Z)
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H✶ = p(x)x❳s, q(y)y❳s ❛♥❞ H✷ = p(Z) ❛r❡ ♦✈❡r❧❛♣♣✐♥❣✿
❙✉❝❝❡❡❞ s❡♣❛r❛t❡❧② ♦♥ ❙t = p(a), q(a) ❈♦♠♣♦s✐t✐♦♥ ❢❛✐❧s
✶ ❳s
❳s
❨s
❛♥❞
✷
❛r❡ ✐♥❞❡♣❡♥❞❡♥t✿
❜❡❝❛✉s❡ ✐t ✜❧t❡rs ♦✉t ✈❛❧✉❡s ❢♦r ❨s r❛t❤❡r t❤❛♥ r❡q✉✐r✐♥❣ t❤❛t s♦♠❡ t❡r♠s ❜❡ ♣r❡s❡♥t
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
H✶ = p(x)x❳s, q(y)y❳s ❛♥❞ H✷ = p(Z) ❛r❡ ♦✈❡r❧❛♣♣✐♥❣✿
❙✉❝❝❡❡❞ s❡♣❛r❛t❡❧② ♦♥ ❙t = p(a), q(a) ❈♦♠♣♦s✐t✐♦♥ ❢❛✐❧s
H✶ = p(x)x❳s, q(y) | y ∈ ❳sy❨s ❛♥❞ H✷ = p(Z) ❛r❡ ✐♥❞❡♣❡♥❞❡♥t✿
❜❡❝❛✉s❡ ✐t ✜❧t❡rs ♦✉t ✈❛❧✉❡s ❢♦r ❨s r❛t❤❡r t❤❛♥ r❡q✉✐r✐♥❣ t❤❛t s♦♠❡ t❡r♠s ❜❡ ♣r❡s❡♥t
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
✶
❚❤❡ ❈♦♥t❡①t
✷
❚❤❡ Pr♦❜❧❡♠
✸
❚❤❡ ✭P❛rt✐❛❧✮ ❙♦❧✉t✐♦♥
✹
❚❤❡ ❈♦♥❝❧✉s✐♦♥s
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
▲♦ts ♠♦r❡ ✇♦r❦ t♦ ❜❡ ❞♦♥❡✦
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
■♥s♣✐r❡❞ ❜② ❈❤r♦♠❡ ❘❛❝❡r ✭www.chrome.com/racer✮ ❘❛❝❡ ❛❝r♦ss ❛ ❣r♦✉♣ ♦❢ ♠♦❜✐❧❡ ❞❡✈✐❝❡s P✉r❡❧② ❧♦❝❛❧ ❝♦♠♠✉♥✐❝❛t✐♦♥s
❈♦♥t❡①t Pr♦❜❧❡♠ ❙♦❧✉t✐♦♥ ❈♦♥❝❧✉s✐♦♥s
rule init :: [I]initRace(Ls)
{[I]has(P), [P]all(Ps), [P]at(I), [P]rendTrack(Ls) | P<-Ps} where (Cs,E) = makeChain(I,Ls), Ps = list2mset(Ls). rule start :: [X]all(Ps) \ [X]startRace() --o {[P]release()|P<-Ps}. rule tap :: [X]at(Y) \ [X]sendTap() --o [Y]recvTap(X). rule trans :: [X]next(Z) \ [X]exiting(Y), [Y]at(X) --o [Z]has(Y), [Y]at(Z). rule win :: [X]last() \ [X]all(Ps), [X]exiting(Y) --o {[P]decWinner(Y) | P <- Ps}.
✰ ✽✻✷ ❧✐♥❡s ♦❢ ♣r♦♣❡r❧② ✐♥❞❡♥t❡❞ ❏❛✈❛ ❝♦❞❡
✼✵✵++ ❧✐♥❡s ♦❢ ❧♦❝❛❧ ♦♣❡r❛t✐♦♥s ✭❡✳❣✳✱ ❞✐s♣❧❛② ❛♥❞ ❯■ ♦♣❡r❛t✐♦♥s✮ < ✶✵✵ ❧✐♥❡s ❢♦r ✐♥✐t✐❛❧✐③✐♥❣ ❈♦♠✐♥❣❧❡ r✉♥✲t✐♠❡