isvalid(message_name) checks if an input
or local message is valid. A message is valid if the chart has removed it from the
queue and has not forwarded or discarded it.
When state A is active, receive message
M. If the message has a data value equal to 3,
discard the message. Then, when state B is active, check
that the message M is still valid. If the message is
valid and has a data value equal to 6, discard the message.