Refinement: If no artists are registered for event
e1
, dispatcher does not notify any artist of
e1
.
Pattern: Absence
Scope: Global (P
is false
globally.)
Template:
(defquery "global_absence_of_p" "nofair" (omega-star-less (sequence (interval :initial t :ends-with '("P")))))
Predicates:
P = (and (prefix "call") (contains "notify_client_event;e1)"))
Modifications: Added a :constraint
which represents the condition that no artist is registered for event
e1
(relying on Property
1). Added ":open t
" to allow multiple occurences of
P
in interval.
INCA Query:
(defquery "p05a" "nofair" (omega-star-less (sequence (interval :initial t :open t :constraints '( (= "accept(a1;dispatcher.register_event;art1;e1)" "accept(a1;dispatcher.unregister_event;art1;e1)") (= "accept(a2;dispatcher.register_event;art2;e1)" "accept(a2;dispatcher.unregister_event;art2;e1)")) :ends-with '( (and (prefix "call") (contains "notify_client_event;e1)")))))))
Up to Property 5: Dispatcher does not block if no one is registered
Forward to Property 6: INCA
Back to Property 4: INCA