0

I am currently modelling a system with several processes using UPPAAL Stratego. In some of these processes I'd like to guard edges with the current location of other processes, e.g., main.running and var==3 and clk<=5 for an edge in process checker that refers to the current location in process main. As this is not (yet) supported I added an integer variable to encode the different locations of process main, update it on each edge of main, and use it everywhere I need to refer to the current location in process main, e.g., main_current_location==1 and var==3 and clk<=5.

Of course this variable is redundant but it cannot be declared as meta because it is essential to the correct behavior of the complete system.

Does it increase the state space, even if it is redundant? Are there other options to achieve the same goal (channels...)? Would it make sense to ask for this feature to be added or would it break something I did not think of?

Renaud Pacalet
  • 25,260
  • 3
  • 34
  • 51
  • 1
    There is no way to refer to process locations in other processes, so you have the right workaround. Also meta won't work in this case. Such variables do not add extra states as variable values mimic the location, but it will add a few bits to a state footprint, so overall I would expect some linear overhead. Note that Uppaal compresses discrete part of state for storage, where smaller numbers occupy less memory. – mariusm Aug 12 '22 at 20:00
  • Thanks for your explanation, I will stick with this strategy. – Renaud Pacalet Aug 13 '22 at 08:45

0 Answers0