A belated proof of self-stabilization

I thought that in Dijkstra 1974, I had published three solutions, but later I learned that I had also published three problems, as the programs had been given without a demonstration of their correctness. As a partial remedy I here offer such a demonstration for the solution with three-state machines. I recall the construction. We consider a ring of at least 3 three-state machines. For each machine a "privilege" is defined, i.e. a boolean function of the state of the machine and of the states of that machine's immediate neighbours; when such a function is true, we say that privilege "exists". A " m o v e " consists of a machine observing that its privilege exists, followed by a change of that machine's state; moves of neighbours exclude each other in time. We have to show that, independently of the initial state of the whole system, within a finite number of moves (i) precisely one privilige exists and (ii) in each unbounded sequence of moves, each machine moves an unbounded number of times. Each machine state is characterized by a variable ranging over {0, 1, 2}; in the descriptions of the moves, additive operations are understood to be reduced rood 3; the variables characterizing the leftand right-hand neighbours are denoted by L and R respectively; moves are recorded as guarded commands with the guards defining the privileges. The ring consists " in order from left to right" of