Propagators represent an interesting computational model in which cells hold on to values. The values are updated by propagators. This brief tutorial explains the basics of the computational model and the possibilities it holds.
A cell is much like a variable, in that it holds on to a value over time. Initially, all cells have no value, but as the program runs, cells can take on values when instructed to do so, either directly by the programmer or by propagators.
Propagators attach themselves to one or more cells. Whenever the value of a cell is changed, the propagator is informed, and it can then choose to take some form of action, typically updating other cells.
Propagation can happen in both directions: if we specify a propagator ensuring cell B is the square of cell A, and a propagator ensuring cell A is the square-root of cell B, we can derive cell B from cell A or cell A from B, depending on what information is available.
As illustrated above, the rightmost propagator will inform the green cell of its new content, but as the green cell already has the correct value, propagation stops.