mdp module one x : [0 .. 2] init 0; [a] x=0 -> (x'=1); [] x>=0 -> (x'=2); [done] x>=1 -> true;endmodule module two y : [0 .. 2] init 0; [b] y=0 -> (y'=1); [] y>=0 -> (y'=2); [done] y>=1 -> true;endmodule module three z : [0 .. 2] init 0; [a] z=0 -> (z'=1); [] x=0&y=0&z=1 -> (z'=2); [loop] z>=1 -> true;endmodule system ((one || two {b <- a}) / {a}) {done <- loop} || threeendsystem
mdp
module one
x : [0 .. 2] init 0;
[a] x=0 -> (x'=1);
[] x>=0 -> (x'=2);
[done] x>=1 -> true;
endmodule
module two
y : [0 .. 2] init 0;
[b] y=0 -> (y'=1);
[] y>=0 -> (y'=2);
[done] y>=1 -> true;
module three
z : [0 .. 2] init 0;
[a] z=0 -> (z'=1);
[] x=0&y=0&z=1 -> (z'=2);
[loop] z>=1 -> true;
system
((one || two {b <- a}) / {a}) {done <- loop} || three
endsystem