Prof. Stephen Edwards: So I'm not sure about an appropriate definition for "reactive." Perhaps it's something like "only does something in response to external events." Depending on how you define external events, languages such as Esterel may or may not be reactive. Esterel can only do something when the "clock" fires, but there doesn't have to be any events at that time for it to do something. So is Esterel reactive or not? I think it's a moot point, but I think you can argue either way on the answer to your first question.
For example, in Esterel you can write
loop emit A ; pause ; emit B ; pause ; emit C ; pause endand have A B C A B C ... be emitted in response to no external events except the master clock.
Prof. Stephen Edwards: The synchronous language community, incidentally, has all but dropped "reactive" from any of its titles.
Synchronous, however, is much easier to define: no event arrives before the previous ones have been dealt with.
Prof. Stephen Edwards: A common thing in verification is to build a "Kripke structure," which is a nondeterministic FSM with no inputs. The nondeterminism models the effect of inputs, however, but they're interested in its behavior under all inputs. So I think the answer to the third question is yes.
Prof. Stephen Edwards: The fourth question is thought-provoking: how do you justify the synchrony hypothesis in general? You can insist that the circuit is stable before the next event comes in, but that's too restrictive: what about pipelined behavior?
I think the answer is that under some timing assumption there exists some mapping function from the state of the actual system to the model that shows the system's behavior matches the model's. A similar, very thorny problem arises when you're trying to verify pipelined microprocessors.
The reason I think this is so complicated is that I can envision synchronous models implemented with self-timed circuits. The trick becomes what does "the previous ones have been dealt with" in such a context because the "mouth" of such a circuit could be ready to accept the next even if the "stomach" is still digesting the last one.