MODULE Xerox;
VAR i, j, k:
INTEGER;
state:
ARRAY [0..63]
OF
BITSET;
PROCEDURE p;
VAR s:
BITSET;
PROCEDURE reset(i, j:
INTEGER);
VAR k:
INTEGER;
BEGIN
k := i + j + 1; k := i + j;
WHILE (i < k) & ((0
IN state[i+j])
OR (state[i]<=s))
DO
state[i] := s; i := i + 1
END
END reset;
BEGIN s := {2..6}; reset(4, 32)
END p;
BEGIN k := i + j + 1; k := i + j; p
END Xerox.