Refinement, part (a): Artist a1
never
registers for event e1
if she is already registered for
e1
.
Pattern: Absence
Scope: Global (P
is false
globally.)
LTL Template: []!P
Predicates:
P = isregistereda1e1 && registera1e1LTL Formula:
[]!(isregistereda1e1 && registera1e1)
See the Never clause generated by SPIN from this LTL formula
Refinement, part (b): Artist a1
never
unregisters for event e1
unless she is already registered
for e1
.
Pattern: Absence
Scope: Global (P
is false
globally.)
LTL Template: []!P
Predicates:
P = !isregistereda1e1 && unregistera1e1LTL Formula:
[]!(!isregistereda1e1 && unregistera1e1)
See the Never clause generated by SPIN from this LTL formula
Up to Property 1: Artists register and unregister properly
Forward to Property 2: Native SPIN
Back to Property 0: Native SPIN