@ -2,7 +2,7 @@
// with global variables to remove sychronization
// gxn/dxp 02/02/00
nondeterministic
mdp
// size of shared counter
const int K = 8; // 4+ceil(log_2 N)
@ -71,3 +71,14 @@ module process9 = process1 [p1=p9, b1=b9, r1=r9] endmodule
module process10 = process1 [p1=p10, b1=b10, r1=r10] endmodule
module process11 = process1 [p1=p11, b1=b11, r1=r11] endmodule
module process12 = process1 [p1=p12, b1=b12, r1=r12] endmodule
// formulas/labels for use in properties:
// number of processes in critical section
formula num_procs_in_crit = (p1=2?1:0)+(p2=2?1:0)+(p3=2?1:0)+(p4=2?1:0)+(p5=2?1:0)+(p6=2?1:0)+(p7=2?1:0)+(p8=2?1:0)+(p9=2?1:0)+(p10=2?1:0)+(p11=2?1:0)+(p12=2?1:0);
// one of the processes is trying
label "one_trying" = p1=1|p2=1|p3=1|p4=1|p5=1|p6=1|p7=1|p8=1|p9=1|p10=1|p11=1|p12=1;
// one of the processes is in the critical section
label "one_critical" = p1=2|p2=2|p3=2|p4=2|p5=2|p6=2|p7=2|p8=2|p9=2|p10=2|p11=2|p12=2;