Search code examples
uppaal

Understanding Urgent Channels in Uppaal


I have three automata (see below), the single global declaration urgent chan u; and the system declaration system UrgentChannel, P1, P2;. My understanding is that by making u an urgent channel, the transition from start to goal has to be taken.

I would like to understand why the property P1.start --> P1.goal is not satisfied. The counter example from the simulator does not seem to help here.

The model for download is here. Thanks for reading!

  • P1: P1
  • P2: P2
  • UrgentChannel: UrgentChannel

Solution

  • The counter example (the diagnostic trace) in simulator has a tail marked in red, which means that it is repeated infinitely (P2 can perform zeno loop). Basically, Uppaal is trying to tell that there exist an infinit loop which may prevent the urgent transition from reaching the goal state.

    If you remove the process P2, then the property holds.

    If you are concerned with liveness properties, then such zeno loops are not desirable hence Uppaal rightly reports them as a counter example.