0

UPPAAL model

This uppaal model showing in the image is part of a top system. It's used to check the condition var==1 hold for at least 10 time units. The range of the integer variable var is [0, 20000].

I use query E<>condition.hold to get the trace, but can't get result within minutes. If I change the range of var to [0, 1000], uppaal return result within seconds.

The question is:

  1. Do I use uppaal in a right way?
  2. Is uppaal suitable for this kind of model-checking? or any other options?

Thanks for any help

Lucent
  • 33
  • 7
  • Could you add also the declarations? By "the range of var" you mean its type declaration? If so, then `int[0,1000] var;` declaration should not allow assignment `var=value` when `value>1000`, i.e. you should get "out-of-range" error during verification and simulation. – mariusm Apr 27 '22 at 05:16
  • 1
    If your goal is to try all possible integer values from a huge range, then Uppaal will perform poorly, i.e. it is not optimized for such models. The model-checker expects a model which is an (reasonable) abstraction of a system, which usually means getting rid of specific data values and focusing on the behavioral aspects. – mariusm Apr 27 '22 at 05:20
  • thanks @mariusm, it's helpful. The range of the variable is dependent on the modeled system, and in fact there are float-type variables. I know that Uppaal treat clock constraint as symbolic. Is it possible to represent variables as symbolic and solve the constraints by smt solver? Or any other suggestions to deal with timed automata with float and integer type variables? – Lucent Apr 27 '22 at 06:03
  • `Is it possible to represent variables as symbolic and solve the constraints by smt solver?` - No. – mariusm May 02 '22 at 11:23
  • sure. I am looking for alternative solution. – Lucent May 06 '22 at 04:43

1 Answers1

0

Due to the problem domain that we deal with, the model need to support integer and float data type. And now I understood that Uppaal treat clock as symbolic representation but other variables as concrete value, so maybe it's not possible to meet our requirement. And I am going to try nuxmv, which seems OK because SMT solver is used. I'm not sure whether nuxmv is suitable for timed automata modeling. Have a try.

Lucent
  • 33
  • 7
  • As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community May 04 '22 at 12:51