Requirement: If artist a1
registers
for event e1
before artist a2
does, then
once dispatcher receives e1
from the ADT, it will not
notify a2
before notifying a1
.
There does not appear to be any pattern which can be used to express this claim with the predicates available to us. So we must make the following query by hand:
INCA Query:
(defquery "p07a" "nofair" (omega-star-less (sequence (interval :initial t :open t :constraints '( (= "accept(dispatcher;dispatch_e1.register_e1;art1)" (+ 1 "accept(dispatcher;dispatch_e1.unregister_e1;art1)"))) :ends-with '((rendezvous "dispatcher;dispatch_e1.register_e1;art2"))) (interval :forbid '( (rendezvous "dispatcher;dispatch_e1.unregister_e1;art1") (rendezvous "dispatcher;dispatch_e1.unregister_e1;art2") (rendezvous "dispatch_e1;a1.notify_client_event;e1")) :constraints '( (>= 1 "accept(adt_wrapper;dispatcher.notify_artists;e1)")) :ends-with '( (rendezvous "dispatch_e1;a2.notify_client_event;e1"))))))
Up to Property 7: Dispatcher notifies artists in order
Forward to Property 8: INCA
Back to Property 6: INCA