The program supports time averaging either before or after the sigmoid. Time averaging before the sigmoid allows for faster propagation in case of extremely large weights. The program incorporates the idea that we may want to process information at an arbitrary time grain. The time step dt determines the grain of the computation.
Time is defined independently of dt, dt just determines the increment per computational step.
Then the activation propagates forward to step 1, step 2, etc. Inputs may be specified at each step, though they don't make much sense at the final step, since they propagate nothing forward. Likewise targets can be specified at each step. They make sense at step 0 when we are doing teacher forcing, as discussed below. In general the program is similar to bp, and weights and biases etc are treated as in bp.