UniTO/anno2/YearI/SecondSem/VPC/labs/analisi/es3/ferra/3.5-NuSMV.smv
Francesco Mecca 5e286062f8 MCAD 2019
2018-11-22 13:09:11 +01:00

28 lines
No EOL
448 B
Text

MODULE main
VAR
turn : {p,q};
procp : process user(turn, p, q);
procq : process user(turn, q, p);
ASSIGN
init(turn) := p;
--SPEC
MODULE user(turn, myid, otherid)
VAR
state : {p1,p2};
ASSIGN
init(state) := p1;
next(state) :=
case
state = p1 & turn = myid : p2;
state = p2 : p1;
TRUE : state;
esac;
next(turn) :=
case
next(state) = p1 : otherid;
TRUE : turn;
esac;
FAIRNESS
running