Correct Answer.
MODULE main
VAR
a : boolean;
b : boolean;
ASSIGN
init(a) := 0;
init(b) := 0;
next(a) := case
!a : 1;
1 : {0, 1};
esac;
next(b) := case
!a : 0;
b : 1;
1 : {0, 1};
esac;
FAIRNESS !a
SPEC AG (b -> AF !a)
Running the SMV program above, we obtain
nunk% smv test1.smv
-- specification AG (b -> AF (!a)) is true
resources used:
user time: 0.04 s, system time: 0.02 s
BDD nodes allocated: 27
Bytes allocated: 1245184
BDD nodes representing transition relation: 7 + 1
so the specification is true for all initial states under the
fairness constraint !a. Note that
AG(b
AF
a) states that at every state t
reachable from any initial state, if b is true at state t,
then so is AF
a.
Given the fairness constraint
of
a we know that on every fair path from
any state reachable from the initial state,
a eventually
holds. Therefore AF
a is true at
any state reachable
from the initial state under the fairness constraint
a.
Back to Question.
Next Question.