predicate round_robin(array[int] of var bool: nbhs) = let { int: N = length(nbhs); var -1..N-1: select; % Neighbourhood selection } in if status()=START then select = -1 else select = (last_val(select) + 1) mod N endif /\ forall(i in 1..N) ( (select = i-1) -> nbhs[i] % <-- Post Neighbourhood@\Vlabel{line:6:roundrobin:post}@ );