int x=0;
int y=0;
int z=0;

proctype p1 {
	do
	:: true ->
		store(x,1);
		store(y,1);
	:: true -> break;
	od;
	store(z,1);
}

proctype p2 {
 int t = 0;
 if
 :: load(z,0) ->
   if
   :: load(y,1) ->
     if
     :: load(x,1) -> skip;
     :: load(x,0) ->
       if
       :: t == 1 -> skip;
       fi;
     fi;
   :: load(y,0) -> skip;
   fi;
   if
   :: load(z,1) -> skip;
   fi;
 :: load(z,1) -> skip;
	fi;
	
	if
	:: load(y,1) ->
   if
   :: load(x,1) -> skip;
   fi;
 :: load(y,0) ->
   if
   :: load(x,0) -> skip;
   fi;
	fi;
}


