mdp
const int N;
const double p1 = 0.5;
const double p2 = 0.5;
module main
	
	x : [0..N];
	y : [0..2];
	
	[try1] x<N & y=0 -> p1 : (y'=1) & (x'=N) + (1-p1) : (x'=x+1);
	[try2] x<N & y=0 -> p2 : (y'=2) & (x'=N) + (1-p1) : (x'=x+1);
endmodule

label "fail" = x=N;