int x = 0;
int y = 0;

proctype P0 {
	do
	:: true ->
		store(x,1);
		
		if
		:: load(y,0) ->
			if
			:: load(y,0) -> skip;
			fi;
		:: load(y,1) ->
			if
			:: load(y,1) -> skip;
			fi;
		fi;
		
		store(x,0);
	od;
}

proctype P1 {
	do
	:: true ->
		store(y,1);
		
		if
		:: load(x,0) ->
			if
			:: load(x,0) -> skip;
			fi;
		:: load(x,1) ->
			if
			:: load(x,1) -> skip;
			fi;
		fi;
		
		store(y,0);
	od;
}
