note This post is spelling out some detail, which I would like to be sure to be clear and visible.
Let’s recall a previous related statement, which I find quite helpful[1]
I assume that we here are mainly concerned with the second category, i.e., the category including access to internal state.[2] In this second category, a good existing abstraction that we have been using as references are Mealy Machines, which can be succinctly described[3] as follows:
I am not claiming that every behaviour is just a Mealy machine (and that would probably be “wrong”, but let us not jump ahead), but it is a great example of how we can be independent from syntax and/or implementation. Now, this remark is meant to make clear that Mealy machines are not the definition we are currently working on; with that being said, let us come back to the desiderata of a behavioural definition.
For the example of Mealy Machines as defined above, the set of input symbols A consists of the messages that satisfy the ‘necessary preconditions a message needs to fulfill for the behavior to be applied’, which I would simply call well-formed messages. Now, that covers how the first bullet looks like if applied to the example of Mealy Machines.
Now, for the valid state transition(s) that implement behaviour, in the case of Mealy Machines, behaviour is deterministic, namely, borrowing Moore’s words[4],
the present state of a machine depends only on its previous input and previous state, and the present output depends only on the present state [and the input].
So, the set B of a Mealy machine can be chosen to be requests for sending messages.[5] So much for the “obvious” observations that deserve to be written up.
Now for the interesting point: in the above description of desiderata for a definition, we see the indefinite article used: ‘a valid state transition …’. This looks suspiciously like non-determinism, as written elsewhere: instead of a Mealy Machine, we rather want (a specification of)
So, the (pseudo-)non-determinism that we want—beware, that’s a claim—is actually due to some agent or other “decision device” that is affecting the choice of the actual state transitions (as sketched here): in short, we simply ask the local agent or poll an input device to make a choice (and require a default choice in the case of timeouts).[6]
TL;DR
All this to say, we may want to be as deterministic as possible, which is achievable if in situations where we have several possible state transitions based on current input and state, an “explicit choice” is made by a user or hardware, e.g., TRNGs.
… to avoid ambiguities, given the name clash with the description of behaviour of a state in a Kripke model: “Bisimulation is intended to characterize states in Kripke models with ‘the same behaviour’”. ↩︎
If we were to speak about co-algebras, this means, behaviours with access to internal state are the co-algebras themselves, and we are just trying to find a natural language description. ↩︎
… in slightly generalized form … ↩︎
Note that this quote is about Moore machines … I just don’t have a quote for Mealy machines with such succinct wording. ↩︎
See also [Communicating finite-state machine - Wikipedia]. ↩︎
The point is, we do not want to get into the land of different flavours of non-determinism; we prefer to have determinism as much as possible. ↩︎