Requirement: Having received event
e1
, dispatcher never notifies artists of
e2
.
Pattern: Absence
Scope: After-Until (P
is false after
Q
until R
.)
Template:
(defquery "absence_of_p_after_q_until_r" "nofair" (omega-star-less (sequence (interval :initial t :open t :ends-with '("Q")) (interval :ends-with '("P") :forbid '("R")))))
Predicates:
P = (rendezvous "dispatcher;dispatch_e2.notify_e2") Q = (rendezvous "adt_wrapper;dispatcher.notify_artists;e1") R = (rendezvous "dispatcher;dispatch_e1.notify_e1")
Notes:
INCA Query: Because of Property 2, parts (b)-(e),
we know that R
(resp. P
) is equivalent to
notifying registered artists of event e1
(resp. e2
).
(defquery "p04a" "nofair" (omega-star-less (sequence (interval :initial t :open t :ends-with '((rendezvous "adt_wrapper;dispatcher.notify_artists;e1"))) (interval :ends-with '((rendezvous "dispatcher;dispatch_e2.notify_e2")) :forbid '((rendezvous "dispatcher;dispatch_e1.notify_e1"))))))
Up to Property 4: Dispatcher notifies of what was received
Forward to Property 5: INCA
Back to Property 3: INCA