int want1 = 0;
int want2 = 0;
int turn = 1;

proctype p1 {
do
:: true ->
		store(want1,1);
		store(turn,1);
		if
		:: load(turn,0) -> skip;
		:: load(want2,0) -> skip;
		fi;
		
		store(want1, 0);
od;
}


proctype p2 {
do
:: true ->
		store(want2,1);
		store(turn,0);
		if
		:: load(turn,1) -> skip;
		:: load(want1,0) -> skip;
		fi;
		
		store(want2, 0);
od;
}
